No description
Find a file
2026-09-18 11:24:02 -03:00
action.yaml feat: add required image input to update only the specified image tag 2026-09-18 11:23:58 -03:00
README.md docs: update readme with image input and multi-image kustomization example 2026-09-18 11:24:02 -03:00

GitCodata Kustomize Update

Action para o Forgejo / Gitea Actions responsável por atualizar automaticamente a versão da tag de imagem (newTag) no arquivo overlays/<environment>/kustomization.yaml em um repositório de manifests Kubernetes hospedado no GitCodata (gitcodata.pb.gov.br).

O que esta action faz?

  1. Configuração de Autoria do Git: Define o user.name como "GitSES [Action]" e user.email como "forgejo@ses.pb.gov.local".
  2. Autenticação Segura: Configura git credential.helper = store e registra as credenciais do GitCodata (gitcodata.pb.gov.br) utilizando os inputs gitcodata-username e gitcodata-token.
  3. Clone Otimizado: Clona o repositório definido no input repo-url, trazendo exclusivamente a branch informada no input repo-branch (ou kubernetes por padrão).
  4. Validação de Ambiente: Valida se o input obrigatório environment é estritamente "prd" ou "hml".
  5. Atualização do Kustomize: Localiza a imagem informada no input image e atualiza exclusivamente o respectivo campo newTag existente no arquivo overlays/<environment>/kustomization.yaml (ou .yml) para o valor de <version>, sem afetar as demais imagens declaradas.
  6. Commit Automatizado: Cria o commit com a mensagem padrão "Set version <version>".
  7. Git Push: Envia a branch modificada de volta para o repositório remoto no GitCodata.

Note

O arquivo de overlay do Kustomize deve possuir previamente a imagem informada com a chave newTag declarada. A action substitui apenas a tag da imagem especificada no input image.


Estrutura esperada no Kustomize

Certifique-se de que o arquivo overlays/<environment>/kustomization.yaml (ou kustomization.yml) contenha a declaração da imagem e sua respectiva tag:

images:
  - name: git.ses.pb.gov.br/sespb/sigb-static-service
    newTag: 1.0.3

  - name: git.ses.pb.gov.br/sespb/sigb
    newTag: 1.0.3

Como usar?

Exemplo padrão

- name: Atualizar versão no Kustomize
  uses: actions/gitcodata-kustomize-update@v1
  with:
    environment: "prd" # Obrigatório: 'prd' ou 'hml'
    image: "git.ses.pb.gov.br/sespb/sigb" # Obrigatório: nome da imagem alvo
    version: "1.2.3"   # Obrigatório: nova tag da imagem
    gitcodata-username: ${{ secrets.GITCODATA_USERNAME }} # Obrigatório
    gitcodata-token: ${{ secrets.GITCODATA_TOKEN }}       # Obrigatório
    repo-url: "https://gitcodata.pb.gov.br/saude/meu-projeto-k8s.git" # Obrigatório
    repo-branch: "kubernetes" # Opcional: padrão é 'kubernetes'

Exemplo integrado ao pipeline de build e publicação

- name: Sanitizar Tag da Imagem
  id: tag
  uses: actions/sanitize-image-tag@v1

- name: Atualizar Manifesto Kubernetes no GitCodata
  uses: actions/gitcodata-kustomize-update@v1
  with:
    environment: "prd"
    image: "git.ses.pb.gov.br/sespb/sigb"
    version: ${{ steps.tag.outputs.identifier_tag }}
    gitcodata-username: ${{ secrets.GITCODATA_USERNAME }}
    gitcodata-token: ${{ secrets.GITCODATA_TOKEN }}
    repo-url: "https://gitcodata.pb.gov.br/saude/meu-projeto-k8s.git"

Entradas (Inputs)

Input Descrição Obrigatório Padrão
environment Ambiente de destino. Aceita apenas "prd" ou "hml". Sim -
image Nome da imagem cuja tag (newTag) será atualizada. Sim -
version Versão da imagem que será configurada em newTag. Sim -
gitcodata-username Usuário com permissão de escrita no repositório do GitCodata. Sim -
gitcodata-token Token de acesso pessoal (PAT) gerado no GitCodata. Sim -
repo-url URL do repositório contendo os manifests Kubernetes. Sim -
repo-branch Branch a ser clonada e atualizada. Não "kubernetes"