Esta página explica como configurar mais do que uma fonte de dados de âmbito de raiz e espaço de nomes criando objetos RootSync e RepoSync.
Ter uma origem de verdade raiz permite-lhe sincronizar as configurações com âmbito de cluster e com âmbito de espaço de nomes. Uma origem de verdade raiz pode usar credenciais ao nível do administrador para aplicar políticas em espaços de nomes de aplicações e substituir alterações locais que se afastam do estado que declarou nas suas configurações. Normalmente, um administrador central rege as origens de verdade principais.
As origens de verdade com âmbito do espaço de nomes são opcionais e podem conter configurações com âmbito do espaço de nomes sincronizadas com um espaço de nomes específico em todos os clusters. Pode delegar a configuração e o controlo de uma fonte de verdade com âmbito de espaço de nomes a utilizadores não administrativos. Embora a sincronização de configuração detete automaticamente as alterações da fonte de informação fidedigna, pode adicionar uma camada adicional de deteção de desvio adicionando um webhook de admissão a uma fonte de informação fidedigna com âmbito de espaço de nomes. Para ver detalhes sobre como o fazer, consulte o artigo Evite a deriva de configuração.
Antes de começar
- Crie ou certifique-se de que tem acesso a uma fonte de verdade não estruturada que pode conter as configurações com as quais o Config Sync é sincronizado. O Config Sync suporta repositórios Git, gráficos Helm e imagens OCI como fonte de informações fidedignas. As fontes de verdade com âmbito de espaço de nomes têm de usar o formato não estruturado.
- Crie ou certifique-se de que tem acesso a um cluster numa plataforma e versão suportadas do Google Kubernetes Engine e que cumpre os requisitos do Config Sync.
Crie uma RoleBinding
É necessário um RoleBinding para conceder autorizações ao RepoSync
que
criar neste guia. Para criar o RoleBinding, conclua os seguintes passos:
Na origem raiz, declare uma configuração
RoleBinding
que conceda à conta de serviçoSERVICE_ACCOUNT_NAME
autorização para gerir objetos no espaço de nomes. O Config Sync cria automaticamente a conta de serviçoSERVICE_ACCOUNT_NAME
quando a configuração do RepoSync é sincronizada com o cluster.Um
RoleBinding
pode referenciar umRole
no mesmo espaço de nomes. Em alternativa, umRoleBinding
pode fazer referência a umClusterRole
e associar esseClusterRole
ao espaço de nomes doRoleBinding
. Embora deva seguir o princípio do menor privilégio concedendo autorizações detalhadas a umRole
definido pelo utilizador, pode definir umClusterRole
ou usar funções orientadas para o utilizador, e referenciar o mesmoClusterRole
em váriosRoleBindings
em diferentes espaços de nomes.Default ClusterRoles
Guarde o manifesto
RoleBinding
que faz referência a umClusterRole
predefinido, por exemplo,admin
ouedit
, comoFILENAME
:kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ClusterRole name: CLUSTERROLE_NAME apiGroup: rbac.authorization.k8s.io
Substitua o seguinte:
FILENAME
: o nome do manifesto RoleBinding.NAMESPACE
: adicione o nome do seu espaço de nomes.SERVICE_ACCOUNT_NAME
: adicione o nome da conta de serviço do reconciliador. Se o nome do RepoSync forrepo-sync
,SERVICE_ACCOUNT_NAME
éns-reconciler-NAMESPACE
. Caso contrário, éns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Por exemplo, se o nome do RepoSync forprod
, o nome doSERVICE_ACCOUNT_NAME
serians-reconciler-NAMESPACE-prod-4
. O número inteiro4
é usado comoprod
contém 4 carateres.CLUSTERROLE_NAME
: adicione o nome do ClusterRole predefinido.
Funções definidas pelo utilizador
Pode declarar um
ClusterRole
ou umRole
concedendo uma lista de autorizações a cada recurso gerido pelo objetoRepoSync
. Isto permite autorizações detalhadas. Consulte a secção Referir-se a recursos para ver mais detalhes.Por exemplo, o seguinte
ClusterRole
ouRole
concede autorizações para gerir objetosDeployment
eServiceAccount
:# ROOT_REPO/namespaces/NAMESPACE/sync-role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ROLE_KIND metadata: namespace: NAMESPACE # only set this field for a 'Role' name: RECONCILER_ROLE rules: # Update 'apiGroups' and 'resources' to reference actual resources managed by 'RepoSync'. - apiGroups: ["apps"] resources: ["deployments"] verbs: ["*"] - apiGroups: [""] resources: ["serviceaccounts"] verbs: ["*"]
Guarde o manifesto
RoleBinding
que faz referência aoClusterRole
ouRole
comoFILENAME
:# ROOT_REPO/namespaces/NAMESPACE/FILENAME.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ROLE_KIND name: RECONCILER_ROLE apiGroup: rbac.authorization.k8s.io
Substitua o seguinte:
FILENAME
: o nome do manifesto RoleBinding.ROLE_KIND
: definaClusterRole
ouRole
.NAMESPACE
: adicione o nome do seu espaço de nomes.SERVICE_ACCOUNT_NAME
: adicione o nome da conta de serviço do reconciliador. Se o nome do RepoSync forrepo-sync
,SERVICE_ACCOUNT_NAME
éns-reconciler-NAMESPACE
. Caso contrário, éns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Por exemplo, se o nome do RepoSync forprod
, o nome doSERVICE_ACCOUNT_NAME
serians-reconciler-NAMESPACE-prod-4
. O número inteiro4
é usado comoprod
contém 4 carateres.RECONCILER_ROLE
: adicione o nome doClusterRole
ouRole
.
Aplique o RoleBinding:
kubectl apply -f FILENAME
Limitações
NamespaceSelectors
(incluindo anotações que apontam para seletores) só funcionam numa fonte de informação principal.- Se instalou o Config Sync através da Google Cloud consola ou da CLI do Google Cloud, o Config Sync criou automaticamente um objeto RootSync denominado
root-sync
. Por este motivo, não pode atribuir o nomeroot-sync
a nenhum dos seus objetos RootSync.
Escolha o seu método de configuração preferido
Escolha entre um dos dois métodos para configurar as suas origens:
Controlar origens numa fonte de informações fidedignas raiz. Este método centraliza toda a configuração de uma fonte de dados fidedignos noutra fonte de dados fidedignos, o que permite a um administrador central ter controlo total da configuração.
Controle as origens com a API Kubernetes. Use este método se quiser delegar o controlo da sua fonte de dados fidedignos a diferentes proprietários.
Controle as fontes numa origem de informação fidedigna principal
Para controlar origens com uma origem raiz, precisa de uma RoleBinding para autorizar o acesso. Se não tiver nenhum, consulte a secção Crie uma RoleBinding.
Controle as origens principais numa origem principal de informação fidedigna
O Config Sync suporta a sincronização a partir de mais de uma fonte de informação fidedigna. O administrador central pode usar uma fonte de informações fidedignas raiz para gerir todas as outras fontes. Uma vez que o Config Sync gere os objetos RootSync, este método impede quaisquer alterações locais às configurações RootSync no cluster.
Para usar este método, conclua as seguintes tarefas:
Guarde um dos seguintes manifestos como
root-sync.yaml
. Use a versão do manifesto que corresponde ao tipo de origem das suas configurações.Git
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: git sourceFormat: ROOT_FORMAT git: repo: ROOT_REPOSITORY revision: ROOT_REVISION branch: ROOT_BRANCH dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME noSSLVerify: ROOT_NO_SSL_VERIFY caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_REPOSITORY
: adicione o URL do repositório Git a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.ROOT_REVISION
: adicione a revisão do Git (etiqueta ou hash) ou o ramo a partir do qual sincronizar. Este campo é opcional e o valor predefinido éHEAD
. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.ROOT_BRANCH
: adicione a ramificação do repositório a partir da qual quer sincronizar. Este campo é opcional e o valor predefinido émaster
. Recomendamos que use o camporevision
para especificar um nome de ramificação para simplificar. Se o camporevision
e o campobranch
forem especificados,revision
tem prioridade sobrebranch
.ROOT_DIRECTORY
: adicione o caminho no repositório Git ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) do repositório.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãossh
: Use um par de chaves SSHcookiefile
: use umcookiefile
token
: usar um tokengcpserviceaccount
: use uma conta de serviço Google para aceder a um Cloud Source Repositories.gcenode
: use uma conta de serviço Google para aceder a um Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.
Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceder acesso só de leitura do Config Sync ao Git.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, tem de adicionar a chave pública do segredo ao fornecedor do Git. Este campo é opcional.ROOT_NO_SSL_VERIFY
: para desativar a validação do certificado SSL, defina este campo comotrue
. O valor predefinido éfalse
.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de Git tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa o Git como origem.OCI
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: oci sourceFormat: ROOT_FORMAT oci: image: ROOT_IMAGE dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_IMAGE
: o URL da imagem OCI a usar como repositório raiz, por exemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
emPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
ROOT_DIRECTORY
: adicione o caminho no repositório ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) do repositório.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de OCI tem de estar a usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.
Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa uma imagem OCI como origem.Leme
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: helm sourceFormat: ROOT_FORMAT helm: repo: ROOT_HELM_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_HELM_REPOSITORY
: o URL do repositório Helm a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.HELM_CHART_NAME
: adicione o nome do seu gráfico Helm. Este campo é obrigatório.HELM_CHART_VERSION
: a versão do seu gráfico. Este campo é opcional. Se não for especificado nenhum valor, é usada a versão mais recente.HELM_RELEASE_NAME
: o nome do lançamento do Helm. Este campo é opcional.HELM_RELEASE_NAMESPACE
: o espaço de nomes de destino para uma versão. Só define um espaço de nomes para recursos que contenhamnamespace: {{ .Release.Namespace }}
nos respetivos modelos. Este campo é opcional. Se não for especificado nenhum valor, é usado o espaço de nomes predefinidoconfig-management-system
.HELM_INCLUDE_CRDS
: defina comotrue
se quiser que o modelo Helm também gere uma CustomResourceDefinition. Este campo é opcional. Se não for especificado nenhum valor, a predefinição éfalse
e não é gerado nenhum CRD.VALUE
: valores a usar em vez dos valores predefinidos que acompanham o gráfico Helm. Formate este campo da mesma forma que o ficheiro values.yaml do gráfico Helm. Este campo é opcional.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãotoken
: use um nome de utilizador e uma palavra-passe para aceder a um repositório Helm privado.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: adicione o nome do seu segredo setoken
for oROOT_AUTH_TYPE
. Este campo é opcional.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor do Helm tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.
Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa o Helm como origem.Confirme as alterações à origem principal de dados fidedignos:
git add . git commit -m 'Setting up a new root source of truth.' git push
Pode repetir os passos acima se precisar de configurar várias origens principais. Também pode armazenar configurações de vários objetos RootSync numa origem principal de referência sincronizada por outro objeto RootSync para gerir vários objetos RootSync de forma centralizada no estilo GitOps.
Controle objetos com âmbito de espaço de nomes numa origem de verdade raiz
As fontes de informação fidedigna com âmbito do espaço de nomes podem ser geridas por uma fonte de informação fidedigna raiz. Uma vez que as origens com âmbito do espaço de nomes são geridas pela sincronização de configuração, este método impede quaisquer alterações locais às definições de origens com âmbito do espaço de nomes.
Para usar este método, conclua as seguintes tarefas:
Na origem de dados principal, declare uma configuração
namespace
:# ROOT_SOURCE/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Substitua
NAMESPACE
por um nome para o seu espaço de nomes.Na origem de informação fidedigna raiz, crie um dos seguintes objetos
RepoSync
no mesmo espaço de nomes. Use o manifesto que corresponde ao tipo de origem para as suas configurações:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: adicione o URL do repositório Git a usar como repositório do espaço de nomes. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo, ohttps://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Se não introduzir um protocolo, o URL é tratado como um URL HTTPS. Este campo é obrigatório.NAMESPACE_REVISION
: adicione a revisão de Git (etiqueta ou hash) ou a ramificação a partir da qual sincronizar. Este campo é opcional e o valor predefinido éHEAD
. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.NAMESPACE_BRANCH
: adicione a ramificação do repositório a partir da qual quer sincronizar. Este campo é opcional e o valor predefinido émaster
. Recomendamos que use o camporevision
para especificar um nome de ramificação para simplificar. Se o camporevision
e o campobranch
forem especificados,revision
tem prioridade sobrebranch
.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãossh
: Use um par de chaves SSHcookiefile
: use umcookiefile
token
: usar um tokengcpserviceaccount
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories.gcenode
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceder acesso só de leitura do Config Sync ao Git.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuNAMESPACE_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome que pretende dar ao seu segredo. Este campo é opcional.NAMESPACE_NO_SSL_VERIFY
: para desativar a validação do certificado SSL, defina este campo comotrue
. O valor predefinido éfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de Git tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte o artigo Campos do RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_IMAGE
: o URL da imagem OCI a usar como origem do espaço de nomes, por exemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
noPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
NAMESPACE_DIRECTORY
: adicione o caminho na origem ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) da origem.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de OCI tem de estar a usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Leme
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: o URL do repositório Helm a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.HELM_CHART_NAME
: adicione o nome do seu gráfico Helm. Este campo é obrigatório.HELM_CHART_VERSION
: a versão do seu gráfico. Este campo é opcional. Se não for especificado nenhum valor, é usada a versão mais recente.HELM_RELEASE_NAME
: o nome do lançamento do Helm. Este campo é opcional.HELM_RELEASE_NAMESPACE
: o espaço de nomes de destino para uma versão. Só define um espaço de nomes para recursos que contenhamnamespace: {{ .Release.Namespace }}
nos respetivos modelos. Este campo é opcional. Se não for especificado nenhum valor, é usado o espaço de nomes predefinidoconfig-management-system
.HELM_INCLUDE_CRDS
: defina comotrue
se quiser que o modelo Helm também gere uma CustomResourceDefinition. Este campo é opcional. Se não for especificado nenhum valor, a predefinição éfalse
e não é gerado nenhum CRD.VALUE
: valores a usar em vez dos valores predefinidos que acompanham o gráfico Helm. Formate este campo da mesma forma que o ficheiro values.yaml do gráfico Helm. Este campo é opcional.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãotoken
: use um nome de utilizador e uma palavra-passe para aceder a um repositório Helm privado.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome do seu segredo setoken
for oROOT_AUTH_TYPE
. Este campo é opcional.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor do Helm tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Se estiver a usar
gcpserviceaccount
como tipo de autorização e não tiver a Workload Identity Federation para o GKE ativada, tem de criar uma associação de políticas do IAM entre a conta de serviço do Kubernetes para cada espaço de nomes e a conta de serviço Google. Consulte o artigo Conceda acesso ao Git para ver instruções sobre como criar esta associação.Confirme as alterações à origem principal de dados fidedignos:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Se necessário, crie um segredo com base no seu método de autenticação preferido. Se usou
none
como o seu tipo de autenticação, pode ignorar este passo.O Secret tem de cumprir os seguintes requisitos:
- Crie o segredo no mesmo espaço de nomes que o RepoSync.
- O nome do segredo tem de corresponder ao nome
spec.git.secretRef
que definiu emrepo-sync.yaml
. - Tem de adicionar a chave pública do segredo ao fornecedor do Git.
Para validar a configuração, use
kubectl get
num dos objetos na origem do espaço de nomes. Por exemplo:kubectl get rolebindings -n NAMESPACE
Pode repetir os passos acima se precisar de configurar mais do que uma origem com âmbito do espaço de nomes.
Controle origens com âmbito de espaço de nomes numa origem com âmbito de espaço de nomes
O Config Sync suporta a sincronização a partir de mais de uma origem de informação fidedigna com âmbito de espaço de nomes por espaço de nomes. As fontes de informação fidedigna com âmbito de espaço de nomes podem ser geridas numa fonte de informação fidedigna com âmbito de espaço de nomes no mesmo espaço de nomes.
Para usar este método, conclua as seguintes tarefas:
Na fonte de informação fidedigna com âmbito do espaço de nomes, crie um dos seguintes
RepoSync
objetos no mesmo espaço de nomes. Use o manifesto que corresponde ao tipo de origem para as suas configurações:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: adicione o URL do repositório Git a usar como repositório do espaço de nomes. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo, ohttps://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Se não introduzir um protocolo, o URL é tratado como um URL HTTPS. Este campo é obrigatório.NAMESPACE_REVISION
: adicione a revisão de Git (etiqueta ou hash) ou a ramificação a partir da qual sincronizar. Este campo é opcional e o valor predefinido éHEAD
. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.NAMESPACE_BRANCH
: adicione a ramificação do repositório a partir da qual quer sincronizar. Este campo é opcional e o valor predefinido émaster
. Recomendamos que use o camporevision
para especificar um nome de ramificação para simplificar. Se o camporevision
e o campobranch
forem especificados,revision
tem prioridade sobrebranch
.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãossh
: Use um par de chaves SSHcookiefile
: use umcookiefile
token
: usar um tokengcpserviceaccount
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories.gcenode
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceder acesso só de leitura do Config Sync ao Git.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuNAMESPACE_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome que pretende dar ao seu segredo. Este campo é opcional.NAMESPACE_NO_SSL_VERIFY
: para desativar a validação do certificado SSL, defina este campo comotrue
. O valor predefinido éfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de Git tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte o artigo Campos do RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_IMAGE
: o URL da imagem OCI a usar como origem do espaço de nomes, por exemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
noPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
NAMESPACE_DIRECTORY
: adicione o caminho na origem ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) da origem.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de OCI tem de estar a usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Leme
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: o URL do repositório Helm a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.HELM_CHART_NAME
: adicione o nome do seu gráfico Helm. Este campo é obrigatório.HELM_CHART_VERSION
: a versão do seu gráfico. Este campo é opcional. Se não for especificado nenhum valor, é usada a versão mais recente.HELM_RELEASE_NAME
: o nome do lançamento do Helm. Este campo é opcional.HELM_RELEASE_NAMESPACE
: o espaço de nomes de destino para uma versão. Só define um espaço de nomes para recursos que contenhamnamespace: {{ .Release.Namespace }}
nos respetivos modelos. Este campo é opcional. Se não for especificado nenhum valor, é usado o espaço de nomes predefinidoconfig-management-system
.HELM_INCLUDE_CRDS
: defina comotrue
se quiser que o modelo Helm também gere uma CustomResourceDefinition. Este campo é opcional. Se não for especificado nenhum valor, a predefinição éfalse
e não é gerado nenhum CRD.VALUE
: valores a usar em vez dos valores predefinidos que acompanham o gráfico Helm. Formate este campo da mesma forma que o ficheiro values.yaml do gráfico Helm. Este campo é opcional.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãotoken
: use um nome de utilizador e uma palavra-passe para aceder a um repositório Helm privado.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome do seu segredo setoken
for oROOT_AUTH_TYPE
. Este campo é opcional.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor do Helm tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Se estiver a usar
gcpserviceaccount
como tipo de autorização e não tiver a Workload Identity Federation para o GKE ativada, tem de criar uma associação de políticas do IAM entre a conta de serviço do Kubernetes para cada espaço de nomes e a conta de serviço Google. Consulte o artigo Conceda acesso ao Git para ver instruções sobre como criar esta associação.Confirme as alterações à origem principal de dados fidedignos:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Se necessário, crie um segredo com base no seu método de autenticação preferido. Se usou
none
como o seu tipo de autenticação, pode ignorar este passo.O Secret tem de cumprir os seguintes requisitos:
- Crie o segredo no mesmo espaço de nomes que o RepoSync.
- O nome do segredo tem de corresponder ao nome
spec.git.secretRef
que definiu emrepo-sync.yaml
. - Tem de adicionar a chave pública do segredo ao fornecedor do Git.
Para validar a configuração, use
kubectl get
num dos objetos na fonte de informação fidedigna com âmbito do espaço de nomes. Por exemplo:kubectl get rolebindings -n NAMESPACE
Pode repetir os passos acima se precisar de configurar mais de uma origem com âmbito do espaço de nomes.
Controle uma fonte de verdade com a API Kubernetes
Neste método, o administrador central delega a declaração de outros objetos RootSync
a outros administradores. Para objetos RepoSync
, o administrador central apenas declara o espaço de nomes na fonte prioritária raiz e delega a declaração do objeto RepoSync
ao operador da aplicação.
Controle mais do que uma fonte de informação fidedigna raiz
Outros administradores podem controlar uma origem de dados principal concluindo as seguintes tarefas:
Guarde um dos seguintes manifestos como
root-sync.yaml
. Use a versão do manifesto que corresponde ao tipo de origem das suas configurações.Git
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: git sourceFormat: ROOT_FORMAT git: repo: ROOT_REPOSITORY revision: ROOT_REVISION branch: ROOT_BRANCH dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME noSSLVerify: ROOT_NO_SSL_VERIFY caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_REPOSITORY
: adicione o URL do repositório Git a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.ROOT_REVISION
: adicione a revisão do Git (etiqueta ou hash) ou o ramo a partir do qual sincronizar. Este campo é opcional e o valor predefinido éHEAD
. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.ROOT_BRANCH
: adicione a ramificação do repositório a partir da qual quer sincronizar. Este campo é opcional e o valor predefinido émaster
. Recomendamos que use o camporevision
para especificar um nome de ramificação para simplificar. Se o camporevision
e o campobranch
forem especificados,revision
tem prioridade sobrebranch
.ROOT_DIRECTORY
: adicione o caminho no repositório Git ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) do repositório.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãossh
: Use um par de chaves SSHcookiefile
: use umcookiefile
token
: usar um tokengcpserviceaccount
: use uma conta de serviço Google para aceder a um Cloud Source Repositories.gcenode
: use uma conta de serviço Google para aceder a um Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.
Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceder acesso só de leitura do Config Sync ao Git.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, tem de adicionar a chave pública do segredo ao fornecedor do Git. Este campo é opcional.ROOT_NO_SSL_VERIFY
: para desativar a validação do certificado SSL, defina este campo comotrue
. O valor predefinido éfalse
.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de Git tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa o Git como origem.OCI
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: oci sourceFormat: ROOT_FORMAT oci: image: ROOT_IMAGE dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_IMAGE
: o URL da imagem OCI a usar como repositório raiz, por exemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
emPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
ROOT_DIRECTORY
: adicione o caminho no repositório ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) do repositório.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de OCI tem de estar a usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.
Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa uma imagem OCI como origem.Leme
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: helm sourceFormat: ROOT_FORMAT helm: repo: ROOT_HELM_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Substitua o seguinte:
ROOT_SYNC_NAME
: adicione o nome do objeto RootSync.ROOT_FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, uma vez que este formato permite organizar as configurações da forma mais conveniente para si.ROOT_HELM_REPOSITORY
: o URL do repositório Helm a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.HELM_CHART_NAME
: adicione o nome do seu gráfico Helm. Este campo é obrigatório.HELM_CHART_VERSION
: a versão do seu gráfico. Este campo é opcional. Se não for especificado nenhum valor, é usada a versão mais recente.HELM_RELEASE_NAME
: o nome do lançamento do Helm. Este campo é opcional.HELM_RELEASE_NAMESPACE
: o espaço de nomes de destino para uma versão. Só define um espaço de nomes para recursos que contenhamnamespace: {{ .Release.Namespace }}
nos respetivos modelos. Este campo é opcional. Se não for especificado nenhum valor, é usado o espaço de nomes predefinidoconfig-management-system
.HELM_INCLUDE_CRDS
: defina comotrue
se quiser que o modelo Helm também gere uma CustomResourceDefinition. Este campo é opcional. Se não for especificado nenhum valor, a predefinição éfalse
e não é gerado nenhum CRD.VALUE
: valores a usar em vez dos valores predefinidos que acompanham o gráfico Helm. Formate este campo da mesma forma que o ficheiro values.yaml do gráfico Helm. Este campo é opcional.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãotoken
: use um nome de utilizador e uma palavra-passe para aceder a um repositório Helm privado.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
ROOT_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: adicione o nome do seu segredo setoken
for oROOT_AUTH_TYPE
. Este campo é opcional.ROOT_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor do Helm tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.
Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Este manifesto cria um objeto
RootSync
que usa o Helm como origem.Aplique as alterações:
kubectl apply -f root-sync.yaml
Pode repetir os passos acima se precisar de configurar mais do que uma origem de dados principal.
Controle as fontes de verdade com âmbito do espaço de nomes
Tarefas de administrador central
O administrador central conclui as seguintes tarefas:
Na origem de informações reais raiz, declare uma configuração
namespace
para origens com âmbito do espaço de nomes.# ROOT_REPO/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Substitua
NAMESPACE
por um nome para o seu espaço de nomes.Na origem de dados principal, declare um
RoleBinding
para conceder autorizações aos operadores da aplicação. Use a prevenção de escalonamento de RBAC para garantir que o operador da aplicação não pode aplicar posteriormente uma associação de funções com permissões não concedidas por esta associação de funções.Para declarar o RoleBinding, crie o seguinte manifesto:
# ROOT_REPO/namespaces/NAMESPACE/operator-rolebinding.yaml kind: RoleBinding # Add RBAC escalation prevention apiVersion: rbac.authorization.k8s.io/v1 metadata: name: operator namespace: NAMESPACE subjects: - kind: User name: USERNAME apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: OPERATOR_ROLE apiGroup: rbac.authorization.k8s.io
Substitua o seguinte:
NAMESPACE
: adicione o espaço de nomes que criou na origem de informações verdadeiras raiz.USERNAME
: adicione o nome de utilizador do operador da aplicação.OPERATOR_ROLE
: como administrador central, pode definirOPERATOR_ROLE
para aplicar os tipos de configurações que podem ser sincronizados a partir da origem com âmbito do espaço de nomes. Pode escolher uma das seguintes funções:Um ClusterRole predefinido:
admin
edit
Para saber mais, consulte o artigo Funções viradas para o utilizador.
Um ClusterRole ou uma função definida pelo utilizador declarada na origem de verdade raiz. Esta função permite autorizações detalhadas.
Confirme as alterações à origem principal de dados fidedignos:
git add . git commit -m 'Setting up new namespace-scoped source of truth.' git push
Tarefas do operador de aplicações
O operador da aplicação pode controlar as origens com âmbito do espaço de nomes concluindo as seguintes tarefas:
Declare uma configuração
RoleBinding
que conceda autorização à conta de serviçoSERVICE_ACCOUNT_NAME
aprovisionada automaticamente para gerir objetos no espaço de nomes. O Config Sync cria automaticamente a conta de serviçoSERVICE_ACCOUNT_NAME
quando a configuraçãoRepoSync
é sincronizada com o cluster.Para declarar o RoleBinding, crie o seguinte manifesto:
# sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ClusterRole name: RECONCILER_ROLE apiGroup: rbac.authorization.k8s.io
Substitua o seguinte:
NAMESPACE
: adicione o espaço de nomes que criou na origem de informações verdadeiras raiz.SERVICE_ACCOUNT_NAME
: adicione o nome da conta de serviço do reconciliador. Se o nome do RepoSync forrepo-sync
,SERVICE_ACCOUNT_NAME
éns-reconciler-NAMESPACE
. Caso contrário, éns-reconciler-NAMESPACE-REPO_SYNC_NAME
.RECONCILER_ROLE
: como operador da aplicação, pode definirRECONCILER_ROLE
para aplicar que tipos de configuração podem ser sincronizados a partir da origem com âmbito do espaço de nomes. Só pode restringir ainda mais o conjunto de autorizações que o administrador central lhe concedeu. Como resultado, esta função não pode ser mais permissiva do que aOPERATOR_ROLE
que o administrador central declarou na secção anterior.
Aplique a configuração RoleBinding:
kubectl apply -f sync-rolebinding.yaml
Se necessário, crie um segredo com base no seu método de autenticação preferido. Se usou
none
como o seu tipo de autenticação, pode ignorar este passo.O segredo tem de cumprir os seguintes requisitos:
- Crie o segredo no mesmo espaço de nomes que o RepoSync.
- O nome do segredo tem de corresponder ao nome
spec.git.secretRef
que definiu emroot-sync.yaml
. - Tem de adicionar a chave pública do segredo ao fornecedor do Git.
Declare uma configuração de
RepoSync
:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: adicione o URL do repositório Git a usar como repositório do espaço de nomes. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo, ohttps://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Se não introduzir um protocolo, o URL é tratado como um URL HTTPS. Este campo é obrigatório.NAMESPACE_REVISION
: adicione a revisão de Git (etiqueta ou hash) ou a ramificação a partir da qual sincronizar. Este campo é opcional e o valor predefinido éHEAD
. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.NAMESPACE_BRANCH
: adicione a ramificação do repositório a partir da qual quer sincronizar. Este campo é opcional e o valor predefinido émaster
. Recomendamos que use o camporevision
para especificar um nome de ramificação para simplificar. Se o camporevision
e o campobranch
forem especificados,revision
tem prioridade sobrebranch
.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãossh
: Use um par de chaves SSHcookiefile
: use umcookiefile
token
: usar um tokengcpserviceaccount
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories.gcenode
: use uma conta de serviço Google para aceder a um repositório no Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceder acesso só de leitura do Config Sync ao Git.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuNAMESPACE_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome que pretende dar ao seu segredo. Este campo é opcional.NAMESPACE_NO_SSL_VERIFY
: para desativar a validação do certificado SSL, defina este campo comotrue
. O valor predefinido éfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de Git tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte o artigo Campos do RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_IMAGE
: o URL da imagem OCI a usar como origem do espaço de nomes, por exemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
noPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
NAMESPACE_DIRECTORY
: adicione o caminho na origem ao diretório de raiz que contém a configuração que quer sincronizar. Este campo é opcional e a predefinição é o diretório de raiz (/
) da origem.NAMESPACE_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor de OCI tem de estar a usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Leme
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Substitua o seguinte:
REPO_SYNC_NAME
: adicione o nome do objeto RepoSync. O nome deve ser exclusivo no espaço de nomes.NAMESPACE
: adicione o nome do seu espaço de nomes.NAMESPACE_REPOSITORY
: o URL do repositório Helm a usar como repositório raiz. Pode introduzir URLs através do protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa o protocolo HTTPS. Este campo é obrigatório.HELM_CHART_NAME
: adicione o nome do seu gráfico Helm. Este campo é obrigatório.HELM_CHART_VERSION
: a versão do seu gráfico. Este campo é opcional. Se não for especificado nenhum valor, é usada a versão mais recente.HELM_RELEASE_NAME
: o nome do lançamento do Helm. Este campo é opcional.HELM_RELEASE_NAMESPACE
: o espaço de nomes de destino para uma versão. Só define um espaço de nomes para recursos que contenhamnamespace: {{ .Release.Namespace }}
nos respetivos modelos. Este campo é opcional. Se não for especificado nenhum valor, é usado o espaço de nomes predefinidoconfig-management-system
.HELM_INCLUDE_CRDS
: defina comotrue
se quiser que o modelo Helm também gere uma CustomResourceDefinition. Este campo é opcional. Se não for especificado nenhum valor, a predefinição éfalse
e não é gerado nenhum CRD.VALUE
: valores a usar em vez dos valores predefinidos que acompanham o gráfico Helm. Formate este campo da mesma forma que o ficheiro values.yaml do gráfico Helm. Este campo é opcional.ROOT_AUTH_TYPE
: adicione um dos seguintes tipos de autenticação:none
: Não usar autenticaçãotoken
: use um nome de utilizador e uma palavra-passe para aceder a um repositório Helm privado.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
Este campo é obrigatório.
NAMESPACE_EMAIL
: se adicionougcpserviceaccount
como o seuROOT_AUTH_TYPE
, adicione o endereço de email da conta de serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: adicione o nome do seu segredo setoken
for oROOT_AUTH_TYPE
. Este campo é opcional.NAMESPACE_CA_CERT_SECRET_NAME
: adicione o nome do seu segredo. Se este campo estiver definido, o seu fornecedor do Helm tem de usar um certificado emitido por esta autoridade de certificação (AC). O Secret tem de conter o certificado da AC numa chave com o nomecert
. Este campo é opcional.Para saber como configurar o objeto Secret para o certificado da AC, consulte o artigo Configurar autoridade de certificação
Para uma explicação dos campos e uma lista completa dos campos que pode adicionar ao campo
spec
, consulte Campos RootSync.Aplique a configuração
RepoSync
:kubectl apply -f repo-sync.yaml
Para validar a configuração, use
kubectl get
num dos objetos na origem com âmbito do espaço de nomes. Por exemplo:kubectl get rolebindings -n NAMESPACE
Pode repetir os passos acima se precisar de configurar várias origens de dados fidedignos ao nível do espaço de nomes .
Valide o estado de sincronização da fonte de dados fidedigna
Pode usar o comando nomos status
para inspecionar o estado de sincronização da fonte de informações fidedignas:
nomos status
Deverá ver uma saída semelhante ao seguinte exemplo:
my_managed_cluster-1
--------------------
<root> git@github.com:foo-corp/acme/admin@main
SYNCED f52a11e4
--------------------
bookstore git@github.com:foo-corp/acme/bookstore@v1
SYNCED 34d1a8c8
Neste exemplo de saída, a origem com âmbito do espaço de nomes, neste caso, um repositório Git, está configurada para um espaço de nomes denominado bookstore
.
Valide a instalação do RootSync
Quando cria um objeto RootSync, o Config Sync cria um reconciliador com o prefixo root-reconciler
. Um reconciliador é um pod implementado como uma implementação.
Sincroniza manifestos de uma fonte de informação fidedigna para um cluster.
Pode verificar se o objeto RootSync está a funcionar corretamente verificando o estado da implementação do reconciliador de raiz:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=ROOT_SYNC_NAME
Substitua ROOT_SYNC_NAME
pelo nome do RootSync.
Deverá ver uma saída semelhante ao seguinte exemplo:
NAME READY UP-TO-DATE AVAILABLE AGE
root-reconciler 1/1 1 1 3h42m
Para outras formas de explorar o estado do seu objeto RootSync, consulte o artigo Monitorizar objetos RootSync e RepoSync.
Valide a instalação do RepoSync
Quando cria um objeto RepoSync, o Config Sync cria um reconciliador com o prefixo ns-reconciler-NAMESPACE
, em que NAMESPACE
é o espaço de nomes no qual criou o objeto RepoSync.
Pode verificar se o objeto RepoSync está a funcionar corretamente verificando o estado da implementação do reconciliador do espaço de nomes:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=REPO_SYNC_NAME \
-l configsync.gke.io/sync-namespace=NAMESPACE
Substitua REPO_SYNC_NAME
pelo nome do RepoSync e
substitua NAMESPACE
pelo espaço de nomes no qual criou
a sua origem de verdade com âmbito do espaço de nomes.
Para outras formas de explorar o estado do objeto RepoSync, consulte o artigo Explorar os objetos RootSync e RepoSync.
Remova uma fonte de informação fidedigna
Selecione o separador Método de controlo central ou Método da API Kubernetes para ver as instruções relevantes.
Método de controlo central
Se usou o método Controlar fontes de informações fidedignas numa fonte de informações fidedignas raiz, um administrador central pode seguir os dois passos seguintes para remover uma fonte de informações fidedignas:
Decida se quer eliminar ou manter os recursos geridos através dos objetos RootSync e RepoSync.
Para eliminar todos os recursos que os seus objetos RootSync ou RepoSync gerem, sincronize o seu objeto RootSync ou RepoSync com uma origem vazia. Por exemplo, um repositório do GitHub sem configurações. Se o seu objeto RootSync ou RepoSync contiver outro objeto RootSync ou RepoSync, o RootSync ou o RepoSync interno tem de ser sincronizado primeiro com um repositório Git vazio.
Se ativou o webhook e quer manter os seus recursos, desative a prevenção de desvio para recursos abandonados. Se não ativou o webhook, não tem de realizar passos adicionais para manter os seus recursos.
Remova o objeto RootSync ou RepoSync da fonte de verdade.
Método da API Kubernetes
Se usou o método Controle as fontes prioritárias com âmbito do espaço de nomes com a API Kubernetes, os operadores de aplicações podem usar os seguintes passos para remover uma fonte prioritária com âmbito do espaço de nomes:
Decida se quer eliminar ou manter os recursos geridos através dos objetos RootSync e RepoSync.
Para eliminar todos os recursos que os seus objetos RootSync ou RepoSync gerem, sincronize o seu objeto RootSync ou RepoSync com uma origem vazia. Por exemplo, um repositório do GitHub sem configurações. Se o seu objeto RootSync ou RepoSync contiver outro objeto RootSync ou RepoSync, o RootSync ou o RepoSync interno tem de ser sincronizado primeiro com um repositório Git vazio.
Se ativou o webhook e quiser manter os seus recursos, desative a prevenção de desvio para recursos abandonados. Se não ativou o webhook, não tem de realizar passos adicionais para manter os seus recursos.
Elimine o objeto RootSync ou RepoSync executando o seguinte comando:
kubectl delete -f FILE_NAME
Substitua
FILE_NAME
pelo nome do ficheiro de configuração do RootSync ou do RepoSync. Por exemplo,root-sync.yaml
.
O que se segue?
- Saiba como evitar a deriva de configuração em origens de dados de âmbito do espaço de nomes.
- Descubra como monitorizar os objetos RootSync e RepoSync.
- Saiba como dividir uma fonte única de informações fidedignas em várias fontes únicas de informações fidedignas.