Campos de especificação de aplicação do gcloud

Nesta página, explicamos os diferentes campos que podem ser definidos no arquivo de configuração do Config Sync. Use esse arquivo ao configurar componentes do Config Sync com a Google Cloud CLI. O comando da CLI gcloud que você usa para aplicar o arquivo de configuração também tem documentação de referência.

Esses comandos também podem configurar o Policy Controller, mas é recomendável usar os comandos Policy Controller gcloud.

O formato do arquivo usado com a CLI gcloud é semelhante ao formato do objeto ConfigManagement. No entanto, os formatos são diferentes e os dois não são intercambiáveis.

Configuração para o Config Sync

Chave Descrição
spec.upgrades (Prévia) A configuração de upgrade do Config Sync. Se definida como auto, a versão do Config Sync será atualizada automaticamente. Para mais informações sobre como os upgrades automáticos funcionam, consulte Fazer upgrade do Config Sync. Defina como manual para fazer upgrade manual da versão do Config Sync. O valor padrão é manual. Essa sinalização é compatível apenas com clusters do GKE no Google Cloud.
spec.configSync.enabled Se true, ativa o Config Sync. Se false, desativa o Config Sync. Obrigatório para a CLI gcloud versão 429.0.0 e anteriores. Opcional para a CLI gcloud versão 430.0.0 e posterior. Padrão: true
spec.configSync.sourceType O tipo de origem da sincronização do Config Sync. Aceita git ou oci. Padrão: git.
spec.configSync.syncRepo O URL do repositório Git, a imagem OCI ou o gráfico Helm para usar como fonte da verdade. É possível omitir esse campo se você não tiver um repositório preparado.
spec.configSync.syncBranch A ramificação do repositório com que sincronizar. Este campo será ignorada se .spec.configSync.sourceType for definido como oci. Esse campo é opcional, e o padrão é master. A partir da versão 1.17.0 do Config Sync, é recomendável usar o campo spec.configSync.syncRev para especificar um nome de ramificação para simplificar. Se os campos spec.configSync.syncRev e spec.configSync.syncBranch forem especificados, spec.configSync.syncRev terá precedência sobre spec.configSync.syncBranch.
spec.configSync.policyDir O caminho no repositório Git ou na imagem OCI 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.configSync.syncWait Período em segundos entre sincronizações consecutivas. Padrão: 15.
spec.configSync.syncRev Revisão Git (tag ou hash) para sincronização. Este campo será ignorada se .spec.configSync.sourceType for definido como oci. Esse campo é opcional e o valor padrão é HEAD. A partir da versão 1.17.0 do Config Sync, também é possível especificar um nome de ramificação no campo spec.configSync.syncRev. Ao usar um hash na versão 1.17.0 ou mais recente, ele precisa ser um hash completo, e não uma forma abreviada.
spec.configSync.preventDrift Se true, ativa o webhook de admissão do Config Sync para evitar desvios rejeitando as alterações conflitantes que estão sendo enviadas para clusters ativos. Padrão: false O Config Sync sempre corrige desvios, independentemente do valor desse campo.
spec.configSync.secretType O tipo de Secret configurado para acessar o .spec.configSync.syncRepo. Se você tiver selecionado git como o tipo de origem, o valor precisará ser ssh, cookiefile, gcenode, gcpserviceaccount, token ou none. Se você tiver selecionado oci como o tipo de origem, o valor precisará ser gcenode, gcpserviceaccount ou none. A validação desse campo diferencia maiúsculas de minúsculas. Obrigatório.
spec.configSync.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.configSync.secretType é gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail O e-mail da conta de serviço do Google Cloud (GSA) usado para exportar as métricas do Config Sync para o Cloud Monitoring. A GSA precisa ter o papel do IAM de gravador de métricas do Monitoring (roles/monitoring.metricWriter). A conta de serviço do Kubernetes default no namespace config-management-monitoring precisa estar vinculada ao GSA.
spec.configSync.sourceFormat Quando definido como unstructured, configura um repositório não hierárquico. Padrão: hierarchy.

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 HTTPS, use o URI do proxy para configurar o Config Sync para se comunicar com o host Git. O proxy só é compatível com o tipo de autorização cookiefile, none ou token.

Chave Descrição
spec.configSync.httpsProxy Define uma variável de ambiente HTTPS_PROXY usada para acessar o repositório Git. Por exemplo, https://proxy.internal.business.co:443.
O proxy HTTPS só aceita URLs https ou sem adornos. Os URLs que contêm http:// são rejeitados.
Se você estiver usando um URL não adornado, verifique se a comunicação entre o servidor proxy e o host do Git é segura.

Configuração do Policy Controller

Chave Descrição
spec.policyController.enabled Se true, ativa o Policy Controller. O padrão é false.
spec.policyController.templateLibraryInstalled Se true, instala uma biblioteca de modelos de restrição para tipos de política comuns. O padrão é true.
spec.policyController.referentialRulesEnabled Se true, ativa o suporte para restrições referenciais. Entenda as advertências sobre consistência posterior. O padrão é false.
spec.policyController.auditIntervalSeconds Período em segundos entre auditorias consecutivas de violações de restrições. Defina como 0 para desativar a auditoria. Padrão: 60.
spec.policyController.logDeniesEnabled Se true, registra todas as negações e falhas de simulação. O padrão é false.
spec.policyController.mutationEnabled Se true, permite compatibilidade com mutações O padrão é false.
spec.policyController.exemptableNamespaces Uma lista de namespaces a serem removidos da aplicação do webhook de admissão do Policy Controller. Todas as violações ainda serão informadas na auditoria. O padrão é uma lista vazia.
spec.policyController.monitoring.backends Uma lista de back-ends de monitoramento para o Policy Controller exportar métricas. Padrão: [cloudmonitoring, prometheus].

Configuração do controlador de hierarquia

Chave Descrição
spec.hierarchyController.enabled Se true, ativa o controlador de hierarquia. O padrão é false.
spec.hierarchyController.enableHierarchicalResourceQuota Se true, ativa cotas de recursos hierárquicas. O padrão é false.
spec.hierarchyController.enablePodTreeLabels Se true, ativa a observação hierárquica de cargas de trabalho. O padrão é false.

Exemplo de especificação do gcloud apply

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root
  hierarchyController:
    enabled: false