kind: pipeline name: full-devops-stack steps: # Étape 1 : Build & Push l'image vers le registre Gitea build-and-publish: image: gcr.io/kaniko-project/executor:debug # Version debug pour avoir le shell environment: REGISTRY_USER: from_secret: registry_user REGISTRY_PASS: from_secret: registry_password commands: # 1. Créer le fichier d'auth Docker pour Gitea - echo "{\"auths\":{\"gitea.213.165.95.242.sslip.io\":{\"username\":\"$REGISTRY_USER\",\"password\":\"$REGISTRY_PASS\"}}}" > /kaniko/.docker/config.json # 2. Lancer Kaniko avec le flag --force explicitement - /kaniko/executor --context $CI_WORKSPACE --dockerfile $CI_WORKSPACE/Dockerfile --destination gitea.213.165.95.242.sslip.io/gitea_admin/hello-world:${CI_COMMIT_SHA:0:7} --insecure --skip-tls-verify --force # Étape 2 : Déploiement sur K3s deploy-to-k3s: image: bitnami/kubectl:latest environment: KUBE_CONFIG: from_secret: k3s_kubeconfig commands: - mkdir -p ~/.kube - echo "$KUBE_CONFIG" > ~/.kube/config # On force la mise à jour de l'image avec le tag du commit actuel - kubectl set image deployment/hello-k3s node-app=gitea.213.165.95.242.sslip.io/gitea_admin/hello-world:${CI_COMMIT_SHA:0:7} -n devops-tools --insecure-skip-tls-verify - kubectl rollout status deployment/hello-k3s -n devops-tools --insecure-skip-tls-verify when: event: push branch: main