Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Campos RootSync y RepoSync

En esta página, se proporciona una referencia para los recursos RootSync, RepoSync y ResourceGroup.

Puedes usar recursos RootSync y RepoSync para configurar el Sincronizador de configuración.

Los objetos RootSync configuran el Sincronizador de configuración para observar la fuente especificada y aplicar objetos de esa fuente al clúster. RootSyncs se puede usar para administrar cualquier recurso en el clúster con permisos de administrador de clúster.

Los objetos de RepoSync configuran el Sincronizador de configuración para observar la fuente especificada y aplicar objetos de esa fuente a un espacio de nombres específico en el clúster. Los objetos de RepoSync se usan para administrar cualquier recurso con permiso de espacio de nombres en ese espacio de nombres con permisos personalizados especificados por el usuario.

El Sincronizador de configuración usa el recurso ResourceGroup para conservar el inventario de objetos que aplicó y administra actualmente. El Sincronizador de configuración crea un objeto ResourceGroup para cada RootSync y RepoSync en el clúster. Esto permite que el Sincronizador de configuración reduzca los objetos que se quitaron de la fuente y el estado de la conciliación y sincronización de objetos agregados. No necesitas crear tus propios objetos ResourceGroup, ni tampoco debes modificar los que administra el Sincronizador de configuración.

Uso de objetos RootSync y RepoSync

Si instalaste el Sincronizador de configuración con Google Cloud Console o la CLI de Google Cloud, el servicio de Hub creará de forma automática un objeto RootSync llamado root-sync. Consulta cómo controlar los repositorios raíz en un repositorio raíz para obtener información sobre cómo crear objetos RootSync adicionales.

Si instalaste el Sincronizador de configuración con kubectl, consulta Controla los repositorios raíz en un repositorio raíz para obtener información sobre cómo crear objetos RootSync.

Para crear objetos RepoSync, consulta cómo controlar los repositorios de espacios de nombres en un repositorio raíz o cómo controlar los repositorios de espacios de nombres en un repositorio de espacios de nombres.

Además de sincronizar los objetos de Kubernetes completamente procesados, también puedes configurar el Sincronizador de configuración para usar un repositorio con configuraciones de Kustomize o gráficos de Helm.

Ciclo de vida de los objetos RootSync, RepoSync y ResourceGroup

Las definiciones de recursos personalizados RootSync, RepoSync y ResourceGroup se instalan cuando instalas el Sincronizador de configuración.

En el siguiente diagrama, se muestra una descripción general de cómo el Sincronizador de configuración crea los recursos RootSync, RepoSync y ResourceGroup:

Accionamiento del operador

Una vez creado, el administrador de conciliador se encarga de controlar el ciclo de vida del conciliador raíz y cada proceso del conciliador de espacio de nombres:

Accionamiento del conciliador

Campos RootSync y RepoSync

Las CRD de RootSync y RepoSync usan los mismos campos, excepto spec.sourceFormat.

Configuración del formato de origen

Clave Descripción
spec.sourceFormat sourceFormat especifica cómo se da formato al repositorio. Opcional.
La validación de este campo distingue entre mayúsculas y minúsculas.
  • Para los objetos RootSync, el valor debe ser hierarchy o unstructured. El valor predeterminado es hierarchy si no se especifica, pero se recomienda unstructured.
  • Para los objetos RepoSync, debe ser unstructured y el valor predeterminado también es unstructured.
Consulta las guías de formato no estructurado y jerárquico para obtener más detalles.

Configuración del tipo de fuente

A partir de la versión 1.12.0 de Anthos Config Management, el Sincronizador de configuración admite la sincronización desde imágenes de OCI (vista previa). A partir de la versión 1.13.0 de Anthos Config Management, el Sincronizador de configuración admite la sincronización desde repositorios de Helm (Vista previa). spec.sourceType está configurado para especificar el tipo de fuente.

Clave Descripción
spec.sourceType sourceType especifica el tipo de la fuente de información. Debe ser git, oci o helm. Opcional.
Configúralo como git si no se especifica. La validación de este campo distingue mayúsculas de minúsculas.
Solo se pueden especificar spec.git y spec.oci según el tipo de fuente.

Configuración del repositorio de Git

