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

Nesta página, explicamos os diferentes campos que podem ser usados para configurar o Config Sync com a flag --config no comando apply da CLI do Google Cloud e a flag --fleet-default-member-config no comando enable na faixa de lançamento beta. Agora, esse esquema de campo não é recomendado 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 para o Config Management

Chave Descrição
spec.version A versão do Config Management. Se você estiver configurando o Config Management para um cluster, a versão padrão será a versão atual da instalação do Config Management no cluster em questão. 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 é 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 ou ClusterSelector do Config Sync, 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 pelo ClusterSelector.
spec.upgrades (Visualização) A configuração de upgrade do Config Sync. O valor padrão e único aceito é 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, da imagem OCI ou do gráfico Helm que será usado 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 usar o campo spec.configSync.syncRev 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 Git (tag ou hash) ou ramificação para sincronizar. Este campo será ignorada se .spec.configSync.sourceType for definido como oci. Esse campo é opcional e o valor padrão é HEAD. Ao usar um hash, ele precisa ser 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 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 Descontinuado: se a Federação de identidade da carga de trabalho para o GKE estiver ativada, a conta de serviço Google Cloud 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 for necessário substituir um reconciliador de raiz ou namespace, use os campos rootsync ou reposync. 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 do 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 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