Nesta página, descrevemos como configurar o Cloud Deploy para renderizar o configuração para cada destino em um pipeline de entrega.
O Cloud Deploy usa o Skaffold para renderizar os manifestos do Kubernetes. O serviço é compatível com a renderização de manifestos brutos e ferramentas de gerenciamento de manifesto mais avançadas, como Helm, Kustomize e kpt (links em inglês). de dados.
O processo de renderização tem dois estágios:
A ferramenta de gerenciamento de manifestos gera o manifesto.
O Skaffold substitui as referências de imagens no manifesto pelas imagens que você quer implantar na versão.
Nesta página, incluímos exemplos de configuração que usam o Helm e o Kustomize.
Como usar o Skaffold para gerar sua configuração
Se você ainda não tiver um arquivo de configuração (skaffold.yaml
) do Skaffold, use
o Skaffold para gerar um para você, com base no que está no seu repositório.
Instale o Skaffold usando a Google Cloud CLI:
gcloud components install skaffold
Execute
skaffold init
no repositório que contém seus manifestos:skaffold init --skip-build
Esse comando cria um arquivo skaffold.yaml
no seu repositório. Esse arquivo
faz referência aos manifestos nesse repositório. O conteúdo é semelhante a este:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: sample-app
manifests:
rawYaml:
- k8s-manifests/deployment.yaml
- k8s-manifests/rbac.yaml
- k8s-manifests/redis.yaml
- k8s-manifests/service.yaml
Renderizar manifestos brutos
Os manifestos brutos não são gerenciados por uma ferramenta, como o Helm ou o Kustomize, e, portanto, não precisam de pré-processamento antes de serem hidratados e implantados em um cluster.
Por padrão, o Cloud Deploy usa skaffold render
para renderizar os manifestos do Kubernetes, substituindo nomes de imagens não marcadas pelos
nomes de imagens marcadas das imagens de contêiner que você está implantando. Então, quando você
para promover o lançamento, o Cloud Deploy usa
skaffold apply
para aplicar os manifestos e implantar as imagens no Google Kubernetes Engine
cluster.
Uma estrofe de manifests
de uma configuração básica tem esta aparência:
manifests:
rawYaml:
- PATH_TO_MANIFEST
Consulte a documentação do Skaffold para mais informações sobre quais valores podem ser transmitidos aqui.
Renderização usando Helm
É possível usar o Cloud Deploy para renderizar o Helm
gráficos. Para isso, inclua detalhes do gráfico Helm em uma estrofe deploy
em um
perfil do Skyffold.
Cada definição tem esta aparência:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
helm:
releases:
- name: RELEASE_NAME
chartPath: PATH_TO_HELM_CHART
Em que:
RELEASE_NAME é o nome da instância de gráfico do Helm para esta versão.
PATH_TO_HELM_CHART é o caminho local para um gráfico do Helm empacotado ou um diretório de gráfico do Helm descompactado.
É possível usar outras opções de configuração do Helm, conforme descrito na documentação do Skaffold
Renderização usando Kustomize
É possível usar o Kustomize com o Cloud Deploy. Para
fazer isso, aponte para os arquivos do Kustomization de acordo com a estrofe deploy
na
configuração do perfil skaffold.yaml
.
Inclua uma configuração separada do Kustomize para cada destino em que você está usando o Kustomize, em cada profile
correspondente na sua skaffold.yaml
.
Cada definição tem esta aparência:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
kustomize:
paths:
- PATH_TO_KUSTOMIZE
Em que:
PATH_TO_KUSTOMIZE aponta para os arquivos do Kustomization. O padrão é ["."]
.
É possível usar outras opções de configuração do Kustomize, conforme descrito na documentação do Skaffold
Como configurar diferentes manifestos por destino
Muitas vezes, cada destino precisa de uma configuração um pouco diferente. Por exemplo, talvez você tenha mais réplicas nas implantações de produção do que nas implantações de preparo.
É possível renderizar um conjunto diferente de manifestos para cada destino, fornecendo cada variação como um perfil do Skyffold diferente.
Perfis com manifestos brutos
Ao trabalhar com manifestos brutos, você pode apontar o Cloud Deploy em um arquivo diferente, dependendo do destino. Você pode configurar isso da seguinte maneira:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
rawYaml:
- prod.yaml
- name: staging
manifests:
rawYaml:
- staging.yaml
Perfis com Kustomize
Veja um exemplo de skaffold.yaml
que tem perfis diferentes para preparo e produção usando o Kustomize, em que cada perfil aponta para uma Kustomize diferente:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
kustomize:
paths:
- environments/prod
- name: staging
manifests:
kustomize:
paths:
- environments/staging
Perfis referenciados no pipeline de entrega
Esses perfis, definidos em skaffold.yaml
, são referenciados na configuração do pipeline de entrega por destino:
serialPipeline:
stages:
- targetId: staging-target
profiles:
- staging
- targetId: prod-target
profiles:
- prod
A seguir
- Saiba mais sobre a configuração do pipeline de entrega do Cloud Deploy.
- Confira o tutorial dos perfis do Skaffold do Cloud Deploy
- Saiba mais sobre o Kustomize.
- Saiba mais sobre o Helm.
- Saiba mais sobre o Kpt.
- Use o Artifact Registry para armazenar artefatos, como gráficos Helm ou Kustomizations.