Esta página explica como configurar a sincronização de configuração através de comandos kubectl depois de instalar a sincronização de configuração através da consola Google Cloud ou da CLI Google Cloud.
Embora possa fazer muitas alterações de configuração através da consola ou da CLI, tem de usar comandos kubectl para substituir algumas predefinições do Config Sync, controlar a validação do certificado SSL e usar uma autoridade de certificação.
Crie e edite o ficheiro de configuração do RootSync
Para configurar o Config Sync através de comandos kubectl, edita um objeto RootSync criando um ficheiro YAML.
Quando instala o Config Sync através da Google Cloud consola ou da
CLI Google Cloud, o Config Sync cria automaticamente um objeto RootSync denominado
root-sync. Este objeto contém as informações de configuração mais recentes para o Config Sync. Sempre que faz uma alteração na Google Cloud consola ou na
CLI do Google Cloud, o root-sync é atualizado.
Saiba mais sobre os campos que pode editar através do kubectl
Pode fazer alterações avançadas a root-sync através de comandos kubectl para os campos não suportados na consola Google Cloud ou na CLI do Google Cloud. Se quiser criar e, em seguida, atualizar objetos RootSync ou RepoSync diretamente através de comandos kubectl, consulte os campos RootSync e RepoSync.
Antes de fazer alterações ao ficheiro YAML que criar na secção seguinte, familiarize-se com a tabela seguinte. Esta tabela apresenta os campos que pode editar e adicionar. Se editar campos não indicados nesta tabela, a sincronização de configuração reverte automaticamente as alterações para os valores que definiu quando configurou a sincronização de configuração pela última vez na Google Cloud consola ou na CLI do Google Cloud.
| Chave | Descrição |
|---|---|
spec.helm |
Todos os campos para a configuração do repositório Helm. |
spec.override |
Todos os campos para substituir as configurações predefinidas. |
spec.git.noSSLVerify |
Especifica se a validação do certificado SSL para o Git deve ser ativada ou desativada. A predefinição é false.
|
spec.git.caCertSecretRef.name |
O nome do segredo que contém o certificado da autoridade de certificação (CA) para um repositório Git. |
spec.oci.caCertSecretRef.name |
O nome do segredo que contém o certificado da autoridade de certificação (CA) para um repositório OCI. |
Crie o ficheiro
Para criar e editar um ficheiro de configuração para root-sync, conclua os
seguintes passos:
Para se certificar de que está a obter as informações de configuração para o cluster correto, configure o acesso à linha de comandos:
kubectlgcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_IDSubstitua o seguinte:
CLUSTER_NAME: o nome do cluster que tem a configuração do Config Sync que quer alterarZONE: a zona na qual criou o clusterPROJECT_ID: o ID do seu projeto
Copie as informações de configuração do objeto RootSync que o Config Sync criou para um ficheiro YAML:
kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yamlSubstitua
FILE_NAMEpor um nome para o ficheiro de configuração.Abra o ficheiro YAML que criou e faça as alterações de configuração necessárias. Por exemplo, para substituir o limite de memória do contentor
git-sync, adicione os seguintes campos a negrito:apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omittedAplique as alterações ao ficheiro YAML:
kubectl apply -f FILE_NAME.yamlPara verificar se o Config Sync aplicou as suas alterações, veja o objeto RootSync:
kubectl describe rootsync root-sync -n config-management-systemPara verificar se as alterações não introduziram erros, use o comando
nomos status:nomos status
Configure a autoridade de certificação
Para servidores configurados com certificados de uma autoridade de certificação (AC) que ainda não seja fidedigna, o Config Sync pode ser configurado para usar um certificado da AC para validar as ligações HTTPS ao servidor. Isto é suportado para servidores Git, Helm ou OCI. O certificado da AC tem de incluir certificados SSL completos (raiz/intermédio/folha).
Se o seu servidor já estiver a usar uma AC fidedigna ou não estiver a estabelecer ligação através de HTTPS,
pode ignorar este passo e deixar caCertSecretRef não definido.
RootSync
Obtenha o certificado da CA que foi usado para emitir o certificado para o seu servidor Git e guarde-o num ficheiro.
Para objetos
RootSync, o Secret tem de ser criado no espaço de nomesconfig-management-system. Por exemplo:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILEQuando configurar o objeto
RootSync, defina o valor do campocaCertSecretRef.nameno objetoRootSyncpara ROOT_CA_CERT_SECRET_NAME.
RepoSync
Obtenha o certificado da CA que foi usado para emitir o certificado para o seu servidor Git e guarde-o num ficheiro.
Para objetos
RepoSync, o segredo tem de ser criado no mesmo espaço de nomes que o RepoSync. Por exemplo:kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILEQuando configurar o
RepoSync, defina o valor do campocaCertSecretRef.nameno objetoRepoSynccomo NAMESPACE_CA_CERT_SECRET_NAME.
Remova o objeto RootSync
Para eliminar root-sync, execute o seguinte comando:
kubectl delete -f FILE_NAME
Substitua FILE_NAME pelo nome do ficheiro de configuração do RootSync. Por exemplo, root-sync.yaml.
A eliminação de um objeto RootSync ou RepoSync não limpa as anotações e as etiquetas do Config Sync. Para limpar todos os recursos geridos, sincronize a partir de um diretório Git vazio.
O que se segue?
- Saiba mais sobre os campos RootSync e RepoSync.
- Descubra como monitorizar objetos RootSync e RepoSync.