From 1dec08f857eb252145eecc4fd4c06f30b535232f Mon Sep 17 00:00:00 2001 From: Unchained Date: Sun, 5 Apr 2026 06:15:54 +0200 Subject: [PATCH] Revert to working deployment while GHCR image builds Will re-apply pre-built image once GitHub Actions successfully pushes image to ghcr.io/unchainedio/manoon-headless --- k8s/deployment.yaml | 112 ++++++++++++++++++++++++++++++++++++++++- k8s/kustomization.yaml | 2 +- 2 files changed, 112 insertions(+), 2 deletions(-) diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml index 2147446..e3e82ad 100644 --- a/k8s/deployment.yaml +++ b/k8s/deployment.yaml @@ -13,9 +13,112 @@ spec: labels: app: storefront spec: + initContainers: + - name: clone + image: alpine/git:latest + command: + - sh + - -c + - | + set -e + apk add --no-cache git + # Clean workspace if it exists (handles pod restarts) + if [ -d /workspace/.git ]; then + echo "Workspace exists, pulling latest changes..." + cd /workspace + git fetch origin master + git reset --hard origin/master + else + echo "Cloning fresh repository..." + rm -rf /workspace/* + git clone --depth 1 --branch master \ + http://gitea.gitea.svc.cluster.local:3000/unchained/manoon-headless.git \ + /workspace + fi + echo "Clone/update complete." + volumeMounts: + - name: workspace + mountPath: /workspace + securityContext: + runAsUser: 0 + resources: + limits: + cpu: 500m + memory: 256Mi + - name: install + image: node:20-slim + workingDir: /workspace + command: + - sh + - -c + - | + set -e + echo "Installing dependencies..." + npm install --prefer-offline --no-audit 2>&1 + echo "Dependencies installed." + volumeMounts: + - name: workspace + mountPath: /workspace + securityContext: + runAsUser: 0 + resources: + limits: + cpu: 2000m + memory: 3Gi + requests: + cpu: 100m + memory: 1Gi + - name: build + image: node:20-slim + workingDir: /workspace + command: + - sh + - -c + - | + set -e + echo "Building Next.js app..." + npm run build + echo "Build complete!" + env: + - name: NODE_ENV + value: "production" + - name: NEXT_PUBLIC_SALEOR_API_URL + value: "https://api.manoonoils.com/graphql/" + - name: NEXT_PUBLIC_SITE_URL + value: "https://manoonoils.com" + - name: DASHBOARD_URL + value: "https://dashboard.manoonoils.com" + - name: NEXT_PUBLIC_OPENPANEL_CLIENT_ID + value: "fa61f8ae-0b5d-4187-a9b1-5a04b0025674" + - name: OPENPANEL_CLIENT_SECRET + value: "91126be0d1e78e657e0427df82733832.c6d30edf6ee673da9650a883604169a13ab8579a0dde70cb39b477f4cf441f90" + - name: OPENPANEL_API_URL + value: "https://op.nodecrew.me/api" + - name: MAUTIC_CLIENT_ID + value: "2_23cgmaqef8kgg8oo4kggc0w4wccwoss8o8w48o8sc40cowgkkg" + - name: MAUTIC_CLIENT_SECRET + value: "4k8367ab306co48c4c8g8sco8cgcwwww044gwccs0o0c8w4gco" + - name: MAUTIC_API_URL + value: "https://mautic.nodecrew.me" + volumeMounts: + - name: workspace + mountPath: /workspace + securityContext: + runAsUser: 0 + resources: + limits: + cpu: 2000m + memory: 2Gi + requests: + cpu: 100m + memory: 512Mi containers: - name: storefront - image: ghcr.io/unchainedio/manoon-headless:latest + image: node:20-slim + workingDir: /workspace + command: + - npm + - start ports: - containerPort: 3000 env: @@ -76,3 +179,10 @@ spec: port: 3000 periodSeconds: 5 failureThreshold: 3 + volumeMounts: + - name: workspace + mountPath: /workspace + volumes: + - name: workspace + emptyDir: + sizeLimit: 2Gi diff --git a/k8s/kustomization.yaml b/k8s/kustomization.yaml index 51e5947..54dedf0 100644 --- a/k8s/kustomization.yaml +++ b/k8s/kustomization.yaml @@ -7,4 +7,4 @@ resources: - ingress.yaml images: - name: ghcr.io/unchainedio/manoon-headless - newTag: latest # Will be updated by GitHub Actions to commit SHA + newTag: 2c27fc6 # Updated by GitHub Actions