apiVersion: apps/v1 kind: Deployment metadata: name: portfolio-app labels: app: portfolio-app spec: replicas: 1 selector: matchLabels: app: portfolio-app strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: portfolio-app spec: containers: - name: portfolio-app image: ghcr.io/mayne0213/portfolio:latest imagePullPolicy: Always ports: - containerPort: 3000 protocol: TCP env: - name: NODE_ENV value: production - name: ARGOCD_SERVER_URL value: "https://argocd-server.argocd.svc.cluster.local" - name: ARGOCD_TOKEN valueFrom: secretKeyRef: name: argocd-token key: token optional: false - name: ARGOCD_CA_CERT valueFrom: secretKeyRef: name: argocd-ca-cert key: ca.crt optional: true resources: requests: memory: "100Mi" cpu: "50m" limits: memory: "200Mi" cpu: "150m" livenessProbe: httpGet: path: / port: 3000 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: / port: 3000 initialDelaySeconds: 5 periodSeconds: 5 restartPolicy: Always