- Aula 08: nginx-ingress TCP passthrough gitlab→gitea, comments
- Aula 09: add-client.sh API GitLab→Gitea
- Aula 11: node-bugado deployment image registry.kube.quest→gitea.kube.quest
- Aula 12: setup.sh/cleanup.sh API GitLab→Gitea, ArgoCD repoURL
- Aula 13: k8s manifests, benchmarks: registry.kube.quest→gitea.kube.quest,
gitlab-registry→gitea-registry, GITLAB_TOKEN→GITEA_TOKEN
- Aula 14: comments GitLab→Gitea
- README raiz: arquitetura, tabela, DNS
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
# =============================================================================
|
|
# Pipeline CI: DevOps Toolbox (eStargz + GZIP)
|
|
# =============================================================================
|
|
# Constrói imagem em ambos os formatos para benchmark
|
|
# =============================================================================
|
|
|
|
stages:
|
|
- build
|
|
- push
|
|
|
|
variables:
|
|
REGISTRY: gitea.kube.quest
|
|
IMAGE_NAME: factory/devops-toolbox
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_TLS_VERIFY: 1
|
|
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build eStargz (lazy pulling)
|
|
# -----------------------------------------------------------------------------
|
|
build-estargz:
|
|
stage: build
|
|
image: docker:27-dind
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
- docker buildx create --use --name multiarch --driver docker-container
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/arm64,linux/amd64 \
|
|
--output type=image,name=${REGISTRY}/${IMAGE_NAME}:latest,push=true,compression=estargz,force-compression=true,oci-mediatypes=true \
|
|
--cache-from type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache \
|
|
--cache-to type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache,mode=max \
|
|
.
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build GZIP (tradicional, para benchmark)
|
|
# -----------------------------------------------------------------------------
|
|
build-gzip:
|
|
stage: build
|
|
image: docker:27-dind
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
- docker buildx create --use --name multiarch --driver docker-container
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/arm64,linux/amd64 \
|
|
--output type=image,name=${REGISTRY}/${IMAGE_NAME}:gzip,push=true,compression=gzip,oci-mediatypes=true \
|
|
--cache-from type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache \
|
|
.
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Tag como versão
|
|
# -----------------------------------------------------------------------------
|
|
push-tags:
|
|
stage: push
|
|
image: docker:27-cli
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
script:
|
|
- docker buildx imagetools create -t ${REGISTRY}/${IMAGE_NAME}:v1 ${REGISTRY}/${IMAGE_NAME}:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
needs:
|
|
- build-estargz
|