feat(gitops): deploy full backend grpc service mesh for all professions

This commit is contained in:
Ashwin Kumar 2026-03-12 04:49:02 +01:00
parent 304cd565b4
commit 4dff82c184
29 changed files with 837 additions and 0 deletions

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-catering-services
namespace: nxtgauge
labels:
app: nxtgauge-catering-services
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-catering-services
template:
metadata:
labels:
app: nxtgauge-catering-services
spec:
containers:
- name: catering-services
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50063
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "catering_services"
- name: PROFESSIONALS_PORT
value: "50063"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50063
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50063
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-catering-services
namespace: nxtgauge
labels:
app: nxtgauge-catering-services
spec:
type: ClusterIP
selector:
app: nxtgauge-catering-services
ports:
- name: grpc
port: 50063
targetPort: 50063
protocol: TCP

View file

@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-companies
namespace: nxtgauge
labels:
app: nxtgauge-companies
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-companies
template:
metadata:
labels:
app: nxtgauge-companies
spec:
containers:
- name: companies
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50051
name: grpc
env:
- name: APP
value: "companies"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50051
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50051
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-companies
namespace: nxtgauge
labels:
app: nxtgauge-companies
spec:
type: ClusterIP
selector:
app: nxtgauge-companies
ports:
- name: grpc
port: 50051
targetPort: 50051
protocol: TCP

View file

@ -7,3 +7,16 @@ data:
NODE_ENV: "production" NODE_ENV: "production"
PORT: "2002" PORT: "2002"
GATEWAY_PORT: "2002" GATEWAY_PORT: "2002"
USERS_GRPC_URL: "nxtgauge-users:50052"
COMPANIES_GRPC_URL: "nxtgauge-companies:50051"
CUSTOMERS_GRPC_URL: "nxtgauge-customers:50057"
JOBSEEKERS_GRPC_URL: "nxtgauge-jobseekers:50058"
PHOTOGRAPHERS_GRPC_URL: "nxtgauge-photographers:50053"
MAKEUP_ARTISTS_GRPC_URL: "nxtgauge-makeup-artists:50054"
TUTORS_GRPC_URL: "nxtgauge-tutors:50055"
DEVELOPERS_GRPC_URL: "nxtgauge-developers:50056"
VIDEO_EDITORS_GRPC_URL: "nxtgauge-video-editors:50059"
GRAPHIC_DESIGNERS_GRPC_URL: "nxtgauge-graphic-designers:50060"
SOCIAL_MEDIA_MANAGERS_GRPC_URL: "nxtgauge-social-media-managers:50061"
FITNESS_TRAINERS_GRPC_URL: "nxtgauge-fitness-trainers:50062"
CATERING_SERVICES_GRPC_URL: "nxtgauge-catering-services:50063"

View file

@ -0,0 +1,44 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-customers
namespace: nxtgauge
labels:
app: nxtgauge-customers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-customers
template:
metadata:
labels:
app: nxtgauge-customers
spec:
containers:
- name: customers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50057
name: grpc
env:
- name: APP
value: "customers"
- name: CUSTOMERS_PORT
value: "50057"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50057
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50057
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-customers
namespace: nxtgauge
labels:
app: nxtgauge-customers
spec:
type: ClusterIP
selector:
app: nxtgauge-customers
ports:
- name: grpc
port: 50057
targetPort: 50057
protocol: TCP

View file

@ -23,6 +23,8 @@ spec:
- containerPort: 2002 - containerPort: 2002
name: http name: http
env: env:
- name: APP
value: "gateway"
- name: DATABASE_HOST - name: DATABASE_HOST
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-developers
namespace: nxtgauge
labels:
app: nxtgauge-developers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-developers
template:
metadata:
labels:
app: nxtgauge-developers
spec:
containers:
- name: developers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50056
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "developer"
- name: PROFESSIONALS_PORT
value: "50056"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50056
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50056
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-developers
namespace: nxtgauge
labels:
app: nxtgauge-developers
spec:
type: ClusterIP
selector:
app: nxtgauge-developers
ports:
- name: grpc
port: 50056
targetPort: 50056
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-fitness-trainers
namespace: nxtgauge
labels:
app: nxtgauge-fitness-trainers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-fitness-trainers
template:
metadata:
labels:
app: nxtgauge-fitness-trainers
spec:
containers:
- name: fitness-trainers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50062
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "fitness_trainer"
- name: PROFESSIONALS_PORT
value: "50062"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50062
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50062
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-fitness-trainers
namespace: nxtgauge
labels:
app: nxtgauge-fitness-trainers
spec:
type: ClusterIP
selector:
app: nxtgauge-fitness-trainers
ports:
- name: grpc
port: 50062
targetPort: 50062
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-graphic-designers
namespace: nxtgauge
labels:
app: nxtgauge-graphic-designers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-graphic-designers
template:
metadata:
labels:
app: nxtgauge-graphic-designers
spec:
containers:
- name: graphic-designers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50060
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "graphic_designer"
- name: PROFESSIONALS_PORT
value: "50060"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50060
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50060
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-graphic-designers
namespace: nxtgauge
labels:
app: nxtgauge-graphic-designers
spec:
type: ClusterIP
selector:
app: nxtgauge-graphic-designers
ports:
- name: grpc
port: 50060
targetPort: 50060
protocol: TCP

View file

