diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 395a2b35c75bbb9f83a852d709789c94bc93b629..2fa22a74855e433c536b49e1fbfec59ecee6f457 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -81,9 +81,14 @@ job_upload: .deploy_template: &deploy_definition stage: deploy - image: - name: bitnami/kubectl:latest - entrypoint: [""] + image: bitnami/kubectl:latest + before_script: + - mkdir -p $HOME/.kube + - cp $KUBECONFIG $HOME/.kube/config + - chmod 400 $HOME/.kube/config + - minikube status || minikube start + - eval $(minikube docker-env) + - docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} . script: - | echo "Validating Kubernetes manifests..." @@ -98,9 +103,9 @@ job_upload: -e "s/\${CI_REGISTRY_IMAGE}/$CI_REGISTRY_IMAGE/g" \ -e "s/\${CI_COMMIT_SHA}/$CI_COMMIT_SHA/g" \ -e "s/\${DB_PASSWORD}/$DB_PASSWORD/g" \ - $file | kubectl apply --dry-run=client -f - -n $KUBE_NAMESPACE + $file | kubectl apply -f - -n $KUBE_NAMESPACE done - echo "All manifests are valid." + echo "Deployment complete." deploy_to_staging: <<: *deploy_definition @@ -129,21 +134,4 @@ deploy_to_production: INGRESS_HOST: "webservice.example.com" only: - main - when: manual - -rollback: - stage: deploy - image: - name: bitnami/kubectl:latest - entrypoint: [""] - script: - - | - echo "Simulating rollback..." - echo "In a real environment, we would run:" - echo "kubectl rollout undo deployment/webservice -n $KUBE_NAMESPACE" - echo "Rollback simulation complete." - when: manual - environment: - name: staging - variables: - KUBE_NAMESPACE: ${CI_ENVIRONMENT_SLUG} \ No newline at end of file + when: manual \ No newline at end of file diff --git a/deployment.yaml b/deployment.yaml index 731c561e5774e83eddde5ebe4339b61af79fa2d7..5c90e05e6fe99f8d3a31b92b05de52b6e056dff4 100644 --- a/deployment.yaml +++ b/deployment.yaml @@ -40,6 +40,7 @@ spec: containers: - name: webservice image: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} + imagePullPolicy: Never ports: - containerPort: 8080 env: