entrega no k8s
configure as variaveis
Essa esteira depende dessas variáveis configuradas.
crie a esteira
Essa esteira depende de runners docker-dind tipo service, sem tls.
variables:
IMAGE_BUILD: docker:26.1.3
IMAGE_DIND: docker:26.1.3-dind
IMAGE_DEPLOY: bitnami/kubectl:1.30
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
services:
- $IMAGE_DIND
stages:
- build
- deploy
image_linter:
stage: build
image: pipelinecomponents/hadolint
tags:
- docker
only:
- dev
- release/sprint1
- release/sprint2
- release/sprint3
script:
- hadolint Dockerfile
compose_linter:
stage: build
image: pipelinecomponents/yamllint
needs:
- image_linter
tags:
- docker
only:
- dev
- release/sprint1
- release/sprint2
- release/sprint3
script:
- yamllint docker-compose.yml
build_push_image:
stage: build
needs:
- compose_linter
image: $IMG_BUILD
tags:
- dind
only:
- dev
- release/sprint1
- release/sprint2
- release/sprint3
before_script:
- docker info
script:
- docker build -t app:latest .
- docker login -u $REGISTRY_USER -p $REGISTRY_PASS $REGISTRY_URL
- docker tag app:latest $IMAGE_URL:$CI_PIPELINE_ID
- docker push $IMAGE_URL:$CI_PIPELINE_ID
- docker image rm $IMAGE_URL:$CI_PIPELINE_ID
- docker image rm app:latest
deploy_dev:
stage: deploy
needs:
- build_push_image
tags:
- docker
image:
name: bitnami/kubectl:1.30
entrypoint: [""]
only:
- dev
- release/sprint1
- release/sprint2
- release/sprint3
before_script:
- echo $KUBE_CREDENTIALS | base64 -d > config
- export KUBECONFIG=config
script:
- envsubst < k8s/app/deployment.yml | kubectl apply -f -
- kubectl rollout restart deployment/${K8S_APP_NAME} -n ${K8S_NAMESPACE}