En esta página se explica cómo configurar más de una fuente de información veraz con ámbito de raíz y de espacio de nombres mediante la creación de objetos RootSync y RepoSync.
Tener una fuente de información veraz raíz te permite sincronizar configuraciones de ámbito de clúster y de ámbito de espacio de nombres. Una fuente de información principal puede usar credenciales de nivel de administrador para aplicar políticas en los espacios de nombres de las aplicaciones y anular los cambios locales que se desvíen del estado que hayas declarado en tus configuraciones. Un administrador central suele controlar las fuentes de información veraz raíz.
Las fuentes de información centradas en espacios de nombres son opcionales y pueden contener configuraciones centradas en espacios de nombres sincronizadas con un espacio de nombres concreto en varios clústeres. Puedes delegar la configuración y el control de una fuente de información veraz con ámbito de espacio de nombres en usuarios que no sean administradores. Aunque Config Sync detecta automáticamente los cambios de la fuente de información veraz, puedes añadir una capa adicional de detección de desviaciones añadiendo un webhook de admisión a una fuente de información veraz con ámbito de espacio de nombres. Para obtener más información sobre cómo hacerlo, consulta Evitar la deriva de config.
Antes de empezar
- Crea una fuente de información veraz no estructurada o asegúrate de tener acceso a ella. Esta fuente puede contener las configuraciones que sincroniza Config Sync. Config Sync admite repositorios de Git, gráficos de Helm e imágenes de OCI como fuente de información principal. Las fuentes de información veraz con ámbito de espacio de nombres deben usar el formato no estructurado.
- Crea un clúster o asegúrate de tener acceso a uno que esté en una plataforma y versión compatibles de Google Kubernetes Engine y que cumpla los requisitos de Config Sync.
Crear un RoleBinding
Se necesita un RoleBinding para conceder permisos al RepoSync
que crees en esta guía. Para crear el recurso RoleBinding, sigue estos pasos:
En la fuente raíz, declara una configuración
RoleBinding
que conceda a la cuenta de servicioSERVICE_ACCOUNT_NAME
permiso para gestionar objetos en el espacio de nombres. Config Sync crea automáticamente la cuenta de servicioSERVICE_ACCOUNT_NAME
cuando la configuración de RepoSync se sincroniza con el clúster.Un
RoleBinding
puede hacer referencia a unRole
en el mismo espacio de nombres. También se puede hacer referencia a unClusterRole
desde unRoleBinding
y vincular eseClusterRole
al espacio de nombres delRoleBinding
. Aunque debes seguir el principio de privilegio mínimo concediendo permisos detallados a unRole
definido por el usuario, puedes definir unClusterRole
o usar roles orientados al usuario y hacer referencia al mismoClusterRole
en variosRoleBindings
de diferentes espacios de nombres.ClusterRoles predeterminados
Guarda el manifiesto
RoleBinding
que hace referencia a unClusterRole
predeterminado, por ejemplo,admin
oedit
, 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
Haz los cambios siguientes:
FILENAME
: el nombre del manifiesto RoleBinding.NAMESPACE
: añade el nombre de tu espacio de nombres.SERVICE_ACCOUNT_NAME
: añade el nombre de la cuenta de servicio del reconciliador. Si el nombre de RepoSync esrepo-sync
,SERVICE_ACCOUNT_NAME
esns-reconciler-NAMESPACE
. De lo contrario, esns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Por ejemplo, si el nombre de tu RepoSync esprod
, elSERVICE_ACCOUNT_NAME
seríans-reconciler-NAMESPACE-prod-4
. El entero4
se usa porqueprod
contiene 4 caracteres.CLUSTERROLE_NAME
: añade el nombre del ClusterRole predeterminado.
Roles definidos por el usuario
Puede declarar un
ClusterRole
o unRole
concediendo una lista de permisos a cada recurso gestionado por el objetoRepoSync
. Esto permite definir permisos pormenorizados. Consulta más información sobre cómo hacer referencia a recursos.Por ejemplo, el siguiente
ClusterRole
oRole
concede permisos para gestionar objetosDeployment
yServiceAccount
:# 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: ["*"]
Guarda el archivo de manifiesto
RoleBinding
que hace referencia aClusterRole
oRole
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
Haz los cambios siguientes:
FILENAME
: el nombre del manifiesto RoleBinding.ROLE_KIND
: asigna el valorClusterRole
oRole
.NAMESPACE
: añade el nombre de tu espacio de nombres.SERVICE_ACCOUNT_NAME
: añade el nombre de la cuenta de servicio del reconciliador. Si el nombre de RepoSync esrepo-sync
,SERVICE_ACCOUNT_NAME
esns-reconciler-NAMESPACE
. De lo contrario, esns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Por ejemplo, si el nombre de tu RepoSync esprod
, elSERVICE_ACCOUNT_NAME
seríans-reconciler-NAMESPACE-prod-4
. El entero4
se usa porqueprod
contiene 4 caracteres.RECONCILER_ROLE
: añade el nombre delClusterRole
oRole
.
Aplica el RoleBinding:
kubectl apply -f FILENAME
Limitaciones
NamespaceSelectors
(incluidas las anotaciones que apuntan a selectores) solo funcionan en una fuente de verdad raíz.- Si has instalado Config Sync mediante la consola o la interfaz de línea de comandos de Google Cloud Google Cloud , Config Sync ha creado automáticamente un objeto RootSync llamado
root-sync
. Por este motivo, no puedes asignar el nombreroot-sync
a ninguno de tus objetos RootSync.
Elige el método de configuración que prefieras
Elige uno de los dos métodos para configurar tus fuentes:
Controla las fuentes de una fuente de información veraz raíz. Este método centraliza toda la configuración de una fuente de información veraz en otra fuente de información veraz, lo que permite que un administrador central tenga el control total de la configuración.
Controlar las fuentes con la API de Kubernetes Usa este método si quieres delegar el control de tu fuente de información a diferentes propietarios.
Controlar las fuentes en una fuente de información veraz raíz
Para controlar las fuentes con una fuente raíz, necesitas un RoleBinding para autorizar el acceso. Si no tienes ninguno, consulta la sección Crear un RoleBinding.
Controlar las fuentes raíz en una fuente raíz de información veraz
Config Sync admite la sincronización desde más de una fuente de información veraz. El administrador central puede usar una fuente de información principal para gestionar todas las demás fuentes. Como Config Sync gestiona los objetos RootSync, este método evita que se produzcan cambios locales en las configuraciones de RootSync del clúster.
Para usar este método, completa las siguientes tareas:
Guarda uno de los siguientes manifiestos como
root-sync.yaml
. Usa la versión del manifiesto que corresponda al tipo de fuente de tus configuraciones.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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_REPOSITORY
: añade la URL del repositorio de Git que quieras usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.ROOT_REVISION
: añade la revisión de Git (etiqueta o hash) o la rama desde la que se sincronizarán los datos. Este campo es opcional y su valor predeterminado esHEAD
. Cuando se usa un hash, debe ser un hash completo y no una forma abreviada.ROOT_BRANCH
: añade la rama del repositorio desde la que se hace la sincronización. Este campo es opcional y su valor predeterminado esmaster
. Te recomendamos que uses el camporevision
para especificar un nombre de rama por simplicidad. Si se especifican tanto el camporevision
como el campobranch
,revision
tiene prioridad sobrebranch
.ROOT_DIRECTORY
: añade la ruta del repositorio de Git al directorio raíz que contiene la configuración que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) del repositorio.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticaciónssh
: usar un par de claves SSHcookiefile
: usa uncookiefile
token
: usar un tokengcpserviceaccount
: Usa una cuenta de servicio de Google para acceder a Cloud Source Repositories.gcenode
: usa una cuenta de servicio de Google para acceder a Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.
Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de solo lectura a Git a Config Sync.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: añade el nombre del secreto. Si se define este campo, debes añadir la clave pública del secreto al proveedor de Git. Este campo es opcional.ROOT_NO_SSL_VERIFY
: para inhabilitar la verificación del certificado SSL, asigna el valortrue
a este campo. El valor predeterminado esfalse
.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Git debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa Git como fuente.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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_IMAGE
: URL de la imagen OCI que se va a usar como repositorio raíz. Por ejemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
ROOT_DIRECTORY
: añade la ruta del repositorio al directorio raíz que contiene la configuración que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) del repositorio.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de OCI debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.
Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa una imagen OCI como origen.Helm
# 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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_HELM_REPOSITORY
: la URL del repositorio de Helm que se va a usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.HELM_CHART_NAME
: añade el nombre de tu gráfico de Helm. Este campo es obligatorio.HELM_CHART_VERSION
: la versión del gráfico. Este campo es opcional. Si no se especifica ningún valor, se usa la versión más reciente.HELM_RELEASE_NAME
: el nombre de la versión de Helm. Este campo es opcional.HELM_RELEASE_NAMESPACE
: el espacio de nombres de destino de una versión. Solo define un espacio de nombres para los recursos que contienennamespace: {{ .Release.Namespace }}
en sus plantillas. Este campo es opcional. Si no se especifica ningún valor, se usa el espacio de nombres predeterminadoconfig-management-system
.HELM_INCLUDE_CRDS
: se define comotrue
si quieres que la plantilla de Helm también genere un CustomResourceDefinition. Este campo es opcional. Si no se especifica ningún valor, el valor predeterminado esfalse
y no se generará ningún CRD.VALUE
: valores que se usarán en lugar de los valores predeterminados que acompañan al gráfico de Helm. Este campo debe tener el mismo formato que el archivo values.yaml del gráfico de Helm. Este campo es opcional.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióntoken
: usa un nombre de usuario y una contraseña para acceder a un repositorio de Helm privado.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: añade el nombre de tu secreto sitoken
es elROOT_AUTH_TYPE
. Este campo es opcional.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Helm debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.
Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa Helm como origen.Confirma los cambios en la fuente de información principal:
git add . git commit -m 'Setting up a new root source of truth.' git push
Puedes repetir los pasos anteriores si necesitas configurar varias fuentes raíz. También puedes almacenar configuraciones de varios objetos RootSync en una fuente de información veraz raíz sincronizada por otro objeto RootSync para gestionar varios objetos RootSync de forma centralizada con GitOps.
Controlar objetos centrados en espacios de nombres en una fuente de información veraz raíz
Una fuente de información veraz raíz puede gestionar las fuentes de información veraz con permisos de espacio de nombres. Como Config Sync gestiona las fuentes de ámbito de espacio de nombres, este método impide que se hagan cambios locales en las definiciones de las fuentes de ámbito de espacio de nombres.
Para usar este método, completa las siguientes tareas:
En la fuente de información veraz raíz, declara una configuración
namespace
:# ROOT_SOURCE/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Sustituye
NAMESPACE
por el nombre del espacio de nombres.En la fuente de información veraz raíz, cree uno de los siguientes objetos
RepoSync
en el mismo espacio de nombres. Usa el manifiesto que corresponda al tipo de origen de tus configuraciones: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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: añade la URL del repositorio de Git que quieras usar como repositorio de espacio de nombres. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Si no introduces ningún protocolo, la URL se tratará como una URL HTTPS. Este campo es obligatorio.NAMESPACE_REVISION
: añade la revisión de Git (etiqueta o hash) o la rama desde la que se sincronizarán los datos. Este campo es opcional y su valor predeterminado esHEAD
. Cuando se usa un hash, debe ser un hash completo y no una forma abreviada.NAMESPACE_BRANCH
: añade la rama del repositorio desde la que se hace la sincronización. Este campo es opcional y su valor predeterminado esmaster
. Te recomendamos que uses el camporevision
para especificar un nombre de rama por simplicidad. Si se especifican tanto el camporevision
como el campobranch
,revision
tiene prioridad sobrebranch
.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticaciónssh
: usar un par de claves SSHcookiefile
: usa uncookiefile
token
: usar un tokengcpserviceaccount
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories.gcenode
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de solo lectura a Git a Config Sync.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuNAMESPACE_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre que quieras darle al secreto. Este campo es opcional.NAMESPACE_NO_SSL_VERIFY
: para inhabilitar la verificación del certificado SSL, asigna el valortrue
a este campo. El valor predeterminado esfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Git debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los campos que puede añadir al campo
spec
, consulte Campos de 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_IMAGE
: URL de la imagen OCI que se va a usar como origen del espacio de nombres. Por ejemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
NAMESPACE_DIRECTORY
: añade la ruta del origen al directorio raíz que contiene la configuración con la que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) de la fuente.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de OCI debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Helm
# 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: la URL del repositorio de Helm que se va a usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.HELM_CHART_NAME
: añade el nombre de tu gráfico de Helm. Este campo es obligatorio.HELM_CHART_VERSION
: la versión del gráfico. Este campo es opcional. Si no se especifica ningún valor, se usa la versión más reciente.HELM_RELEASE_NAME
: el nombre de la versión de Helm. Este campo es opcional.HELM_RELEASE_NAMESPACE
: el espacio de nombres de destino de una versión. Solo define un espacio de nombres para los recursos que contienennamespace: {{ .Release.Namespace }}
en sus plantillas. Este campo es opcional. Si no se especifica ningún valor, se usa el espacio de nombres predeterminadoconfig-management-system
.HELM_INCLUDE_CRDS
: se define comotrue
si quieres que la plantilla de Helm también genere un CustomResourceDefinition. Este campo es opcional. Si no se especifica ningún valor, el valor predeterminado esfalse
y no se generará ningún CRD.VALUE
: valores que se usarán en lugar de los valores predeterminados que acompañan al gráfico de Helm. Este campo debe tener el mismo formato que el archivo values.yaml del gráfico de Helm. Este campo es opcional.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióntoken
: usa un nombre de usuario y una contraseña para acceder a un repositorio de Helm privado.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre de tu secreto sitoken
es elROOT_AUTH_TYPE
. Este campo es opcional.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Helm debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Si usas
gcpserviceaccount
como tipo de autenticación y no tienes habilitada la federación de identidades de carga de trabajo para GKE, debes crear un enlace de política de gestión de identidades y accesos entre la cuenta de servicio de Kubernetes de cada espacio de nombres y la cuenta de servicio de Google. Consulta las instrucciones para conceder acceso a Git sobre cómo crear esta vinculación.Confirma los cambios en la fuente de información principal:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Si es necesario, crea un secreto en función del método de autenticación que prefieras. Si has usado
none
como tipo de autenticación, puedes saltarte este paso.El secreto debe cumplir los siguientes requisitos:
- Crea el secreto en el mismo espacio de nombres que el RepoSync.
- El nombre del secreto debe coincidir con el nombre
spec.git.secretRef
que hayas definido enrepo-sync.yaml
. - Debe añadir la clave pública del secreto al proveedor de Git.
Para verificar la configuración, usa
kubectl get
en uno de los objetos de la fuente del espacio de nombres. Por ejemplo:kubectl get rolebindings -n NAMESPACE
Puedes repetir los pasos anteriores si necesitas configurar más de una fuente centrada en un espacio de nombres.
Controlar fuentes con permisos de espacio de nombres en una fuente con permisos de espacio de nombres
Config Sync admite la sincronización desde más de una fuente de información veraz centrada en un espacio de nombres por espacio de nombres. Las fuentes de información veraz con permisos de espacio de nombres se pueden gestionar en una fuente de información veraz con permisos de espacio de nombres en el mismo espacio de nombres.
Para usar este método, completa las siguientes tareas:
En la fuente de información veraz con ámbito de espacio de nombres, crea uno de los siguientes objetos
RepoSync
en el mismo espacio de nombres. Usa el manifiesto que corresponda al tipo de origen de tus configuraciones: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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: añade la URL del repositorio de Git que quieras usar como repositorio de espacio de nombres. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Si no introduces ningún protocolo, la URL se tratará como una URL HTTPS. Este campo es obligatorio.NAMESPACE_REVISION
: añade la revisión de Git (etiqueta o hash) o la rama desde la que se sincronizarán los datos. Este campo es opcional y su valor predeterminado esHEAD
. Cuando se usa un hash, debe ser un hash completo y no una forma abreviada.NAMESPACE_BRANCH
: añade la rama del repositorio desde la que se hace la sincronización. Este campo es opcional y su valor predeterminado esmaster
. Te recomendamos que uses el camporevision
para especificar un nombre de rama por simplicidad. Si se especifican tanto el camporevision
como el campobranch
,revision
tiene prioridad sobrebranch
.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticaciónssh
: usar un par de claves SSHcookiefile
: usa uncookiefile
token
: usar un tokengcpserviceaccount
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories.gcenode
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de solo lectura a Git a Config Sync.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuNAMESPACE_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre que quieras darle al secreto. Este campo es opcional.NAMESPACE_NO_SSL_VERIFY
: para inhabilitar la verificación del certificado SSL, asigna el valortrue
a este campo. El valor predeterminado esfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Git debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los campos que puede añadir al campo
spec
, consulte Campos de 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_IMAGE
: URL de la imagen OCI que se va a usar como origen del espacio de nombres. Por ejemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
NAMESPACE_DIRECTORY
: añade la ruta del origen al directorio raíz que contiene la configuración con la que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) de la fuente.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de OCI debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Helm
# 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: la URL del repositorio de Helm que se va a usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.HELM_CHART_NAME
: añade el nombre de tu gráfico de Helm. Este campo es obligatorio.HELM_CHART_VERSION
: la versión del gráfico. Este campo es opcional. Si no se especifica ningún valor, se usa la versión más reciente.HELM_RELEASE_NAME
: el nombre de la versión de Helm. Este campo es opcional.HELM_RELEASE_NAMESPACE
: el espacio de nombres de destino de una versión. Solo define un espacio de nombres para los recursos que contienennamespace: {{ .Release.Namespace }}
en sus plantillas. Este campo es opcional. Si no se especifica ningún valor, se usa el espacio de nombres predeterminadoconfig-management-system
.HELM_INCLUDE_CRDS
: se define comotrue
si quieres que la plantilla de Helm también genere un CustomResourceDefinition. Este campo es opcional. Si no se especifica ningún valor, el valor predeterminado esfalse
y no se generará ningún CRD.VALUE
: valores que se usarán en lugar de los valores predeterminados que acompañan al gráfico de Helm. Este campo debe tener el mismo formato que el archivo values.yaml del gráfico de Helm. Este campo es opcional.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióntoken
: usa un nombre de usuario y una contraseña para acceder a un repositorio de Helm privado.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre de tu secreto sitoken
es elROOT_AUTH_TYPE
. Este campo es opcional.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Helm debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Si usas
gcpserviceaccount
como tipo de autenticación y no tienes habilitada la federación de identidades de carga de trabajo para GKE, debes crear un enlace de política de gestión de identidades y accesos entre la cuenta de servicio de Kubernetes de cada espacio de nombres y la cuenta de servicio de Google. Consulta las instrucciones para conceder acceso a Git sobre cómo crear esta vinculación.Confirma los cambios en la fuente de información principal:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Si es necesario, crea un secreto en función del método de autenticación que prefieras. Si has usado
none
como tipo de autenticación, puedes saltarte este paso.El secreto debe cumplir los siguientes requisitos:
- Crea el secreto en el mismo espacio de nombres que el RepoSync.
- El nombre del secreto debe coincidir con el nombre
spec.git.secretRef
que hayas definido enrepo-sync.yaml
. - Debe añadir la clave pública del secreto al proveedor de Git.
Para verificar la configuración, usa
kubectl get
en uno de los objetos de la fuente de información veraz con ámbito de espacio de nombres. Por ejemplo:kubectl get rolebindings -n NAMESPACE
Puedes repetir los pasos anteriores si necesitas configurar más de una fuente con ámbito de espacio de nombres.
Controlar una fuente de información veraz con la API de Kubernetes
En este método, el administrador central delega la declaración de otros objetos RootSync
en otros administradores. En el caso de los objetos RepoSync
, el administrador central solo declara el espacio de nombres en la fuente de información principal raíz y delega la declaración del objeto RepoSync
en el operador de la aplicación.
Controlar más de una fuente de información veraz raíz
Otros administradores pueden controlar una fuente de información principal completando las siguientes tareas:
Guarda uno de los siguientes manifiestos como
root-sync.yaml
. Usa la versión del manifiesto que corresponda al tipo de fuente de tus configuraciones.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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_REPOSITORY
: añade la URL del repositorio de Git que quieras usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.ROOT_REVISION
: añade la revisión de Git (etiqueta o hash) o la rama desde la que se sincronizarán los datos. Este campo es opcional y su valor predeterminado esHEAD
. Cuando se usa un hash, debe ser un hash completo y no una forma abreviada.ROOT_BRANCH
: añade la rama del repositorio desde la que se hace la sincronización. Este campo es opcional y su valor predeterminado esmaster
. Te recomendamos que uses el camporevision
para especificar un nombre de rama por simplicidad. Si se especifican tanto el camporevision
como el campobranch
,revision
tiene prioridad sobrebranch
.ROOT_DIRECTORY
: añade la ruta del repositorio de Git al directorio raíz que contiene la configuración que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) del repositorio.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticaciónssh
: usar un par de claves SSHcookiefile
: usa uncookiefile
token
: usar un tokengcpserviceaccount
: Usa una cuenta de servicio de Google para acceder a Cloud Source Repositories.gcenode
: usa una cuenta de servicio de Google para acceder a Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.
Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de solo lectura a Git a Config Sync.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: añade el nombre del secreto. Si se define este campo, debes añadir la clave pública del secreto al proveedor de Git. Este campo es opcional.ROOT_NO_SSL_VERIFY
: para inhabilitar la verificación del certificado SSL, asigna el valortrue
a este campo. El valor predeterminado esfalse
.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Git debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa Git como fuente.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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_IMAGE
: URL de la imagen OCI que se va a usar como repositorio raíz. Por ejemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
ROOT_DIRECTORY
: añade la ruta del repositorio al directorio raíz que contiene la configuración que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) del repositorio.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de OCI debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.
Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa una imagen OCI como origen.Helm
# 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
Haz los cambios siguientes:
ROOT_SYNC_NAME
: añade el nombre de tu objeto RootSync.ROOT_FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.ROOT_HELM_REPOSITORY
: la URL del repositorio de Helm que se va a usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.HELM_CHART_NAME
: añade el nombre de tu gráfico de Helm. Este campo es obligatorio.HELM_CHART_VERSION
: la versión del gráfico. Este campo es opcional. Si no se especifica ningún valor, se usa la versión más reciente.HELM_RELEASE_NAME
: el nombre de la versión de Helm. Este campo es opcional.HELM_RELEASE_NAMESPACE
: el espacio de nombres de destino de una versión. Solo define un espacio de nombres para los recursos que contienennamespace: {{ .Release.Namespace }}
en sus plantillas. Este campo es opcional. Si no se especifica ningún valor, se usa el espacio de nombres predeterminadoconfig-management-system
.HELM_INCLUDE_CRDS
: se define comotrue
si quieres que la plantilla de Helm también genere un CustomResourceDefinition. Este campo es opcional. Si no se especifica ningún valor, el valor predeterminado esfalse
y no se generará ningún CRD.VALUE
: valores que se usarán en lugar de los valores predeterminados que acompañan al gráfico de Helm. Este campo debe tener el mismo formato que el archivo values.yaml del gráfico de Helm. Este campo es opcional.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióntoken
: usa un nombre de usuario y una contraseña para acceder a un repositorio de Helm privado.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
ROOT_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: añade el nombre de tu secreto sitoken
es elROOT_AUTH_TYPE
. Este campo es opcional.ROOT_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Helm debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.
Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Este manifiesto crea un objeto
RootSync
que usa Helm como origen.Aplica los cambios:
kubectl apply -f root-sync.yaml
Puedes repetir los pasos anteriores si necesitas configurar más de una fuente de información principal.
Controlar las fuentes de información veraz con permisos de espacio de nombres
Tareas de administrador central
El administrador central completa las siguientes tareas:
En la fuente de referencia raíz, declara una configuración
namespace
para las fuentes centradas en espacios de nombres.# ROOT_REPO/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Sustituye
NAMESPACE
por el nombre del espacio de nombres.En la fuente de referencia raíz, declara un
RoleBinding
para dar permisos a los operadores de la aplicación. Usa la prevención de la escalada de RBAC para asegurarte de que el operador de la aplicación no pueda aplicar más adelante un enlace de rol con permisos que no se hayan concedido en este enlace de rol.Para declarar el recurso RoleBinding, crea el siguiente manifiesto:
# 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
Haz los cambios siguientes:
NAMESPACE
: añade el espacio de nombres que has creado en la fuente de información veraz raíz.USERNAME
: añade el nombre de usuario del operador de la aplicación.OPERATOR_ROLE
: como administrador central, puedes definirOPERATOR_ROLE
para aplicar qué tipos de configuraciones se pueden sincronizar desde la fuente centrada en el espacio de nombres. Puede elegir uno de los siguientes roles:Un ClusterRole predeterminado:
admin
edit
Para obtener más información, consulta Roles visibles para los usuarios.
Un ClusterRole o un Role definidos por el usuario declarados en la fuente de información principal raíz. Este rol permite definir permisos pormenorizados.
Confirma los cambios en la fuente de información principal:
git add . git commit -m 'Setting up new namespace-scoped source of truth.' git push
Tareas del operador de la aplicación
El operador de la aplicación puede controlar las fuentes centradas en espacios de nombres completando las siguientes tareas:
Declara una configuración
RoleBinding
que conceda permiso a la cuenta de servicio aprovisionada automáticamenteSERVICE_ACCOUNT_NAME
para gestionar objetos en el espacio de nombres. Config Sync crea automáticamente la cuenta de servicioSERVICE_ACCOUNT_NAME
cuando la configuración deRepoSync
se sincroniza con el clúster.Para declarar el recurso RoleBinding, crea el siguiente manifiesto:
# 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
Haz los cambios siguientes:
NAMESPACE
: añade el espacio de nombres que has creado en la fuente de información veraz raíz.SERVICE_ACCOUNT_NAME
: añade el nombre de la cuenta de servicio del reconciliador. Si el nombre de RepoSync esrepo-sync
,SERVICE_ACCOUNT_NAME
esns-reconciler-NAMESPACE
. De lo contrario, esns-reconciler-NAMESPACE-REPO_SYNC_NAME
.RECONCILER_ROLE
: como operador de la aplicación, puedes definirRECONCILER_ROLE
para aplicar qué tipos de configuración se pueden sincronizar desde la fuente con ámbito de espacio de nombres. Solo puedes restringir aún más el conjunto de permisos que te ha concedido el administrador central. Por lo tanto, este rol no puede tener más permisos que elOPERATOR_ROLE
que el administrador central haya declarado en la sección anterior.
Aplica la configuración de RoleBinding:
kubectl apply -f sync-rolebinding.yaml
Si es necesario, crea un secreto en función del método de autenticación que prefieras. Si has usado
none
como tipo de autenticación, puedes saltarte este paso.El secreto debe cumplir los siguientes requisitos:
- Crea el secreto en el mismo espacio de nombres que el RepoSync.
- El nombre del secreto debe coincidir con el nombre
spec.git.secretRef
que hayas definido enroot-sync.yaml
. - Debe añadir la clave pública del secreto al proveedor de Git.
Declara una configuración 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: añade la URL del repositorio de Git que quieras usar como repositorio de espacio de nombres. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Si no introduces ningún protocolo, la URL se tratará como una URL HTTPS. Este campo es obligatorio.NAMESPACE_REVISION
: añade la revisión de Git (etiqueta o hash) o la rama desde la que se sincronizarán los datos. Este campo es opcional y su valor predeterminado esHEAD
. Cuando se usa un hash, debe ser un hash completo y no una forma abreviada.NAMESPACE_BRANCH
: añade la rama del repositorio desde la que se hace la sincronización. Este campo es opcional y su valor predeterminado esmaster
. Te recomendamos que uses el camporevision
para especificar un nombre de rama por simplicidad. Si se especifican tanto el camporevision
como el campobranch
,revision
tiene prioridad sobrebranch
.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticaciónssh
: usar un par de claves SSHcookiefile
: usa uncookiefile
token
: usar un tokengcpserviceaccount
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories.gcenode
: usa una cuenta de servicio de Google para acceder a un repositorio en Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de solo lectura a Git a Config Sync.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuNAMESPACE_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre que quieras darle al secreto. Este campo es opcional.NAMESPACE_NO_SSL_VERIFY
: para inhabilitar la verificación del certificado SSL, asigna el valortrue
a este campo. El valor predeterminado esfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Git debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los campos que puede añadir al campo
spec
, consulte Campos de 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_IMAGE
: URL de la imagen OCI que se va a usar como origen del espacio de nombres. Por ejemplo,LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
NAMESPACE_DIRECTORY
: añade la ruta del origen al directorio raíz que contiene la configuración con la que quieres sincronizar. Este campo es opcional y el valor predeterminado es el directorio raíz (/
) de la fuente.NAMESPACE_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de OCI debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Helm
# 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
Haz los cambios siguientes:
REPO_SYNC_NAME
: añade el nombre de tu objeto RepoSync. El nombre debe ser único en todo el espacio de nombres.NAMESPACE
: añade el nombre de tu espacio de nombres.NAMESPACE_REPOSITORY
: la URL del repositorio de Helm que se va a usar como repositorio raíz. Puede introducir URLs con el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usa el protocolo HTTPS. Este campo es obligatorio.HELM_CHART_NAME
: añade el nombre de tu gráfico de Helm. Este campo es obligatorio.HELM_CHART_VERSION
: la versión del gráfico. Este campo es opcional. Si no se especifica ningún valor, se usa la versión más reciente.HELM_RELEASE_NAME
: el nombre de la versión de Helm. Este campo es opcional.HELM_RELEASE_NAMESPACE
: el espacio de nombres de destino de una versión. Solo define un espacio de nombres para los recursos que contienennamespace: {{ .Release.Namespace }}
en sus plantillas. Este campo es opcional. Si no se especifica ningún valor, se usa el espacio de nombres predeterminadoconfig-management-system
.HELM_INCLUDE_CRDS
: se define comotrue
si quieres que la plantilla de Helm también genere un CustomResourceDefinition. Este campo es opcional. Si no se especifica ningún valor, el valor predeterminado esfalse
y no se generará ningún CRD.VALUE
: valores que se usarán en lugar de los valores predeterminados que acompañan al gráfico de Helm. Este campo debe tener el mismo formato que el archivo values.yaml del gráfico de Helm. Este campo es opcional.ROOT_AUTH_TYPE
: añade uno de los siguientes tipos de autenticación:none
: no usar autenticacióntoken
: usa un nombre de usuario y una contraseña para acceder a un repositorio de Helm privado.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Este campo es obligatorio.
NAMESPACE_EMAIL
: Si has añadidogcpserviceaccount
como tuROOT_AUTH_TYPE
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: añade el nombre de tu secreto sitoken
es elROOT_AUTH_TYPE
. Este campo es opcional.NAMESPACE_CA_CERT_SECRET_NAME
: añade el nombre de tu secreto. Si se define este campo, tu proveedor de Helm debe usar un certificado emitido por esta autoridad de certificación (CA). El secreto debe contener el certificado de la AC en una clave llamadacert
. Este campo es opcional.Para obtener más información sobre cómo configurar el objeto Secret para el certificado de la AC, consulta Configurar la autoridad de certificación.
Para obtener una explicación de los campos y una lista completa de los que puede añadir al campo
spec
, consulte Campos de RootSync.Aplica la configuración
RepoSync
:kubectl apply -f repo-sync.yaml
Para verificar la configuración, usa
kubectl get
en uno de los objetos de la fuente centrada en el espacio de nombres. Por ejemplo:kubectl get rolebindings -n NAMESPACE
Puedes repetir los pasos anteriores si necesitas configurar varias fuentes de referencia centradas en espacios de nombres .
Verificar el estado de sincronización de la fuente de información veraz
Puedes usar el comando nomos status
para inspeccionar el estado de sincronización de la fuente de información veraz:
nomos status
Debería ver un resultado similar al siguiente ejemplo:
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
En este ejemplo de salida, la fuente con ámbito de espacio de nombres, en este caso un repositorio Git, se configura para un espacio de nombres llamado bookstore
.
Verificar la instalación de RootSync
Cuando creas un objeto RootSync, Config Sync crea un reconciliador con el prefijo root-reconciler
. Un reconciliador es un pod que se despliega como un despliegue.
Sincroniza manifiestos de una fuente de información veraz con un clúster.
Para comprobar que el objeto RootSync funciona correctamente, consulta el estado de la implementación de root-reconciler:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=ROOT_SYNC_NAME
Sustituye ROOT_SYNC_NAME
por el nombre de RootSync.
Debería ver un resultado similar al siguiente ejemplo:
NAME READY UP-TO-DATE AVAILABLE AGE
root-reconciler 1/1 1 1 3h42m
Para ver otras formas de consultar el estado de tu objeto RootSync, consulta Monitorizar objetos RootSync y RepoSync.
Verificar la instalación de RepoSync
Cuando creas un objeto RepoSync, Config Sync crea un reconciliador con el prefijo ns-reconciler-NAMESPACE
, donde NAMESPACE
es el espacio de nombres en el que has creado el objeto RepoSync.
Puedes verificar que el objeto RepoSync funciona correctamente comprobando el estado de la implementación del reconciliador de espacios de nombres:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=REPO_SYNC_NAME \
-l configsync.gke.io/sync-namespace=NAMESPACE
Sustituye REPO_SYNC_NAME
por el nombre de RepoSync y NAMESPACE
por el espacio de nombres en el que has creado tu fuente de información veraz con ámbito de espacio de nombres.
Para ver otras formas de consultar el estado de tu objeto RepoSync, consulta Consultar los objetos RootSync y RepoSync.
Quitar una fuente de información veraz
Selecciona la pestaña Método de control central o Método de API de Kubernetes para ver las instrucciones correspondientes.
Método de control central
Si has usado el método Controlar las fuentes de información veraz en una fuente de información veraz raíz, un administrador central puede seguir estos dos pasos para eliminar una fuente de información veraz:
Decide si quieres eliminar o conservar los recursos que se gestionan a través de tus objetos RootSync y RepoSync.
Para eliminar todos los recursos que gestionan tus objetos RootSync o RepoSync, sincroniza tu objeto RootSync o RepoSync con una fuente vacía. Por ejemplo, un repositorio de GitHub sin configuraciones. Si tu objeto RootSync o RepoSync contiene otro objeto RootSync o RepoSync, el objeto RootSync o RepoSync interno debe sincronizarse primero con un repositorio de Git vacío.
Si has habilitado el webhook y quieres conservar tus recursos, desactiva la prevención de la deriva para los recursos abandonados. Si no has habilitado el webhook, no tienes que hacer nada más para conservar tus recursos.
Elimina el objeto RootSync o RepoSync de la fuente de información veraz.
Método de la API de Kubernetes
Si has usado el método Controlar las fuentes de referencia con ámbito de espacio de nombres con la API de Kubernetes, los operadores de aplicaciones pueden seguir estos pasos para eliminar una fuente de referencia con ámbito de espacio de nombres:
Decide si quieres eliminar o conservar los recursos que se gestionan a través de tus objetos RootSync y RepoSync.
Para eliminar todos los recursos que gestionan tus objetos RootSync o RepoSync, sincroniza tu objeto RootSync o RepoSync con una fuente vacía. Por ejemplo, un repositorio de GitHub sin configuraciones. Si tu objeto RootSync o RepoSync contiene otro objeto RootSync o RepoSync, el objeto RootSync o RepoSync interno debe sincronizarse primero con un repositorio de Git vacío.
Si has habilitado el webhook y quieres conservar tus recursos, deshabilita la prevención de desfase para los recursos abandonados. Si no has habilitado el webhook, no tienes que hacer nada más para conservar tus recursos.
Elimina el objeto RootSync o RepoSync ejecutando el siguiente comando:
kubectl delete -f FILE_NAME
Sustituye
FILE_NAME
por el nombre del archivo de configuración de RootSync o RepoSync. Por ejemplo,root-sync.yaml
.
Siguientes pasos
- Consulta cómo evitar la deriva de configuración en fuentes de información centradas en espacios de nombres.
- Consulta cómo monitorizar tus objetos RootSync y RepoSync.
- Consulte cómo dividir una fuente de información veraz en varias fuentes de información veraz.