--- kind: pipeline type: kubernetes name: build-deploy trigger: branch: - main - master event: - push steps: # ============================================================ # СБОРКА ОБРАЗА # ============================================================ - name: build image: plugins/kaniko settings: registry: registry.vigdorov.ru repo: registry.vigdorov.ru/library/chicken-game dockerfile: Dockerfile context: . tags: - ${DRONE_COMMIT_SHA:0:7} - latest cache: true cache_repo: registry.vigdorov.ru/library/chicken-game-cache username: from_secret: HARBOR_USER password: from_secret: HARBOR_PASSWORD no_push_metadata: true # ============================================================ # ДЕПЛОЙ # ============================================================ - name: deploy image: alpine/k8s:1.28.2 depends_on: - build environment: KUBE_CONFIG_CONTENT: from_secret: KUBE_CONFIG commands: - mkdir -p ~/.kube - echo "$KUBE_CONFIG_CONTENT" > ~/.kube/config - chmod 600 ~/.kube/config - sed -i "s|https://127.0.0.1:6443|https://10.10.10.100:6443|g" ~/.kube/config - export APP_NAMESPACE="prod-ns" - export IMAGE_TAG="${DRONE_COMMIT_SHA:0:7}" - export IMAGE="registry.vigdorov.ru/library/chicken-game" - kubectl cluster-info - sed -e "s|__IMAGE__|$IMAGE:$IMAGE_TAG|g" k8s/deployment.yaml | kubectl apply -n $APP_NAMESPACE -f - - kubectl apply -n $APP_NAMESPACE -f k8s/service.yaml - kubectl rollout status deployment/chicken-game -n $APP_NAMESPACE --timeout=300s - echo "✅ Chicken Game deployed (image:$IMAGE_TAG)" --- kind: pipeline type: kubernetes name: infra-pipeline trigger: branch: - main - master event: - push paths: include: - k8s/** steps: - name: deploy-infra image: alpine/k8s:1.28.2 environment: KUBE_CONFIG_CONTENT: from_secret: KUBE_CONFIG commands: - mkdir -p ~/.kube - echo "$KUBE_CONFIG_CONTENT" > ~/.kube/config - chmod 600 ~/.kube/config - sed -i "s|https://127.0.0.1:6443|https://10.10.10.100:6443|g" ~/.kube/config - export APP_NAMESPACE="prod-ns" - export HOSTNAME="chicken.vigdorov.ru" - export SECRET_NAME="wildcard-cert" - kubectl cluster-info - kubectl apply -n $APP_NAMESPACE -f k8s/service.yaml - sed -e "s|__HOSTNAME__|$HOSTNAME|g" -e "s|__SECRET_NAME__|$SECRET_NAME|g" k8s/ingress.yaml | kubectl apply -n $APP_NAMESPACE -f - - echo "✅ Infrastructure updated for chicken.vigdorov.ru"