Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Campos RootSync e RepoSync

Esta página fornece uma referência para os recursos RootSync, RepoSync e ResourceGroup.

É possível usar os recursos RootSync e RepoSync para configurar o Config Sync.

Os objetos RootSync configuram o Config Sync para observar a origem especificada e aplicar objetos dessa fonte ao cluster. O RootSyncs pode ser usado para gerenciar qualquer recurso no cluster com permissões de administrador de cluster.

Os objetos do RepoSync configuram o Config Sync para observar a origem especificada e aplicar objetos dessa fonte a um namespace específico no cluster. Os objetos RepoSync são usados para gerenciar qualquer recurso com escopo de namespace nesse namespace com permissões personalizadas especificadas pelo usuário.

O recurso ResourceGroup é usado pelo Config Sync para manter o inventário de objetos que ele aplicou e gerencia atualmente. O Config Sync cria um objeto ResourceGroup para cada RootSync e RepoSync no cluster. Isso permite que o Config Sync remova os objetos removidos da origem e agregue a sincronização e o status de reconciliação do objeto. Você não precisa criar seus próprios objetos ResourceGroup, nem modificar os gerenciados pelo Config Sync.

Uso de objetos RootSync e RepoSync

Se você instalou o Config Sync usando o console do Google Cloud ou a Google Cloud CLI, o serviço do Hub criará automaticamente um objeto RootSync chamado root-sync. Consulte Controlar repositórios raiz em um repositório raiz para saber como criar outros objetos RootSync.

Se você instalou o Config Sync usando kubectl, consulte Controlar repositórios raiz em um repositório raiz para saber como criar o RootSync.

Para criar objetos RepoSync, consulte Controlar repositórios de namespaces em um repositório raiz ou Controlar repositórios de namespaces em um repositório de namespaces.

Além de sincronizar os objetos do Kubernetes totalmente renderizados, também é possível configurar o Config Sync para usar um repositório com configurações do Kustomize ou gráficos Helm.

Ciclo de vida dos objetos RootSync, RepoSync e ResourceGroup

As definições dos recursos personalizados RootSync, RepoSync e ResourceGroup são instaladas quando você instala o Config Sync.

O diagrama a seguir mostra uma visão geral de como o Config Sync cria os recursos RootSync, RepoSync e ResourceGroup:

Atuação do operador

Depois de criado, o Reconciler Manager gerencia o controle do ciclo de vida do Reconciler raiz e de cada processo do Reconciler de namespace:

Atuação do reconciliador

Campos RootSync e RepoSync

Os CRDs RootSync e RepoSync usam os mesmos campos com exceção de spec.sourceFormat.

Configuração para o formato de origem

Chave Descrição
spec.sourceFormat sourceFormat especifica como o repositório é formatado. Opcional.
A validação desse campo diferencia maiúsculas de minúsculas.
  • Para objetos RootSync, o valor precisa ser hierarchy ou unstructured. O valor padrão será hierarchy se não for especificado, mas unstructured é recomendado.
  • Para objetos RepoSync, ele precisa ser unstructured, e o padrão também é unstructured.
Consulte os guias de formato não estruturado e hierárquico para mais detalhes.

Configuração para o tipo de origem

A partir do Anthos Config Management versão 1.12.0, o Config Sync é compatível com a sincronização de imagens do OCI (Visualização). A partir da versão 1.13.0 do Anthos Config Management, o Config Sync é compatível com a sincronização de repositórios do Helm (visualização). spec.sourceType está configurado para especificar o tipo de origem.

Chave Descrição
spec.sourceType sourceType especifica o tipo da fonte da verdade. Precisa ser git, ociou helm Opcional.
Defina como git se não for especificado. A validação desse campo diferencia maiúsculas de minúsculas.
Apenas um spec.git e spec.oci podem ser especificados, dependendo do tipo de origem.

Configuração para o repositório Git

