apiVersion: apps/v1 kind: Deployment metadata: name: training-service namespace: bakery-ia labels: app.kubernetes.io/name: training-service app.kubernetes.io/component: microservice app.kubernetes.io/part-of: bakery-ia spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: training-service app.kubernetes.io/component: microservice template: metadata: labels: app.kubernetes.io/name: training-service app.kubernetes.io/component: microservice spec: containers: - name: training-service image: bakery/training-service:79c869aaa529b2aaf2bbe77d2a2506e3ebdaf2abac3c83505ddfad29f3dbf99e ports: - containerPort: 8000 name: http envFrom: - configMapRef: name: bakery-config - secretRef: name: database-secrets - secretRef: name: redis-secrets - secretRef: name: rabbitmq-secrets - secretRef: name: jwt-secrets - secretRef: name: external-api-secrets - secretRef: name: payment-secrets - secretRef: name: email-secrets - secretRef: name: monitoring-secrets - secretRef: name: pos-integration-secrets - secretRef: name: whatsapp-secrets env: - name: TRAINING_PERSISTENCE_PATH value: "/app/training_state" volumeMounts: - name: training-state mountPath: /app/training_state - name: tmp-storage mountPath: /tmp resources: requests: memory: "512Mi" cpu: "200m" limits: memory: "4Gi" cpu: "2000m" livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 60 timeoutSeconds: 30 periodSeconds: 30 failureThreshold: 5 readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 15 timeoutSeconds: 10 periodSeconds: 15 failureThreshold: 3 volumes: - name: training-state persistentVolumeClaim: claimName: training-state-pvc - name: tmp-storage emptyDir: sizeLimit: 2Gi --- apiVersion: v1 kind: Service metadata: name: training-service namespace: bakery-ia labels: app.kubernetes.io/name: training-service app.kubernetes.io/component: microservice spec: type: ClusterIP ports: - port: 8000 targetPort: 8000 protocol: TCP name: http selector: app.kubernetes.io/name: training-service app.kubernetes.io/component: microservice --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: training-state-pvc namespace: bakery-ia labels: app.kubernetes.io/name: training-service app.kubernetes.io/component: storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: standard