Clave Descripción
spec.git.auth El tipo de secreto configurado para acceder al repositorio de Git. Debe ser ssh, cookiefile, gcenode, gcpserviceaccount, token o none. La validación de este campo distingue entre mayúsculas y minúsculas. Obligatorio.
spec.git.gcpServiceAccountEmail La cuenta de servicio de Google Cloud que se usa para anotar la cuenta de servicio de Kubernetes del controlador RootSync o RepoSync. Este campo solo se usa cuando spec.git.auth es gcpserviceaccount.
spec.git.branch La rama Git del repositorio desde la que se realiza la sincronización. Valor predeterminado: master.
spec.git.dir La ruta de acceso en el repositorio de Git al directorio raíz que contiene la configuración con la que deseas sincronizar. Valor predeterminado: el directorio raíz (/) del repositorio.
spec.git.period Duración entre sincronizaciones consecutivas. Predeterminado: 15s
spec.git.repo La URL del repositorio de Git desde la que se realiza la sincronización. Obligatorio.
spec.git.revision La revisión de Git (etiqueta, confirmación o hash) que puedes consultar. Valor predeterminado: HEAD.
spec.git.secretRef.name El nombre del secreto que se usó para conectarse a la fuente de información de Git.
spec.git.noSSLVerify1 noSSLVerify especifica si se habilita o inhabilita la verificación del certificado SSL. Valor predeterminado: false.
Si noSSLVerify se configura como verdadero, le indica a Git que omita la verificación del certificado SSL.
Este campo es compatible con la versión 1.8.2 y versiones posteriores de Anthos Config Management.
spec.git.caCertSecretRef.name1 El nombre del secreto que contiene el certificado de la autoridad certificada (CA). Si se proporciona este campo, el servidor de Git debe usar un certificado emitido por esta CA. El certificado de CA debe almacenarse en el secreto con una clave denominada "cert".

Configuración del proxy para el repositorio de Git

Si las políticas de seguridad de tu organización requieren que enrutes el tráfico a través de un proxy HTTP(S), puedes usar el URI del proxy para configurar el Sincronizador de configuración a fin de que se comunique con tu host de Git.

Clave Descripción
spec.git.proxy La URL del proxy con esquema para configurar el acceso al repositorio de Git mediante un proxy. Por ejemplo, https://proxy.internal.business.co:443.
El proxy de Git acepta https, http y URL sin adornos, pero http no se recomienda por problemas de seguridad.
Si usas un http o una URL sin adornos, asegúrate de que la comunicación entre tu servidor proxy y el host de Git sea segura.
Este campo solo tiene efecto cuando spec.git.auth es cookiefile, none o token.

Configuración para la imagen de OCI

El Sincronizador de configuración requiere que la capa de OCI esté comprimida en el formato tar o tar+gzip.

El Sincronizador de configuración no reconocerá otros formatos (por ejemplo, tar+bz2). Si cambias de un REPO válido a una imagen de OCI con un formato no compatible, los recursos administrados se reducirán sin error.

Clave Descripción
spec.oci.auth Es el tipo de autenticación que se configura para acceder a la imagen de OCI. Debe ser gcenode, gcpserviceaccount o none. La validación de este campo distingue entre mayúsculas y minúsculas. Obligatorio.
spec.oci.gcpServiceAccountEmail La cuenta de servicio de Google Cloud que se usa para anotar la cuenta de servicio de Kubernetes del controlador RootSync o RepoSync. Este campo solo se usa cuando spec.oci.auth es gcpserviceaccount.
spec.oci.dir La ruta de acceso en la imagen de OCI al directorio raíz que contiene la configuración con la que deseas sincronizar. Configuración predeterminada: El directorio raíz del repositorio (/)
spec.oci.period Duración entre sincronizaciones consecutivas. Predeterminado: 15s
spec.oci.image La URL de la imagen de OCI desde la que se realiza la sincronización. Obligatorio.

Configuración del repositorio de Helm