Chave Descrição
spec.git.auth O tipo de secret configurado para acesso ao repositório Git. Precisa ser ssh, cookiefile, gcenode, gcpserviceaccount, token ou none. A validação desse campo diferencia maiúsculas de minúsculas. Obrigatório.
spec.git.gcpServiceAccountEmail A conta de serviço do Google Cloud usada para anotar a conta de serviço do Kubernetes do controlador RootSync ou RepoSync. Este campo é usado apenas quando spec.git.auth é gcpserviceaccount.
spec.git.branch A ramificação Git do repositório com que sincronizar. Padrão: master.
spec.git.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração que você quer sincronizar. Padrão: o diretório raiz (/) do repositório.
spec.git.period A duração de tempo entre sincronizações consecutivas. Padrão: 15s.
spec.git.repo O URL do repositório Git do qual sincronizar. Obrigatório.
spec.git.revision A revisão do Git (tag, confirmação ou hash) para check-out. Padrão: HEAD.
spec.git.secretRef.name O nome do Secret usado para se conectar à origem do Git da verdade.
spec.git.noSSLVerify1 noSSLVerify especifica se a verificação do certificado SSL será ativada ou desativada. (Padrão: falso).
Se noSSLVerify estiver definido como verdadeiro, ele solicitará que o Git ignore a verificação do certificado SSL.
Esse campo é compatível com o Anthos Config Management versão 1.8.2 e posterior.
spec.git.caCertSecretRef.name1 O nome do secret que contém o certificado da autoridade de certificação (CA). Se este campo for preenchido, o servidor git precisará usar um certificado emitido por essa CA. O certificado de CA precisa ser armazenado no secret com uma chave chamada "cert".

Configuração de proxy para o repositório Git

Se as políticas de segurança da sua organização exigirem o roteamento do tráfego por meio de um proxy HTTP(S), use o URI do proxy para configurar o Config Sync para se comunicar com o host Git.

Chave Descrição
spec.git.proxy O URL do proxy com o esquema para configurar o acesso ao repo Git usando um proxy. Exemplo: https://proxy.internal.business.co:443
O proxy do Git aceita https, http e URLs não adornados, mas http não é recomendado por questões de segurança.
Se você usar um http ou um URL não adornado, verifique se a comunicação entre o servidor proxy e o host do Git é segura.
Este campo só tem efeito quando spec.git.auth é cookiefile, none, or token.

Configuração da imagem OCI

O Config Sync exige que a camada OCI esteja compacta no formato tar ou tar+gzip.

Outros formatos (por exemplo, tar+bz2) não serão reconhecidos pelo Config Sync. Se você mudar de um REPO válido para uma imagem OCI com um formato incompatível, os recursos gerenciados serão removidos sem erro.

Chave Descrição
spec.oci.auth É o tipo de autenticação configurada para acesso à imagem OCI. Precisa ser gcenode, gcpserviceaccount, none, , ou . A validação desse campo diferencia maiúsculas de minúsculas. Obrigatório.
spec.oci.gcpServiceAccountEmail A conta de serviço do Google Cloud usada para anotar a conta de serviço do Kubernetes do controlador RootSync ou RepoSync. Este campo é usado apenas quando spec.oci.auth é gcpserviceaccount.
spec.oci.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração que você quer sincronizar. Padrão: o diretório (/) raiz do repositório.
spec.oci.period A duração de tempo entre sincronizações consecutivas. Padrão: 15s.
spec.oci.image O URL da imagem OCI do qual sincronizar. Obrigatório.

Configuração do repositório do Helm

