Canais (Stable/RC)
O GitOps suporta distribuicao por canais, permitindo que projetos tenham versoes estables e release candidates em paralelo.
Como Funciona
Canais sao definidos no .gitops.yml e mapeiam padroes de tag para pastas no storage:
channels:
stable:
tag_pattern: "v[0-9]+.[0-9]+.[0-9]+$" # v1.2.3
folder: "" # raiz
rc:
tag_pattern: "v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+$" # v1.2.3-rc.1
folder: "rc" # subpasta rc/Quando o GitOps processa um release, ele:
- Extrai a tag (ex:
v1.2.3-rc.1) - Testa contra cada
tag_pattern - Usa o
folderdo canal que fez match - Substitui
{channel_path}nos destinations
Estrutura no Storage
projeto/
├── app ← latest stable
├── app.zip
├── latest/
│ ├── app
│ └── app.zip
├── v1.0.0/ ← versionado stable
│ ├── app
│ └── app.zip
├── rc/ ← release candidates
│ ├── app ← latest RC
│ ├── app.zip
│ ├── latest/
│ │ ├── app
│ │ └── app.zip
│ └── v1.1.0-rc.1/ ← versionado RC
│ ├── app
│ └── app.zip
└── docs/
├── latest/
└── v1.0.0/Fluxo de Releases
dev main
│ │
├── v2.0.0-rc.1 (teste inicial) │
│ └── rc/app = rc.1 binary │
│ │
├── v2.0.0-rc.2 (correcoes) │
│ └── rc/app = rc.2 binary │
│ │
├── v2.0.0-rc.3 (aprovado!) │
│ │
└──────── merge ──────────────────────├── v2.0.0 (estavel)
│ └── app = v2.0.0 binaryPlaceholder {channel_path}
O placeholder {channel_path} resolve para:
| Canal | folder | {channel_path} |
|---|---|---|
| stable | "" |
"" (vazio) |
| rc | "rc" |
"rc/" |
Exemplo de destination:
destination: "{channel_path}app"- Tag
v1.0.0(stable):app - Tag
v1.0.0-rc.1(rc):rc/app
destination: "{channel_path}{version}/app"- Tag
v1.0.0(stable):1.0.0/app - Tag
v1.0.0-rc.1(rc):rc/1.0.0-rc.1/app
URLs de Download
Para um projeto em https://projeto.ccs.systems:
| Tipo | URL |
|---|---|
| Latest stable | https://projeto.ccs.systems/app |
| Versionado stable | https://projeto.ccs.systems/v1.0.0/app |
| Latest RC | https://projeto.ccs.systems/rc/app |
| Versionado RC | https://projeto.ccs.systems/rc/v1.1.0-rc.1/app |
Self-Update com Canais
Clients que suportam self-update podem usar:
| Flag | Comportamento |
|---|---|
| (padrao) | Baixa apenas versoes estaveis |
--rc |
Inclui release candidates |
A logica e do client, nao do GitOps. O GitOps apenas distribui nos caminhos corretos.
By Borlot.com.br on 06/03/2026