Clave Descripción
spec.helm.auth El tipo de autenticación configurado para el acceso al repositorio de Helm. Debe ser token, gcenode, gcpserviceaccount o none. La validación de este campo distingue mayúsculas de minúsculas. Obligatorio.
spec.helm.gcpServiceAccountEmail La cuenta de servicio de Google Cloud que se usa para anotar la cuenta de servicio de Kubernetes del controlador RootSync o RepoSync. Este campo solo se usa cuando spec.helm.auth es gcpserviceaccount.
spec.helm.secretRef.name El nombre del [Secret](doc-path/how-to/installing-kubectl#helm-access) que se usa para acceder al repositorio de Helm. Este campo se usa solo cuando spec.helm.auth es token.
spec.helm.repo La URL del repositorio de Helm desde la que se realiza la sincronización. Obligatorio.
spec.helm.chart El nombre del gráfico de Helm. Obligatorio.
spec.helm.version El número de versión del gráfico de Helm. Predeterminado: la última versión.
spec.helm.releaseName El nombre de la versión de Helm.
spec.helm.namespace El espacio de nombres establece el espacio de nombres de destino para una versión. Este campo se usa solo con objetos RootSync. Solo establece el espacio de nombres para los recursos que contienen namespace: {{ .Release.Namespace }} en sus plantillas. El valor especificado en spec.helm.namespace solo se usa como el valor de Release.Namespace declarado en tus plantillas de Helm. Para los recursos que no tienen namespace: {{ .Release.Namespace }} en sus plantillas, se usará el espacio de nombres default. Configuración predeterminada: default
spec.helm.values Valores para usar en lugar de valores predeterminados que acompañan al gráfico. Aplica a los valores el mismo formato que los valores predeterminados.yaml. Por ejemplo:

values:
  foo:
    bar: val1
  quz:
  - val2
  - val3
Este campo es compatible con Anthos Config Management 1.13.1 y versiones posteriores. Consulta el manifiesto de ejemplo de Helm para obtener más información.
spec.helm.includeCRDs Especifica si la plantilla de Helm debe generar CustomResourceDefinitions. Valor predeterminado: false.
spec.helm.period Duración entre sincronizaciones consecutivas. Valor predeterminado: 15s. Los gráficos no se vuelven a extraer si se especifica un número de versión. No se puede volver a sincronizar gráficos con la versión más reciente en Vista previa.

Configuración para anular las solicitudes y límites de recursos de un conciliador raíz o de espacio de nombres

En Clústeres de Autopilot, el Sincronizador de configuración ignora las anulaciones de límites de recursos. Las anulaciones de solicitudes de recursos se aplican solo cuando existe una o más solicitudes de recursos superiores al resultado ajustado correspondiente que se declara en la anotación o cuando hay una o más solicitudes de recursos inferiores a la entrada correspondiente declarada en el anotación. A fin de obtener más información, consulta Requisitos del clúster para el Sincronizador de configuración.

Clave Descripción
spec.override.resources1 La lista de solicitudes de recursos de contenedor y anulaciones de límites. Opcional.
Cada elemento de la lista contiene tres campos:
  • containerName: Este campo puede ser git-sync, oci-sync, helm-sync, hydration-controller o reconciler.
  • cpuRequest (opcional)
  • cpuLimit (opcional)
  • memoryRequest (opcional)
  • memoryLimit (opcional)

Cuando no se proporciona un valor de anulación para una solicitud o un límite de recurso, se usa el valor del recurso predeterminado para la solicitud o el límite.

Configuración de la cantidad de confirmaciones de Git que se recuperarán

Clave Descripción
spec.override.gitSyncDepth1 gitSyncDepth te permite anular la cantidad de confirmaciones de Git que se recuperarán.
No debe ser menor que 0.
El Sincronizador de configuración realiza una clonación completo si este campo es 0 y una clonación superficial si este campo es mayor que 0.
Si no se proporciona este campo, el Sincronizador de configuración lo configura de forma automática.

Configuración para capturar el estado del nivel de recursos

Clave Descripción
spec.override.statusMode1 statusMode te permite habilitar o inhabilitar la captura de estado a nivel de recurso.
El valor predeterminado es enabled.
Para inhabilitar la captura de estado a nivel de recursos, establece este campo en disabled.

Configuración para anular el tiempo de espera de conciliación

Clave Descripción
spec.override.reconcileTimeout1 reconcileTimeout te permite anular el límite de tiempo de espera para que los recursos de un grupo de aplicación se concilien antes de renunciar. Todos los recursos de una confirmación pueden estar en varios grupos de aplicación basados en las dependencias.
El tiempo de espera predeterminado es 5m.
Usa una string para especificar este valor de campo, como 30s, 5m.

Configuración del acceso de shell en el proceso de procesamiento

Clave Descripción
spec.override.enableShellInRendering1 enableShellInRendering especifica si se habilita o se inhabilita el acceso al shell en el proceso de renderización. Las bases remotas de Kustomize requieren acceso a shell. Establecer este campo en true habilita el acceso de shell en el proceso de procesamiento y admite la extracción de bases remotas desde repositorios públicos.
El valor predeterminado es false.

El estado de los objetos

Clave Descripción
status.observedGeneration La generación (metadata.generation) de la especificación de un recurso RootSync o RepoSync que se observó por última vez y que realizó acciones en el Sincronizador de configuración. Este valor se puede comparar con metadata.generation, que es un número entero, y se actualiza en la mutación de las especificaciones del servidor de la API.
status.reconciler El nombre del proceso de conciliación que corresponde al recurso de sincronización.
status.source.gitStatus.repo La URL del repositorio de Git que se está recuperando.
status.source.gitStatus.revision La revisión de Git (etiqueta, confirmación o hash) que se recupera.
status.source.gitStatus.branch La rama de Git del repositorio que se recupera.
status.source.gitStatus.dir La ruta de acceso absoluta en el repositorio de Git al directorio raíz que contiene la configuración que sincronizas.
status.source.ociStatus.image La URL de la imagen de OCI que se recupera.
status.source.ociStatus.dir La ruta de acceso absoluta en la imagen de OCI al directorio raíz que contiene la configuración que sincronizas.
status.source.helmStatus.repo Se está recuperando la URL del repositorio de Helm.
status.source.helmStatus.version Se está recuperando la versión de gráfico de Helm.
status.source.helmStatus.chart El nombre del gráfico de Helm que se está recuperando.
status.source.commit El hash de la confirmación o el resumen más reciente recuperado de la URL de origen.
status.source.errors Una lista de los errores que se produjeron durante la lectura del repositorio.
status.rendering.gitStatus.repo La URL del repositorio de Git que se procesa.
status.rendering.gitStatus.revision La revisión de Git (etiqueta, confirmación o hash) que se renderiza.
status.rendering.gitStatus.branch La rama de Git del repositorio que se renderiza.
status.rendering.gitStatus.dir La ruta de acceso absoluta en el repositorio de Git al directorio raíz que contiene la configuración que se renderiza.
status.rendering.ociStatus.image La URL de imagen de OCI que se renderiza.
status.rendering.ociStatus.dir La ruta de acceso absoluta en la imagen de OCI al directorio raíz que contiene la configuración que se renderiza.
status.rendering.helmStatus.repo Se está procesando la URL del repositorio de Helm.
status.rendering.helmStatus.version Se está procesando la versión de gráfico de Helm.
status.rendering.helmStatus.chart El nombre del gráfico de Helm.
status.rendering.commit El hash de la confirmación o el resumen más reciente que se renderizó. Este valor se actualiza incluso cuando una confirmación o un resumen solo se sincroniza de forma parcial debido a un error.
status.rendering.errors Una lista de los errores que se produjeron cuando se renderizaron los recursos del cambio que indicó status.rendering.commit.
status.sync.gitStatus.repo La URL del repositorio de Git que se sincroniza.
status.sync.gitStatus.revision La revisión de Git (etiqueta, confirmación o hash) que se sincroniza.
status.sync.gitStatus.branch La rama de Git del repositorio que se sincroniza.
status.sync.gitStatus.dir La ruta de acceso absoluta en el repositorio de Git al directorio raíz que contiene la configuración que sincronizas.
status.sync.ociStatus.image La URL de la imagen de OCI que se sincroniza.
status.sync.ociStatus.dir La ruta de acceso absoluta en la imagen de OCI al directorio raíz que contiene la configuración que sincronizas.
status.sync.helmStatus.repo Se está sincronizando la URL del repositorio de Helm.
status.sync.helmStatus.version Se está sincronizando la versión de gráfico de Helm.
status.sync.helmStatus.chart El nombre del gráfico de Helm que se está sincronizando
status.sync.commit El hash de la confirmación o el resumen más reciente que se sincronizó en el clúster. Este valor se actualiza incluso cuando una confirmación o un resumen solo se sincroniza de forma parcial debido a un error.
status.sync.errors Una lista de los errores que se produjeron cuando se aplicaron los recursos del cambio que indicó status.sync.commit.
status.conditions Las últimas observaciones disponibles del estado actual del RootSync.

1 Si creaste un archivo de configuración de RootSync después de instalar la consola de Google Cloud o Google Cloud CLI, puedes reemplazar este campo. Para obtener una lista completa, consulta Campos editables.

Campos de ResourceGroup

Campos de especificaciones y estados

Clave Descripción
spec.resources La lista de identificadores (grupo, tipo, espacio de nombres, nombre) para los recursos que se aplican al clúster desde el repositorio de Git que se especifica en un CR de RepoSync o CR de RootSync. Opcional.
Cada elemento de la lista contiene cuatro campos: group, kind, namespace y name.

Campos de estado

Clave Descripción
status.observedGeneration La generación (metadata.generation) de la especificación de un recurso RootSync o RepoSync que se adoptó por última vez y que el controlador de ResourceGroup realizó acciones. Este valor se puede comparar con metadata.generation, que es un número entero, y el servidor de la API lo actualiza cuando se cambia la especificación.
status.conditions Las últimas condiciones observadas para el ResourceGroup actual. Las condiciones tienen dos tipos diferentes: Reconciling y Stalled. Cuando la condición de tipo Reconciling es verdadera, significa que el ResourceGroup actual está en la conciliación. Si la condición de tipo Stalled es verdadera, significa que la conciliación se detiene. Cuando ambos son falsos, significa que se concilia el ResourceGroup actual y el estado está actualizado.
status.resourceStatuses La lista de estados de los recursos que se incluyen en “.spec.resources”. Cada elemento contiene el identificador (grupo, tipo, espacio de nombres o nombre) y el estado de un recurso. El estado es uno de los siguientes: InProgress, Current, Failed, Terminating, NotFound o Unknown.

Campos editables

Si instalaste el Sincronizador de configuración con Google Cloud Console o Google Cloud CLI, puedes Crear y editar un archivo de configuración de RootSync.

Si creas este archivo, puedes agregar los campos de la siguiente tabla al objeto RootSync. El Sincronizador de configuración revierte automáticamente los cambios a cualquier otro campo a los valores que estableciste cuando configuraste el Sincronizador de configuración por última vez en Google Cloud Console o Google Cloud CLI.

Clave Descripción
spec.git.noSSLVerify noSSLVerify especifica si se habilita o se inhabilita la verificación del certificado SSL. Predeterminado: false.
Si noSSLVerify está configurado en true, le indica a Git que omita la verificación del certificado SSL.
spec.git.caCertSecretRef.name El nombre del secreto que contiene el certificado de autoridad certificada (CA). Si se proporciona este campo, el servidor Git debe usar un certificado emitido por esta CA. El certificado de CA debe almacenarse en el secreto con una clave denominada “cert”.
spec.override.resources La lista de solicitudes de recursos de contenedores y anulaciones de límites. Opcional.
Cada elemento de la lista contiene tres campos:
  • containerName: Este campo puede ser git-sync, oci-sync, hydration-controller o reconciler.
  • cpuRequest (opcional)
  • cpuLimit (opcional)
  • memoryRequest (opcional)
  • memoryLimit (opcional)

Cuando no se proporciona un valor de anulación para una solicitud o un límite de recursos, se usa el valor predeterminado del recurso de la solicitud o el límite.
spec.override.gitSyncDepth gitSyncDepth te permite anular la cantidad de confirmaciones de Git que se recuperarán.
No debe ser inferior a 0.
El Sincronizador de configuración realiza una clonación completa si este campo es 0 y una clonación superficial si este campo es mayor que 0.
Si no se proporciona este campo, el Sincronizador de configuración lo configura de forma automática.
spec.override.statusMode statusMode te permite habilitar o inhabilitar la captura del estado a nivel de recurso.
El valor predeterminado es enabled.
Para inhabilitar la captura del estado a nivel de recurso, establece este campo en disabled.
spec.override.reconcileTimeout reconcileTimeout te permite anular el límite de tiempo durante el que se debe esperar a que se concilien los recursos en un grupo de aplicaciones antes de abandonar. Todos los recursos de una confirmación pueden estar en varios grupos de aplicación según las dependencias.
El tiempo de espera predeterminado es 5m.
Usa una string para especificar este valor de campo, por ejemplo, 30s, 5m.
spec.override.enableShellInRendering enableShellInRendering especifica si se habilita o se inhabilita el acceso al shell en el proceso de procesamiento. Las bases remotas de Kustomize requieren acceso al shell. Configurar este campo en true habilita el acceso al shell en el proceso de procesamiento y admite la extracción de bases remotas de repositorios públicos.
El valor predeterminado es false.

CR de ejemplo

En las siguientes secciones, se muestran ejemplos de CR de RootSync y Reposync.

CR de RootSync

En el siguiente ejemplo, se muestra un objeto RootSync.

# root-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
  name: root-sync
  namespace: config-management-system
spec:
  sourceType: git
  sourceFormat: unstructured
  git:
    repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    branch: init
    dir: config-sync-quickstart/multirepo/root
    auth: none
    period: 30s

CR de RepoSync

En el siguiente ejemplo, se muestra un objeto RepoSync.

# repo-sync.yaml
apiVersion: configsync.gke.io/v1beta1
kind: RepoSync
metadata:
  name: repo-sync
  namespace: gamestore
spec:
  sourceType: git
  sourceFormat: unstructured
  git:
    repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    branch: init
    dir: config-sync-quickstart/multirepo/root
    auth: none
    period: 30s

¿Qué sigue?