Skip to content

Commit 06a9a14

Browse files
committed
build: integrate payment service
1 parent 01b7a94 commit 06a9a14

6 files changed

Lines changed: 93 additions & 1 deletion

File tree

api-gateway/nginx.conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ http {
1616
server order-service:5000;
1717
}
1818

19+
upstream payment_service {
20+
server payment-service:5000;
21+
}
22+
1923
server {
2024
listen 5000;
2125
server_name localhost;
@@ -59,6 +63,19 @@ http {
5963
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
6064
}
6165

66+
# Payment Service
67+
location /api/payments/ {
68+
rewrite ^/api/payments/(.*)$ /orders/$1 break;
69+
proxy_pass http://payment__service/;
70+
limit_req zone=api burst=10;
71+
72+
# CORS headers
73+
add_header Access-Control-Allow-Origin "*" always;
74+
add_header Access-Control-Allow-Credentials "true" always;
75+
add_header Access-Control-Allow-Headers "Authorization, Content-Type" always;
76+
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
77+
}
78+
6279
location = /unauthorized {
6380
return 401;
6481
}

docker-bake.hcl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ target "common" {
2828

2929
# Default group builds all services with their specified targets from docker-compose
3030
group "default" {
31-
targets = ["frontend", "user-service", "notification-service", "email-service", "sms-service", "order-service"]
31+
targets = ["frontend", "user-service", "notification-service", "email-service", "sms-service", "order-service", "payment-service"]
3232
}
3333

3434
# Frontend service
@@ -70,9 +70,18 @@ target "sms-service" {
7070
tags = ["${REGISTRY}/sms-service:${TAG}"]
7171
}
7272

73+
# Order Service
7374
target "order-service" {
7475
inherits = ["common"]
7576
context = "./order-service"
7677
target = "production"
7778
tags = ["${REGISTRY}/order-service:${TAG}"]
7879
}
80+
81+
# Payment Service
82+
target "payment-service" {
83+
inherits = ["common"]
84+
context = "./payment-service"
85+
target = "production"
86+
tags = ["${REGISTRY}/payment-service:${TAG}"]
87+
}

docker-compose.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,18 @@ services:
211211
env_file:
212212
- ./order-service/.env
213213

214+
payment-service:
215+
image: nmdra/payment-service
216+
build:
217+
context: ./payment-service
218+
target: production
219+
container_name: payment-service
220+
hostname: payment-service
221+
ports:
222+
- "3008:5000"
223+
env_file:
224+
- ./payment-service/.env
225+
214226
volumes:
215227
pg_data:
216228

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: payment-service
5+
namespace: default
6+
spec:
7+
replicas: 2
8+
selector:
9+
matchLabels:
10+
app: payment-service
11+
template:
12+
metadata:
13+
labels:
14+
app: payment-service
15+
spec:
16+
containers:
17+
- name: payment-service
18+
image: nmdra/payment-service:latest
19+
imagePullPolicy: Never
20+
ports:
21+
- containerPort: 5000
22+
env:
23+
- name: NODE_NAME
24+
valueFrom:
25+
fieldRef:
26+
fieldPath: spec.nodeName
27+
envFrom:
28+
- configMapRef:
29+
name: payment-service-env
30+
---
31+
apiVersion: v1
32+
kind: Service
33+
metadata:
34+
name: payment-service
35+
namespace: default
36+
spec:
37+
selector:
38+
app: payment-service
39+
type: ClusterIP
40+
ports:
41+
- port: 80
42+
targetPort: 5000

k8s/kustomization/base/ingress/ingress.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ spec:
3636
port:
3737
number: 80
3838

39+
- path: /api/payments(/|$)(.*)
40+
pathType: ImplementationSpecific
41+
backend:
42+
service:
43+
name: payment-service
44+
port:
45+
number: 80
46+
3947
- path: /health(/|$)(.*)
4048
pathType: ImplementationSpecific
4149
backend:

k8s/kustomization/base/kustomization.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ resources:
44
- deployments/sms-service-deployment.yaml
55
- deployments/user-service-deployment.yaml
66
- deployments/order-service-deployment.yaml
7+
- deployments/payment-service-deployment.yaml
78
- deployments/frontend-service-deployment.yaml
89
- rabbitmq/rabbitmq.yaml
910
- ingress/ingress.yaml
@@ -24,6 +25,9 @@ configMapGenerator:
2425
- name: order-service-env
2526
envs:
2627
- configs/order-service.env
28+
- name: payment-service-env
29+
envs:
30+
- configs/payment-service.env
2731

2832
generatorOptions:
2933
disableNameSuffixHash: true

0 commit comments

Comments
 (0)