Chave Descrição
spec.helm.auth O tipo de autenticação configurada para acesso ao repositório do Helm. Precisa ser token, gcenode, gcpserviceaccount, ou none. A validação desse campo diferencia maiúsculas de minúsculas. Obrigatório.
spec.helm.gcpServiceAccountEmail A conta de serviço do Google Cloud usada para anotar a conta de serviço do Kubernetes do controlador RootSync ou RepoSync. Este campo é usado apenas quando spec.helm.auth é gcpserviceaccount.
spec.helm.secretRef.name O nome do [Secret](doc-path/how-to/install-kubectl#helm-access) usado para acessar o repositório do Helm. Este campo é usado apenas quando spec.helm.auth é token.
spec.helm.repo O URL do repositório Git do qual sincronizar. Obrigatório.
spec.helm.chart O nome do gráfico do Helm. Obrigatório.
spec.helm.version O número da versão do gráfico do Helm. Padrão: a versão mais recente.
spec.helm.releaseName O nome da versão do Helm.
spec.helm.namespace O namespace define o namespace de destino de uma versão. Este campo é usado apenas com objetos RootSync. Ele define apenas o namespace dos recursos que contêm namespace: {{ .Release.Namespace }} nos modelos. O valor especificado em spec.helm.namespace é usado apenas como o valor de Release.Namespace declarado nos modelos do Helm. O namespace default será usado nos recursos que não têm namespace: {{ .Release.Namespace }} nos modelos. Padrão: default
spec.helm.values Valores a serem usados em vez de valores padrão que acompanham o gráfico Formate os valores da mesma maneira com os valores padrão.yaml. Exemplo:

values:
  foo:
    bar: val1
  quz:
  - val2
  - val3
Esse campo é compatível com o Anthos Config Management 1.13.1 e versões mais recentes. Consulte o manifesto de exemplo do Helm para ver mais detalhes.
spec.helm.includeCRDs Especifica se o modelo do Helm deve gerar CustomResourceDefinitions. Padrão: false.
spec.helm.period A duração de tempo entre sincronizações consecutivas. Padrão: 15s. Os gráficos não serão extraídos novamente se um número de versão for especificado. Não é possível sincronizar novamente os gráficos com a versão mais recente em Visualizar.

Configuração para modificar as solicitações e os limites de recursos de um reconciliador de raiz ou de namespace

Nos clusters do Autopilot, o Config Sync ignora as substituições de limite de recursos. As substituições de solicitação de recurso são aplicadas somente quando há uma ou mais solicitações de recursos superiores à saída ajustada correspondente declarada na anotação ou quando há uma ou mais solicitações de recurso menores que a entrada correspondente declarada na anotação. Para mais informações, consulte Requisitos de cluster para o Config Sync.

Chave Descrição
spec.override.resources1 A lista de solicitações de recursos do contêiner e modificações de limite. Opcional.
Cada item da lista contém três campos:
  • containerName: este campo pode ser git-sync, oci-sync, helm-sync, hydration-controller ou reconciler.
  • cpuRequest (opcional)
  • cpuLimit (opcional)
  • memoryRequest (opcional)
  • memoryLimit (opcional)

Quando um valor de modificação para uma solicitação ou limite de recurso não é fornecido, o valor padrão do recurso é usado.

Configuração para o número de confirmações do Git a serem buscadas

Chave Descrição
spec.override.gitSyncDepth1 O gitSyncDepth permite substituir o número de confirmações do Git a serem buscadas.
Precisa ser menor que 0.
O Config Sync fará um clone completo se esse campo for 0, e um clone superficial se este campo for maior que 0.
Se esse campo não for fornecido, o Config Sync o configurará automaticamente.

Configuração para capturar o status no nível do recurso

Chave Descrição
spec.override.statusMode1 statusMode permite ativar ou desativar a captura do status no nível do recurso.
O padrão é enabled.
Para desativar a captura do status no nível do recurso, defina esse campo como disabled.

Configuração para substituir o tempo limite de reconciliação

Chave Descrição
spec.override.reconcileTimeout1 reconcileTimeout permite substituir o limite de tempo para aguardar recursos em um aplicar grupo para reconciliar antes de desistir. Todos os recursos em uma confirmação podem estar em vários grupos de aplicação com base nas dependências.
O tempo limite padrão é 5m.
Use a string para especificar esse valor de campo, como 30s, 5m.

Configuração para acesso ao shell no processo de renderização

Chave Descrição
spec.override.enableShellInRendering1 enableShellInRendering especifica se o acesso ao shell será ativado ou desativado no processo de renderização. As bases remotas do Kustomize precisam de acesso ao shell. Definir esse campo como true permite o acesso ao shell no processo de renderização e permite extrair bases remotas de repositórios públicos.
O padrão é false.

Status dos objetos

Chave Descrição
status.observedGeneration A geração (metadata.generation) da especificação de um recurso RootSync ou RepoSync que foi observado pela última vez e usado pelo Config Sync. Esse valor pode ser comparado com metadata.generation, que é um número inteiro e é atualizado na mutação de especificações pelo servidor da API.
status.reconciler O nome do processo de reconciliação que corresponde ao recurso de sincronização.
status.source.gitStatus.repo O URL do repositório Git que está sendo buscado.
status.source.gitStatus.revision A revisão do Git (tag, confirmação ou hash) que está sendo buscada.
status.source.gitStatus.branch A ramificação do Git do repositório que está sendo buscado.
status.source.gitStatus.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração com que você está sincronizando.
status.source.ociStatus.image O URL da imagem OCI que está sendo buscada.
status.source.ociStatus.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração com que você está sincronizando.
status.source.helmStatus.repo O URL do repositório do helm está sendo buscado.
status.source.helmStatus.version A versão do gráfico do capacete sendo buscada.
status.source.helmStatus.chart O nome do gráfico do Helm que está sendo buscado.
status.source.commit O hash da confirmação ou resumo mais recente buscado no URL de origem.
status.source.errors Uma lista de todos os erros que ocorreram durante a leitura do repositório.
status.rendering.gitStatus.repo O URL do repositório Git que está sendo renderizado.
status.rendering.gitStatus.revision A revisão do Git (tag, confirmação ou hash) que está sendo buscada.
status.rendering.gitStatus.branch A ramificação do Git do repositório que está sendo buscado.
status.rendering.gitStatus.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração com que você está sincronizando.
status.rendering.ociStatus.image É o URL da imagem OCI que está sendo renderizada.
status.rendering.ociStatus.dir O caminho absoluto na imagem OCI para o diretório raiz que contém a configuração que você está renderizando.
status.rendering.helmStatus.repo O URL do repositório do helm está sendo renderizado.
status.rendering.helmStatus.version A versão do gráfico de helm em renderização.
status.rendering.helmStatus.chart O nome do gráfico do Helm que está sendo renderizado.
status.rendering.commit O hash da confirmação ou resumo mais recente renderizado. Esse valor é atualizado mesmo quando uma confirmação ou resumo é sincronizado apenas parcialmente devido a um erro.
status.rendering.errors Uma lista de todos os erros que ocorreram ao aplicar os recursos da alteração indicada por status.rendering.commit.
status.sync.gitStatus.repo O URL do repositório Git que está sendo sincronizado.
status.sync.gitStatus.revision A revisão do Git (tag, confirmação ou hash) que está sendo buscada.
status.sync.gitStatus.branch A ramificação do Git do repositório que está sendo buscado.
status.sync.gitStatus.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração com que você está sincronizando.
status.sync.ociStatus.image O URL da imagem OCI que está sendo sincronizado.
status.sync.ociStatus.dir O caminho absoluto no repositório Git para o diretório raiz que contém a configuração com que você está sincronizando.
status.sync.helmStatus.repo O URL do repositório do helm está sendo sincronizado.
status.sync.helmStatus.version A versão do gráfico do capacete sendo sincronizada.
status.sync.helmStatus.chart O nome do gráfico do Helm que está sendo sincronizado.
status.sync.commit O hash da confirmação ou resumo mais recente que foi sincronizado com o cluster. Esse valor é atualizado mesmo quando uma confirmação ou resumo é sincronizado apenas parcialmente devido a um erro.
status.sync.errors Uma lista de todos os erros que ocorreram ao aplicar os recursos da alteração indicada por status.sync.commit.
status.conditions As últimas observações disponíveis do estado atual do RootSync.

1 Se você criou um arquivo de configuração RootSync após a instalação com o console do Google Cloud ou a CLI do Google Cloud, poderá substituir esse campo. Para conferir uma lista completa, consulte Campos editáveis.

Campos ResourceGroup

Campos de especificação e status

Chave Descrição
spec.resources A lista de identificadores (grupo, tipo, namespace, nome) para recursos aplicados ao cluster do repositório Git especificado em uma resposta automática RepoSync ou RootSync. Opcional.
Cada item da lista contém quatro campos: group, kind, namespace e name.

Campos de status

Chave Descrição
status.observedGeneration A geração (metadata.generation) da especificação de um recurso RootSync ou RepoSync que foi observado pela última vez e executado pelo controlador ResourceGroup. Esse valor pode ser comparado com metadata.generation, que é um número inteiro e atualizado na mutação de especificações pelo servidor da API.
status.conditions As condições observadas mais recentes do ResourceGroup atual. As condições têm dois tipos diferentes: Reconciling e Stalled. Quando a condição do tipo Reconciling é verdadeira, isso significa que o ResourceGroup atual está na reconciliação. Quando a condição do tipo Stalled é verdadeira, significa que a reconciliação está parada. Quando ambos são falsos, isso significa que o ResourceGroup atual é reconciliado e o status está atualizado.
status.resourceStatuses A lista de status dos recursos incluídos em ".spec.resources". Cada item contém o identificador (grupo, tipo, namespace ou nome) e o status de um recurso. O status é um dos seguintes: InProgress, Current, Failed, Terminating, NotFound ou Unknown.

Campos editáveis

Se você instalou o Config Sync usando o console do Google Cloud ou a Google Cloud CLI, é possível criar e editar um arquivo de configuração RootSync.

Se você criar esse arquivo, poderá adicionar os campos da tabela a seguir ao objeto RootSync. O Config Sync reverte automaticamente as alterações em qualquer outro campo de volta aos valores definidos quando você configurou o Config Sync pela última vez no console do Google Cloud ou na Google Cloud CLI.

Chave Descrição
spec.git.noSSLVerify noSSLVerify especifica se a verificação do certificado SSL será ativada ou desativada. Padrão: false.
Se noSSLVerify for definido como true, vai instruir o Git a pular a verificação do certificado SSL.
spec.git.caCertSecretRef.name O nome do secret que contém o certificado da autoridade de certificação (CA). Se este campo for preenchido, o servidor Git precisará usar um certificado emitido por essa CA. O certificado de CA precisa ser armazenado no secret em uma chave chamada "cert".
spec.override.resources A lista de solicitações de recursos do contêiner e substituições de limite. Opcional.
Cada item da lista contém três campos:
  • containerName: este campo pode ser git-sync, oci-sync, hydration-controller, ou reconciler.
  • cpuRequest (opcional)
  • cpuLimit (opcional)
  • memoryRequest (opcional)
  • memoryLimit (opcional)

Quando um valor de substituição para um limite ou uma solicitação de recurso não é fornecido, o valor padrão do recurso para o limite ou a solicitação é usado.
spec.override.gitSyncDepth gitSyncDepth permite substituir o número de confirmações do Git a serem buscadas.
Precisa ser menor que 0.
O Config Sync fará um clone completo se esse campo for 0 e um clone superficial se ele for maior que 0.
Se esse campo não for fornecido, o Config Sync o configurará automaticamente.
spec.override.statusMode statusMode permite ativar ou desativar a captura do status no nível do recurso.
O padrão é enabled.
Para desativar a captura do status no nível do recurso, defina esse campo como disabled.
spec.override.reconcileTimeout reconcileTimeout permite substituir o limite de tempo para aguardar que os recursos em um grupo de aplicação sejam reconciliados antes de desistir. Todos os recursos em uma confirmação podem estar em vários grupos de aplicação com base nas dependências.
O tempo limite padrão é 5m.
Use strings para especificar o valor deste campo, por exemplo, 30s e 5m.
spec.override.enableShellInRendering enableShellInRendering especifica se o acesso ao shell será ativado ou desativado no processo de renderização. As bases remotas do Kustomize precisam de acesso ao shell. Definir esse campo como true permite o acesso ao shell no processo de renderização e permite extrair bases remotas de repositórios públicos.
O padrão é false.

Exemplos de respostas automáticas

As seções a seguir mostram exemplos de respostas automáticas de RootSync e RepoSync.

Resposta automática do RootSync

O exemplo a seguir mostra um objeto RootSync.

# root-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
  name: root-sync
  namespace: config-management-system
spec:
  sourceType: git
  sourceFormat: unstructured
  git:
    repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    branch: init
    dir: config-sync-quickstart/multirepo/root
    auth: none
    period: 30s

Resposta automática do RepoSync

O exemplo a seguir mostra um objeto RepoSync.

# repo-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RepoSync
metadata:
  name: repo-sync
  namespace: gamestore
spec:
  sourceType: git
  sourceFormat: unstructured
  git:
    repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    branch: init
    dir: config-sync-quickstart/multirepo/root
    auth: none
    period: 30s

A seguir