diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 526f80d..9945cd6 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -3,6 +3,16 @@ run-name: ${{ gitea.actor }} is building 🚀 on: [push] jobs: + BuildAndDeployAmd64: + runs-on: amd64 + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Build docker image + run: docker build --progress=plain -t registry.knatofs.se/go-cart-actor-amd64:latest . + - name: Push to registry + run: docker push registry.knatofs.se/go-cart-actor-amd64:latest + BuildAndDeploy: runs-on: arm64 steps: diff --git a/deployment/deployment.yaml b/deployment/deployment.yaml index 6c598a2..da5eb1c 100644 --- a/deployment/deployment.yaml +++ b/deployment/deployment.yaml @@ -3,12 +3,107 @@ kind: Deployment metadata: labels: app: cart-actor + arch: amd64 + name: cart-actor-x86 +spec: + replicas: 3 + selector: + matchLabels: + app: cart-actor + arch: amd64 + template: + metadata: + labels: + app: cart-actor + actor-pool: cart + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: NotIn + values: + - masterpi + preferredDuringSchedulingIgnoredDuringExecution: + - preference: + matchExpressions: + - key: kubernetes.io/arch + operator: NotIn + values: + - arm64 + weight: 1 + volumes: + - name: data + nfs: + path: /i-data/7a8af061/nfs/cart-actor + server: 10.10.1.10 + imagePullSecrets: + - name: regcred + serviceAccountName: default + containers: + - image: registry.knatofs.se/go-cart-actor-amd64:latest + name: cart-actor + imagePullPolicy: Always + lifecycle: + preStop: + exec: + command: ["sleep", "15"] + ports: + - containerPort: 8080 + name: web + - containerPort: 1337 + name: rpc + - containerPort: 1338 + name: quorum + livenessProbe: + httpGet: + path: /livez + port: web + failureThreshold: 1 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /readyz + port: web + failureThreshold: 2 + initialDelaySeconds: 2 + periodSeconds: 10 + volumeMounts: + - mountPath: "/data" + name: data + resources: + limits: + memory: "768Mi" + requests: + memory: "70Mi" + cpu: "1200m" + env: + - name: TZ + value: "Europe/Stockholm" + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cart-actor + arch: arm64 name: cart-actor spec: replicas: 3 selector: matchLabels: app: cart-actor + arch: arm64 template: metadata: labels: