Files
GitOps/nowchess/base/nowchess-rollouts.yaml
T
shosho996 4beab3b687 feat: NCS-74 Frontend Deployment config files (#119)
Co-authored-by: Copilot <copilot@github.com>
---------

Co-authored-by: shahdlala66 <shahd.lala66@gmail.com>
Reviewed-on: #119
Co-authored-by: Shahd Lala <shosho996@blackhole.local>
Co-committed-by: Shahd Lala <shosho996@blackhole.local>
2026-05-12 11:18:29 +02:00

726 lines
20 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-account
labels:
app: nowchess-account
spec:
selector:
matchLabels:
app: nowchess-account
template:
metadata:
labels:
app: nowchess-account
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8083"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-account
image: ghcr.io/now-chess/now-chess-systems/account:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
- name: CORE_SERVICE_URL
value: http://nowchess-core-active:8080
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
- name: DB_USER
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: ACCOUNT_DB_USER
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: ACCOUNT_DB_PASSWORD
- name: DB_URL
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: ACCOUNT_DB_URL
- name: JWT_PUBLIC_KEY_PATH
value: /secrets/jwt/public.pem
- name: JWT_PRIVATE_KEY_PATH
value: /secrets/jwt/private.pem
volumeMounts:
- name: jwt-keys
mountPath: /secrets/jwt
readOnly: true
ports:
- containerPort: 8083
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8083
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8083
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
volumes:
- name: jwt-keys
secret:
secretName: ncs-jwt-keys
strategy:
blueGreen:
activeService: nowchess-account-active
previewService: nowchess-account-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-bot-platform
labels:
app: nowchess-bot-platform
spec:
selector:
matchLabels:
app: nowchess-bot-platform
template:
metadata:
labels:
app: nowchess-bot-platform
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8087"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-bot-platform
image: ghcr.io/now-chess/now-chess-systems/bot-platform:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
ports:
- containerPort: 8087
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8087
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8087
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-bot-platform-active
previewService: nowchess-bot-platform-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-coordinator
labels:
app: nowchess-coordinator
spec:
selector:
matchLabels:
app: nowchess-coordinator
template:
metadata:
labels:
app: nowchess-coordinator
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8086"
spec:
serviceAccountName: default
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-coordinator
image: ghcr.io/now-chess/now-chess-systems/coordinator:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: NOWCHESS_COORDINATOR_K8S_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
ports:
- containerPort: 8086
name: http
protocol: TCP
- containerPort: 9086
name: grpc
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8086
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8086
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "20m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-coordinator-active
previewService: nowchess-coordinator-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-core
labels:
app: nowchess-core
spec:
replicas: 2
selector:
matchLabels:
app: nowchess-core
template:
metadata:
labels:
app: nowchess-core
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8080"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-core
image: ghcr.io/now-chess/now-chess-systems/core:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
- name: JWT_PUBLIC_KEY_PATH
value: /secrets/jwt/public.pem
- name: RULE_SERVICE_HOST
value: nowchess-rule-active
- name: RULE_SERVICE_GRPC_PORT
value: "8082"
- name: RULE_SERVICE_URL
value: http://nowchess-rule-active:8082
- name: IO_SERVICE_HOST
value: nowchess-io-active
- name: IO_SERVICE_GRPC_PORT
value: "8081"
- name: IO_SERVICE_URL
value: http://nowchess-io-active:8081
- name: COORDINATOR_SERVICE_HOST
value: nowchess-coordinator-active
- name: COORDINATOR_SERVICE_GRPC_PORT
value: "9086"
- name: STORE_SERVICE_URL
value: http://nowchess-store-active:8085
volumeMounts:
- name: jwt-keys
mountPath: /secrets/jwt
readOnly: true
ports:
- containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8080
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8080
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "15m"
memory: "256Mi"
limits:
cpu: "1000m"
memory: "512Mi"
volumes:
- name: jwt-keys
secret:
secretName: ncs-jwt-keys
strategy:
blueGreen:
activeService: nowchess-core-active
previewService: nowchess-core-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-io
labels:
app: nowchess-io
spec:
selector:
matchLabels:
app: nowchess-io
template:
metadata:
labels:
app: nowchess-io
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8081"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-io
image: ghcr.io/now-chess/now-chess-systems/io:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
ports:
- containerPort: 8081
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8081
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8081
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-io-active
previewService: nowchess-io-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-official-bots
labels:
app: nowchess-official-bots
spec:
selector:
matchLabels:
app: nowchess-official-bots
template:
metadata:
labels:
app: nowchess-official-bots
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8088"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-official-bots
image: ghcr.io/now-chess/now-chess-systems/official-bots:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
ports:
- containerPort: 8088
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8088
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8088
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-official-bots-active
previewService: nowchess-official-bots-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-rule
labels:
app: nowchess-rule
spec:
selector:
matchLabels:
app: nowchess-rule
template:
metadata:
labels:
app: nowchess-rule
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8082"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-rule
image: ghcr.io/now-chess/now-chess-systems/rule:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
ports:
- containerPort: 8082
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8082
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8082
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-rule-active
previewService: nowchess-rule-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-store
labels:
app: nowchess-store
spec:
selector:
matchLabels:
app: nowchess-store
template:
metadata:
labels:
app: nowchess-store
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8085"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-store
image: ghcr.io/now-chess/now-chess-systems/store:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
- name: DB_USER
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: STORE_DB_USER
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: STORE_DB_PASSWORD
- name: DB_URL
valueFrom:
secretKeyRef:
name: ncs-db-secrets
key: STORE_DB_URL
ports:
- containerPort: 8085
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8085
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8085
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
strategy:
blueGreen:
activeService: nowchess-store-active
previewService: nowchess-store-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-ws
labels:
app: nowchess-ws
spec:
selector:
matchLabels:
app: nowchess-ws
template:
metadata:
labels:
app: nowchess-ws
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8084"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-ws
image: ghcr.io/now-chess/now-chess-systems/ws:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: REDIS_HOST
value: redis-master.redis.svc.cluster.local
- name: REDIS_PORT
value: "6379"
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
- name: JWT_PUBLIC_KEY_PATH
value: /secrets/jwt/public.pem
volumeMounts:
- name: jwt-keys
mountPath: /secrets/jwt
readOnly: true
ports:
- containerPort: 8084
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8084
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8084
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
volumes:
- name: jwt-keys
secret:
secretName: ncs-jwt-keys
strategy:
blueGreen:
activeService: nowchess-ws-active
previewService: nowchess-ws-preview
autoPromotionEnabled: true
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: nowchess-frontend
labels:
app: nowchess-ws
spec:
selector:
matchLabels:
app: nowchess-frontend
template:
metadata:
labels:
app: nowchess-frontend
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-frontend
image: ghcr.io/now-chess/now-chess-systems/frontend:latest
imagePullPolicy: Always
env:
- name: REACT_APP_API_URL
value: http://nowchess-core-active:8080
- name: REACT_APP_ACCOUNT_URL
value: http://nowchess-account-active:8083
- name: REACT_APP_STORE_URL
value: http://nowchess-store-active:8085
- name: REACT_APP_WS_URL
value: http://nowchess-ws-active:8084
ports:
- containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
cpu: "10m"
memory: "64Mi"
limits:
cpu: "100m"
memory: "128Mi"
strategy:
blueGreen:
activeService: nowchess-frontend-active
previewService: nowchess-frontend-preview
autoPromotionEnabled: true