apiVersion: apps/v1 kind: Deployment metadata: labels: app: cart-actor name: cart-actor spec: replicas: 2 selector: matchLabels: app: cart-actor template: metadata: labels: app: cart-actor spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 weight: 1 volumes: - name: data nfs: path: /i-data/7a8af061/nfs/cart-actor server: 10.10.1.10 imagePullSecrets: - name: regcred containers: - image: registry.knatofs.se/go-cart-actor:latest name: cart-actor imagePullPolicy: Always ports: - containerPort: 8080 name: web - containerPort: 1337 volumeMounts: - mountPath: "/data" name: data resources: requests: memory: "70Mi" cpu: "40m" env: - name: TZ value: "Europe/Stockholm" - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName --- kind: Service apiVersion: v1 metadata: name: cart-actor annotations: prometheus.io/port: "8080" prometheus.io/scrape: "true" prometheus.io/path: "/metrics" spec: selector: app: cart-actor ports: - name: web port: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cart-ingress annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/session-cookie-name: "cart-session" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" nginx.ingress.kubernetes.io/proxy-body-size: 4m spec: ingressClassName: nginx tls: - hosts: - cart.tornberg.me secretName: cart-actor-tls-secret rules: - host: cart.tornberg.me http: paths: - path: / pathType: Prefix backend: service: name: cart-actor port: number: 8080 --- apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: cart-scaler spec: scaleTargetRef: kind: Deployment name: cart-actor minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 50