From e5ef3db0af68076d4b5b7c3c8edb5130652c9ab3 Mon Sep 17 00:00:00 2001 From: Keyvan Ebrahimpour Date: Fri, 11 Apr 2025 22:54:43 +0000 Subject: [PATCH 1/3] use ubuntu 24.04 --- .github/workflows/build-and-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml index 4cdfa6c..5e6243e 100644 --- a/.github/workflows/build-and-deploy.yaml +++ b/.github/workflows/build-and-deploy.yaml @@ -16,7 +16,7 @@ env: jobs: build-and-deploy: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read packages: write From 7e3665b2cf9b08d40ecece7cbc8b9ca0a0714b4b Mon Sep 17 00:00:00 2001 From: Keyvan Ebrahimpour Date: Sat, 12 Apr 2025 13:22:44 +0000 Subject: [PATCH 2/3] Add Kubernetes deployment files for Portainer GitOps --- infra/kubernetes/landing-page/deployment.yaml | 30 +++++++++++++++++++ infra/kubernetes/landing-page/ingress.yaml | 23 ++++++++++++++ infra/kubernetes/landing-page/service.yaml | 11 +++++++ 3 files changed, 64 insertions(+) create mode 100644 infra/kubernetes/landing-page/deployment.yaml create mode 100644 infra/kubernetes/landing-page/ingress.yaml create mode 100644 infra/kubernetes/landing-page/service.yaml diff --git a/infra/kubernetes/landing-page/deployment.yaml b/infra/kubernetes/landing-page/deployment.yaml new file mode 100644 index 0000000..31f8188 --- /dev/null +++ b/infra/kubernetes/landing-page/deployment.yaml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: landing-page + labels: + app: landing-page +spec: + replicas: 1 + selector: + matchLabels: + app: landing-page + template: + metadata: + labels: + app: landing-page + spec: + containers: + - name: landing-page + image: ghcr.io/kebrahimpour/avisenna-landing-page:latest + ports: + - containerPort: 80 + resources: + limits: + memory: "128Mi" + cpu: "250m" + requests: + memory: "64Mi" + cpu: "100m" + imagePullSecrets: + - name: ghcr-secret diff --git a/infra/kubernetes/landing-page/ingress.yaml b/infra/kubernetes/landing-page/ingress.yaml new file mode 100644 index 0000000..402c208 --- /dev/null +++ b/infra/kubernetes/landing-page/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: landing-page + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: traefik + tls: + - hosts: + - avisenna-engineering.de + secretName: landing-page-tls + rules: + - host: avisenna-engineering.de + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: landing-page + port: + number: 80 diff --git a/infra/kubernetes/landing-page/service.yaml b/infra/kubernetes/landing-page/service.yaml new file mode 100644 index 0000000..f917abd --- /dev/null +++ b/infra/kubernetes/landing-page/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: landing-page +spec: + selector: + app: landing-page + ports: + - port: 80 + targetPort: 80 + type: ClusterIP From 93629b61f99e3e894bd3f705136159b9cd084ab9 Mon Sep 17 00:00:00 2001 From: Keyvan Ebrahimpour Date: Sat, 26 Apr 2025 08:07:56 +0000 Subject: [PATCH 3/3] Fix k8s deployment error --- .github/workflows/build-and-deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml index 5e6243e..acf30dd 100644 --- a/.github/workflows/build-and-deploy.yaml +++ b/.github/workflows/build-and-deploy.yaml @@ -48,7 +48,7 @@ jobs: - name: Detect container name id: detect-container run: | - CONTAINER=$(kubectl -n $NAMESPACE get deployment homepage -o=jsonpath='{.spec.template.spec.containers[0].name}') + CONTAINER=$(kubectl -n $NAMESPACE get deployment landing-page -o=jsonpath='{.spec.template.spec.containers[0].name}') echo "container=$CONTAINER" >> $GITHUB_OUTPUT env: NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }} @@ -58,7 +58,7 @@ jobs: IMAGE="ghcr.io/${{ github.repository }}:$VERSION" CONTAINER="${{ steps.detect-container.outputs.container }}" echo "Setting image for container $CONTAINER" - kubectl set image deployment/homepage $CONTAINER=$IMAGE -n $NAMESPACE + kubectl set image deployment/landing-page $CONTAINER=$IMAGE -n $NAMESPACE env: VERSION: ${{ vars.VERSION || 'latest' }} NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}