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

Esta página explica os diferentes campos que podem ser usados para configurar o Config Sync com a flag --config na Google Cloud CLI apply e a flag --fleet-default-member-config no enable na faixa de lançamento beta. O esquema desse campo foi descontinuado na faixa de lançamento alpha do comando enable em favor do novo esquema de API .

O formato do arquivo usado com essas flags da 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 comum do Config Management

Chave Descrição
spec.version A versão do Config Management. Se você estiver configurando Config Management para um cluster, a versão padrão será a versão atual da instalação do Config Management no cluster. Caso contrário, para configuração em toda a frota ou na ausência de uma instalação no cluster de destino, o padrão será a versão mais recente.

Configuração para o Config Sync

Chave Descrição
spec.cluster O nome do cluster usado pela anotação cluster-name-selector do Config Sync ou pelo ClusterSelector, para aplicar configurações apenas a um subconjunto de clusters. Defina esse campo se um nome diferente do nome de assinatura da frota do cluster for usado pela anotação cluster-name-selector do Config Sync ou ClusterSelector.
spec.upgrades (Visualização) A configuração de upgrade do Config Sync. O valor padrão e único compatível é manual.
spec.configSync.enabled Se true, instala e gerencia o Config Sync. Se false, desinstala qualquer Config Sync gerenciado anteriormente e ignora o restante da configuração .spec.configSync. 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 ou da imagem OCI que será usada 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. Este campo é opcional e o padrão é master. Recomendamos o uso do spec.configSync.syncRev campo para especificar um nome de ramificação. Se os dois campos forem usados, o campo 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 do Git (tag ou hash) ou ramificação para sincronizar. Este campo será ignorada se .spec.configSync.sourceType for definido como oci. Este campo é opcional e o valor padrão é HEAD. Ao usar um hash, 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.stopSyncing Se true, interrompe a sincronização de configurações para um único cluster. O padrão é false.
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 usada para anotar a conta de serviço do Kubernetes do controlador RootSync ou RepoSync. Google Cloud Esse campo só é usado quando spec.configSync.secretType é gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail Descontinuado: se a Federação de Identidade da Carga de Trabalho para GKE estiver ativada, Google Cloud a conta de serviço não será necessária para exportar métricas do Config Sync. Use uma conta de serviço do Kubernetes.
spec.configSync.sourceFormat Quando definido como unstructured, configura um repositório não hierárquico. Padrão: hierarchy.
spec.configSync.deploymentOverrides Uma lista de configurações de substituição de recursos para implantações do Config Sync. O campo se aplica apenas a implantações do Config Sync com contêineres que não são um reconciliador de raiz ou namespace, como reconciler-manager. Se você precisar substituir um reconciliador de raiz ou namespace use rootsync ou reposync fields em vez disso. Opcional.
spec.configSync.deploymentOverrides.name O nome da implantação do Config Sync a ser substituída. O valor não pode ficar vazio.
spec.configSync.deploymentOverrides.namespace O namespace da implantação do Config Sync a ser substituída. O valor não pode ficar vazio.
spec.configSync.deploymentOverrides.containers Uma lista de configurações de substituição para solicitações e limites de contêineres do Config Sync Opcional.
spec.configSync.deploymentOverrides.containers.name O nome do contêiner do Config Sync a ser substituído. O valor não pode ficar vazio.
spec.configSync.deploymentOverrides.containers.cpuRequest A solicitação de CPU para o contêiner. Use unidades de recursos de CPU no Kubernetes. Opcional.
spec.configSync.deploymentOverrides.containers.cpuLimit O limite de CPU para o contêiner. Use unidades de recursos de CPU no Kubernetes. Opcional.
spec.configSync.deploymentOverrides.containers.memoryRequest A solicitação de memória para o contêiner. Use unidades de recursos de memória no Kubernetes. Opcional.
spec.configSync.deploymentOverrides.containers.memoryLimit O limite de memória para o contêiner. Use unidades de recursos de memória no Kubernetes. Opcional.

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 seu servidor proxy e o host do Git é segura.

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

Exemplo de especificação do gcloud apply com substituições de recursos de implantação

Se você quiser personalizar as solicitações e os limites de recursos do Config Sync, adicione o campo deploymentOverrides na especificação de aplicação. Por exemplo, o YAML a seguir substitui os limites de CPU e memória do contêiner reconciler-manager:

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    deploymentOverrides:
    - name: reconciler-manager
      namespace: config-management-system
      containers:
      - name: reconciler-manager
        cpuRequest: 50m
        cpuLimit: 100m
        memoryRequest: 256Mi
        memoryLimit: 512Mi