No description
| action.yaml | ||
| README.md | ||
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?
- Configuração de Autoria do Git: Define o
user.namecomo"GitSES [Action]"euser.emailcomo"forgejo@ses.pb.gov.local". - Autenticação Segura: Configura
git credential.helper = storee registra as credenciais do GitCodata (gitcodata.pb.gov.br) utilizando os inputsgitcodata-usernameegitcodata-token. - Clone Otimizado: Clona o repositório definido no input
repo-url, trazendo exclusivamente a branch informada no inputrepo-branch(oukubernetespor padrão). - Validação de Ambiente: Valida se o input obrigatório
environmenté estritamente"prd"ou"hml". - Atualização do Kustomize: Localiza a imagem informada no input
imagee atualiza exclusivamente o respectivo camponewTagexistente no arquivooverlays/<environment>/kustomization.yaml(ou.yml) para o valor de<version>, sem afetar as demais imagens declaradas. - Commit Automatizado: Cria o commit com a mensagem padrão
"Set version <version>". - 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
newTagdeclarada. A action substitui apenas a tag da imagem especificada no inputimage.
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" |