# services/health/sparkyfitness-frontend-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: sparkyfitness-frontend namespace: health labels: app: sparkyfitness-frontend spec: replicas: 1 selector: matchLabels: app: sparkyfitness-frontend strategy: type: RollingUpdate rollingUpdate: maxSurge: 0 maxUnavailable: 1 template: metadata: labels: app: sparkyfitness-frontend spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: hardware operator: In values: ["rpi5", "rpi4"] - key: node-role.kubernetes.io/worker operator: Exists preferredDuringSchedulingIgnoredDuringExecution: - weight: 90 preference: matchExpressions: - key: hardware operator: In values: ["rpi5"] - weight: 70 preference: matchExpressions: - key: hardware operator: In values: ["rpi4"] containers: - name: sparkyfitness-frontend image: codewithcj/sparkyfitness:0.16.3.3 imagePullPolicy: IfNotPresent ports: - name: http containerPort: 80 env: - name: SPARKY_FITNESS_SERVER_HOST value: sparkyfitness-server - name: SPARKY_FITNESS_SERVER_PORT value: "3010" readinessProbe: httpGet: path: / port: http initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 6 livenessProbe: httpGet: path: / port: http initialDelaySeconds: 30 periodSeconds: 20 timeoutSeconds: 3 failureThreshold: 6 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 512Mi