Campos de gcloud apply spec

En esta página, se explican los diferentes campos que puedes establecer en el archivo de configuración para el Sincronizador de configuración. Usa este archivo cuando configures los componentes del Sincronizador de configuración con Google Cloud CLI. El comando de la CLI de gcloud que usas para aplicar el archivo de configuración también tiene una documentación de referencia.

Con estos comandos, también se puede configurar el controlador de políticas, pero se recomienda que uses los comandos de Policy Controller gcloud en su lugar.

El formato de archivo que se usa con la CLI de gcloud es similar al formato del objeto ConfigManagement. Sin embargo, los formatos son diferentes y los dos no son intercambiables.

Configuración del Sincronizador de configuración

Clave Descripción
spec.upgrades (Vista previa) La configuración de actualización del Sincronizador de configuración. Si se establece en auto, la versión del Sincronizador de configuración se actualiza de forma automática. Para obtener información sobre cómo funcionan las actualizaciones automáticas, consulta Actualiza el Sincronizador de configuración. Configúralo en manual para actualizar de forma manual la versión del Sincronizador de configuración. El valor predeterminado es manual. Esta marca solo es compatible con clústeres de GKE en Google Cloud.
spec.configSync.enabled Si es true, se habilita el Sincronizador de configuración. Si es false, se inhabilita el Sincronizador de configuración. Obligatorio para la versión 429.0.0 y anteriores de gcloud CLI. Opcional para la versión 430.0.0 y posteriores de gcloud CLI. Predeterminado: true.
spec.configSync.sourceType El tipo de fuente desde la que se debe sincronizar el Sincronizador de configuración. Se acepta git o oci. Valor predeterminado: git.
spec.configSync.syncRepo La URL del repositorio de Git, la imagen de OCI o el gráfico de Helm para usar como fuente de información. Puedes omitir este campo si no tienes un repositorio preparado.
spec.configSync.syncBranch La rama del repositorio de Git desde la que se realiza la sincronización. Este campo se ignora si .spec.configSync.sourceType se establece en oci. Este campo es opcional, y el valor predeterminado es master. A partir de la versión 1.17.0 del Sincronizador de configuración, se recomienda usar el campo spec.configSync.syncRev para especificar el nombre de la rama y, así, simplificar el proceso. Si se especifican los campos spec.configSync.syncRev y spec.configSync.syncBranch, spec.configSync.syncRev tiene prioridad sobre spec.configSync.syncBranch.
spec.configSync.policyDir La ruta de acceso en el repositorio de Git o en la imagen de OCI al directorio raíz que contiene la configuración que deseas sincronizar. Configuración predeterminada: El directorio raíz del repositorio
spec.configSync.syncWait Período en segundos entre sincronizaciones consecutivas. Valor predeterminado: 15.
spec.configSync.syncRev Revisión de Git (etiqueta o hash) desde la que se sincroniza. Este campo se ignora si .spec.configSync.sourceType se establece en oci. Este campo es opcional, y el valor predeterminado es HEAD. A partir de la versión 1.17.0 del Sincronizador de configuración, también puedes especificar el nombre de una rama en el campo spec.configSync.syncRev. Cuando se usa un hash en la versión 1.17.0 o posterior, debe ser un hash completo y no una forma abreviada.
spec.configSync.preventDrift Si es true, habilita el webhook de admisión del Sincronizador de configuración para evitar los desvíos mediante el rechazo de los cambios conflictivos que se envían a los clústeres activos. El valor predeterminado es false. El Sincronizador de configuración siempre soluciona los desvíos, sin importar el valor de este campo.
spec.configSync.secretType Es el tipo de Secret configurado para acceder a .spec.configSync.syncRepo. Si seleccionastegit como el tipo de fuente, el valor debe serssh,cookiefile, gcenode, gcpserviceaccount, token onone. Si seleccionaste oci como el tipo de fuente, el valor debe ser gcenode, gcpserviceaccount o none. La validación de este campo distingue entre mayúsculas y minúsculas. Obligatorio.
spec.configSync.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.configSync.secretType es gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail El correo electrónico de la cuenta de servicio de Google Cloud (GSA) que se usó para exportar las métricas del Sincronizador de configuración a Cloud Monitoring. GS debe tener el rol de IAM de escritor de métricas de supervisión (roles/monitoring.metricWriter). La cuenta de servicio de Kubernetes default en el espacio de nombres config-management-monitoring debe estar vinculada a GSA.
spec.configSync.sourceFormat Cuando se establece en unstructured, configura un repositorio no jerárquico. Valor predeterminado: hierarchy.

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. El proxy solo se admite cuando se usa un tipo de autorización de cookiefile, none o token.

Clave Descripción
spec.configSync.httpsProxy Define una variable de entorno HTTPS_PROXY que se usa para acceder al repositorio de Git. Por ejemplo, https://proxy.internal.business.co:443.
El proxy HTTPS solo acepta https o URLs sin adornos. Se rechazan las URLs que contienen http://.
Si usas una URL sin adornos, asegúrate de que la comunicación entre tu servidor proxy y el host de Git sea segura.

Configuración del controlador de políticas

Clave Descripción
spec.policyController.enabled Si es true, se habilita Policy Controller. La configuración predeterminada es false.
spec.policyController.templateLibraryInstalled Si es true, se instala una biblioteca de plantillas de restricciones para tipos de políticas comunes. La configuración predeterminada es true.
spec.policyController.referentialRulesEnabled Si es true, se habilita la compatibilidad con restricciones referenciales. Asegúrate de comprender las advertencias sobre la coherencia eventual. La configuración predeterminada es false.
spec.policyController.auditIntervalSeconds Período en segundos entre auditorías consecutivas de incumplimientos de restricción. Configúralo en 0 para inhabilitar la auditoría. Predeterminado: 60.
spec.policyController.logDeniesEnabled Si es true, registra todos los rechazos y las fallas de ejecución de prueba. La configuración predeterminada es false.
spec.policyController.mutationEnabled Si es true, habilita la compatibilidad con mutaciones. La configuración predeterminada es false.
spec.policyController.exemptableNamespaces Una lista de espacios de nombres para quitar de la aplicación del webhook de admisión del controlador de políticas. Cualquier incumplimiento aún se informa en la auditoría. La configuración predeterminada es una lista vacía.
spec.policyController.monitoring.backends Una lista de backends de supervisión para el controlador de políticas a los que se exportarán las métricas. Valor predeterminado: [cloudmonitoring, prometheus].

Configuración del controlador de jerarquía

Clave Descripción
spec.hierarchyController.enabled Si es true, se habilita el controlador de jerarquía. La configuración predeterminada es false.
spec.hierarchyController.enableHierarchicalResourceQuota Si es true, se habilitan las cuotas de recursos jerárquicas. La configuración predeterminada es false.
spec.hierarchyController.enablePodTreeLabels Si es true, se habilita la observación jerárquica de cargas de trabajo. La configuración predeterminada es false.

Ejemplo de gcloud apply spec

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root
  hierarchyController:
    enabled: false