From 95d073e5a57e01763f224db5f750d54944a79d60 Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 11:51:30 +0000 Subject: [PATCH 1/7] Update `.gitlab-ci.yml` to use `docker:24-dind` and fix deployment script formatting --- .gitlab-ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 54e4075..40bc6e0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,17 +50,18 @@ build-docker: # image: docker:24.0.5 # services: # - docker:24.0.5-dind - image: docker:20-dind + image: docker:24-dind + services: + - name: docker:24-dind + alias: docker + command: [ "--tls=false" ] + variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" # DOCKER_TLS_VERIFY: "" # DOCKER_TLS: "" - services: - - name: docker:20-dind - alias: docker - command: [ "--tls=false" ] before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY @@ -85,6 +86,7 @@ build-docker: - kubectl create namespace $K8S_NAMESPACE --dry-run=client -o yaml | kubectl apply -f - script: # Safely inject the image tag and apply to the specific namespace + - envsubst < k3s/deployment.yaml | echo - - envsubst < k3s/deployment.yaml | kubectl apply -n $K8S_NAMESPACE -f - # 4. Deploy to Development (Automatic) -- GitLab From 035f2640942fec2940e6f4ed28aa8085dd71b914 Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 11:53:25 +0000 Subject: [PATCH 2/7] Simplify Docker image build process in `.gitlab-ci.yml` by removing unused variables and redundant tags. --- .gitlab-ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 40bc6e0..de93af5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,10 +7,6 @@ stages: variables: DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA - # Replace 'path/to/project:agent-name' with your actual agent's path and name - KUBE_CONTEXT: "my-group/banguardian-project:my-k3s-agent" - IMAGE_TAG_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME - IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest @@ -70,7 +66,7 @@ build-docker: - hostname - nslookup gitlab.erpratyush.me - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - docker build -t $IMAGE_TAG_BRANCH -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST . + - docker build -t $DOCKER_IMAGE -t $IMAGE_TAG_LATEST . - docker image ls - docker push --all-tags $CI_REGISTRY_IMAGE -- GitLab From 23964e837de1aa4df1a6a7e74f6054f2f7614c5a Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 11:55:58 +0000 Subject: [PATCH 3/7] Fix redundant `echo -` in `.gitlab-ci.yml` deployment script --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index de93af5..555ac1b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,7 +82,7 @@ build-docker: - kubectl create namespace $K8S_NAMESPACE --dry-run=client -o yaml | kubectl apply -f - script: # Safely inject the image tag and apply to the specific namespace - - envsubst < k3s/deployment.yaml | echo - + - envsubst < k3s/deployment.yaml | echo - envsubst < k3s/deployment.yaml | kubectl apply -n $K8S_NAMESPACE -f - # 4. Deploy to Development (Automatic) -- GitLab From b0e19867e1e99418fad0f3ade247877abc08aff5 Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 11:59:02 +0000 Subject: [PATCH 4/7] Refine `.gitlab-ci.yml`: - Adjust job dependency formatting for consistency. - Remove redundant `echo` from deployment script. --- .gitlab-ci.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 555ac1b..13f439a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,10 +42,10 @@ build-server: # 3. Build & Push Docker Image build-docker: stage: package - needs: [build-server] -# image: docker:24.0.5 -# services: -# - docker:24.0.5-dind + needs: [ build-server ] + # image: docker:24.0.5 + # services: + # - docker:24.0.5-dind image: docker:24-dind services: - name: docker:24-dind @@ -70,11 +70,9 @@ build-docker: - docker image ls - docker push --all-tags $CI_REGISTRY_IMAGE - - # Deployment Template .deploy_template: - needs: [build-docker] + needs: [ build-docker ] image: name: alpine/k8s:1.28.3 # Includes kubectl and envsubst before_script: @@ -82,7 +80,7 @@ build-docker: - kubectl create namespace $K8S_NAMESPACE --dry-run=client -o yaml | kubectl apply -f - script: # Safely inject the image tag and apply to the specific namespace - - envsubst < k3s/deployment.yaml | echo + - envsubst < k3s/deployment.yaml - envsubst < k3s/deployment.yaml | kubectl apply -n $K8S_NAMESPACE -f - # 4. Deploy to Development (Automatic) -- GitLab From c52488510d724ece95c53f26a97f87680a9c179a Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 12:05:53 +0000 Subject: [PATCH 5/7] Comment out health check probes in `k3s/deployment.yaml` and update Docker image to `docker:24` in `.gitlab-ci.yml`. --- .gitlab-ci.yml | 2 +- k3s/deployment.yaml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13f439a..4bbea0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,7 +46,7 @@ build-docker: # image: docker:24.0.5 # services: # - docker:24.0.5-dind - image: docker:24-dind + image: docker:24 services: - name: docker:24-dind alias: docker diff --git a/k3s/deployment.yaml b/k3s/deployment.yaml index 44b534d..901190a 100644 --- a/k3s/deployment.yaml +++ b/k3s/deployment.yaml @@ -30,18 +30,18 @@ spec: memory: "256Mi" cpu: "100m" # Health checks for Spring Boot - livenessProbe: - httpGet: - path: /actuator/health/liveness - port: 8080 - initialDelaySeconds: 30 - periodSeconds: 10 - readinessProbe: - httpGet: - path: /actuator/health/readiness - port: 8080 - initialDelaySeconds: 30 - periodSeconds: 10 +# livenessProbe: +# httpGet: +# path: /actuator/health/liveness +# port: 8080 +# initialDelaySeconds: 30 +# periodSeconds: 10 +# readinessProbe: +# httpGet: +# path: /actuator/health/readiness +# port: 8080 +# initialDelaySeconds: 30 +# periodSeconds: 10 --- # 2. Service -- GitLab From e28c2461d4dd16ded5f75aaa8eeaa96adcdd927d Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 12:12:38 +0000 Subject: [PATCH 6/7] Parameterize ingress host in `k3s/deployment.yaml` and define `INGRESS_HOST` variable in `.gitlab-ci.yml` for dev and prod environments. --- .gitlab-ci.yml | 2 ++ k3s/deployment.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4bbea0b..1f41ded 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,6 +89,7 @@ deploy-dev: stage: deploy-dev variables: K8S_NAMESPACE: banguardian-dev + INGRESS_HOST: banguardian.pkay-playground-2026.online environment: name: development @@ -98,6 +99,7 @@ deploy-prod: stage: deploy-prod variables: K8S_NAMESPACE: banguardian-prod + INGRESS_HOST: banguardian.pkay.xyz environment: name: production when: manual diff --git a/k3s/deployment.yaml b/k3s/deployment.yaml index 901190a..c730651 100644 --- a/k3s/deployment.yaml +++ b/k3s/deployment.yaml @@ -71,7 +71,7 @@ metadata: nginx.ingress.kubernetes.io/proxy-body-size: "50m" spec: rules: - - host: "app.local.xyz" + - host: ${INGRESS_HOST} http: paths: - path: / -- GitLab From 8133c378306300b91c8ee0603b2709b86200656f Mon Sep 17 00:00:00 2001 From: pratyush Date: Fri, 3 Apr 2026 12:27:40 +0000 Subject: [PATCH 7/7] Update `k3s/deployment.yaml`: change `imagePullPolicy` to `IfNotPresent` and replace deprecated `ingress.class` with `ingressClassName`. --- k3s/deployment.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/k3s/deployment.yaml b/k3s/deployment.yaml index c730651..689beda 100644 --- a/k3s/deployment.yaml +++ b/k3s/deployment.yaml @@ -19,7 +19,7 @@ spec: - name: banguardian-app # This variable is injected by envsubst in your CI/CD pipeline image: ${DOCKER_IMAGE} - imagePullPolicy: Always + imagePullPolicy: IfNotPresent ports: - containerPort: 8080 resources: @@ -66,10 +66,10 @@ kind: Ingress metadata: name: banguardian-ingress annotations: - kubernetes.io/ingress.class: "nginx" # Optional: Increases max upload size (useful for Spring Boot file uploads) nginx.ingress.kubernetes.io/proxy-body-size: "50m" spec: + ingressClassName: nginx rules: - host: ${INGRESS_HOST} http: -- GitLab