@ -0,0 +1,44 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-jobseekers
namespace: nxtgauge
labels:
app: nxtgauge-jobseekers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-jobseekers
template:
metadata:
labels:
app: nxtgauge-jobseekers
spec:
containers:
- name: jobseekers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50058
name: grpc
env:
- name: APP
value: "jobseekers"
- name: JOBSEEKERS_PORT
value: "50058"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50058
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50058
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-jobseekers
namespace: nxtgauge
labels:
app: nxtgauge-jobseekers
spec:
type: ClusterIP
selector:
app: nxtgauge-jobseekers
ports:
- name: grpc
port: 50058
targetPort: 50058
protocol: TCP

View file

@ -6,4 +6,30 @@ resources:
- secret.yaml - secret.yaml
- deployment.yaml - deployment.yaml
- service.yaml - service.yaml
- users-deployment.yaml
- users-service.yaml
- companies-deployment.yaml
- companies-service.yaml
- customers-deployment.yaml
- customers-service.yaml
- jobseekers-deployment.yaml
- jobseekers-service.yaml
- photographers-deployment.yaml
- photographers-service.yaml
- makeup-artists-deployment.yaml
- makeup-artists-service.yaml
- tutors-deployment.yaml
- tutors-service.yaml
- developers-deployment.yaml
- developers-service.yaml
- video-editors-deployment.yaml
- video-editors-service.yaml
- graphic-designers-deployment.yaml
- graphic-designers-service.yaml
- social-media-managers-deployment.yaml
- social-media-managers-service.yaml
- fitness-trainers-deployment.yaml
- fitness-trainers-service.yaml
- catering-services-deployment.yaml
- catering-services-service.yaml
- ingress.yaml - ingress.yaml

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-makeup-artists
namespace: nxtgauge
labels:
app: nxtgauge-makeup-artists
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-makeup-artists
template:
metadata:
labels:
app: nxtgauge-makeup-artists
spec:
containers:
- name: makeup-artists
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50054
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "makeup_artist"
- name: PROFESSIONALS_PORT
value: "50054"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50054
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50054
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-makeup-artists
namespace: nxtgauge
labels:
app: nxtgauge-makeup-artists
spec:
type: ClusterIP
selector:
app: nxtgauge-makeup-artists
ports:
- name: grpc
port: 50054
targetPort: 50054
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-photographers
namespace: nxtgauge
labels:
app: nxtgauge-photographers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-photographers
template:
metadata:
labels:
app: nxtgauge-photographers
spec:
containers:
- name: photographers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50053
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "photographer"
- name: PROFESSIONALS_PORT
value: "50053"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50053
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50053
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-photographers
namespace: nxtgauge
labels:
app: nxtgauge-photographers
spec:
type: ClusterIP
selector:
app: nxtgauge-photographers
ports:
- name: grpc
port: 50053
targetPort: 50053
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-social-media-managers
namespace: nxtgauge
labels:
app: nxtgauge-social-media-managers
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-social-media-managers
template:
metadata:
labels:
app: nxtgauge-social-media-managers
spec:
containers:
- name: social-media-managers
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50061
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "social_media_manager"
- name: PROFESSIONALS_PORT
value: "50061"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50061
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50061
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-social-media-managers
namespace: nxtgauge
labels:
app: nxtgauge-social-media-managers
spec:
type: ClusterIP
selector:
app: nxtgauge-social-media-managers
ports:
- name: grpc
port: 50061
targetPort: 50061
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-tutors
namespace: nxtgauge
labels:
app: nxtgauge-tutors
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-tutors
template:
metadata:
labels:
app: nxtgauge-tutors
spec:
containers:
- name: tutors
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50055
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "tutor"
- name: PROFESSIONALS_PORT
value: "50055"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50055
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50055
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-tutors
namespace: nxtgauge
labels:
app: nxtgauge-tutors
spec:
type: ClusterIP
selector:
app: nxtgauge-tutors
ports:
- name: grpc
port: 50055
targetPort: 50055
protocol: TCP

View file

@ -0,0 +1,44 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-users
namespace: nxtgauge
labels:
app: nxtgauge-users
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-users
template:
metadata:
labels:
app: nxtgauge-users
spec:
containers:
- name: users
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50052
name: grpc
env:
- name: APP
value: "users"
- name: USERS_GRPC_BIND_URL
value: "0.0.0.0:50052"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50052
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50052
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-users
namespace: nxtgauge
labels:
app: nxtgauge-users
spec:
type: ClusterIP
selector:
app: nxtgauge-users
ports:
- name: grpc
port: 50052
targetPort: 50052
protocol: TCP

View file

@ -0,0 +1,46 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-video-editors
namespace: nxtgauge
labels:
app: nxtgauge-video-editors
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-video-editors
template:
metadata:
labels:
app: nxtgauge-video-editors
spec:
containers:
- name: video-editors
image: ghcr.io/traceworks2023/nxtgauge-backend
imagePullPolicy: Always
ports:
- containerPort: 50059
name: grpc
env:
- name: APP
value: "professionals"
- name: PROFESSIONAL_SERVICE_CATEGORY
value: "video_editor"
- name: PROFESSIONALS_PORT
value: "50059"
envFrom:
- configMapRef:
name: nxtgauge-backend-config
- secretRef:
name: nxtgauge-backend-secrets
readinessProbe:
tcpSocket:
port: 50059
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 50059
initialDelaySeconds: 15
periodSeconds: 20

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: nxtgauge-video-editors
namespace: nxtgauge
labels:
app: nxtgauge-video-editors
spec:
type: ClusterIP
selector:
app: nxtgauge-video-editors
ports:
- name: grpc
port: 50059
targetPort: 50059
protocol: TCP