En esta página se explica cómo configurar Config Sync con comandos kubectl después de instalar Config Sync con la consola Google Cloud o la CLI de Google Cloud.
Aunque puedes hacer muchos cambios en la configuración mediante la consola o la CLI, debes usar los comandos kubectl para anular algunos valores predeterminados de Config Sync, controlar la verificación de certificados SSL y usar una autoridad de certificación.
Crear y editar el archivo de configuración de RootSync
Para configurar Config Sync con comandos kubectl, edita un objeto RootSync creando un archivo YAML.
Cuando instalas Config Sync mediante la consola o la CLI de Google Cloud, Config Sync crea automáticamente un objeto RootSync llamado root-sync. Google Cloud Este objeto contiene la información de configuración más reciente de Config Sync. Cada vez que hagas un cambio en la Google Cloud consola o en la interfaz de línea de comandos de Google Cloud, root-sync se actualizará.
Información sobre los campos que puedes editar con kubectl
Puedes hacer cambios avanzados en root-sync con los comandos de kubectl para los campos que no se admiten en la consola de Google Cloud ni en la CLI de Google Cloud. Si quieres crear y actualizar objetos RootSync o RepoSync directamente mediante comandos kubectl, consulta Campos de RootSync y RepoSync.
Antes de hacer cambios en el archivo YAML que crees en la siguiente sección, consulta la tabla que aparece a continuación. En esta tabla se indican los campos que puede editar y añadir. Si editas campos que no aparecen en esta tabla, Config Sync revertirá automáticamente los cambios a los valores que hayas definido la última vez que configuraste Config Sync en la Google Cloud consola o en la CLI de Google Cloud.
| Clave | Descripción | 
|---|---|
| spec.git.noSSLVerify | noSSLVerifyespecifica si se habilita o inhabilita la verificación del certificado SSL. Valor predeterminado:false.Si noSSLVerifytiene el valortrue, indica a Git que omita la verificación del certificado SSL. | 
| spec.git.caCertSecretRef.name | Nombre del secreto que contiene el certificado de la autoridad de certificación (CA). Si se proporciona este campo, el servidor Git debe usar un certificado emitido por esta CA. El certificado de la AC debe almacenarse en el secreto con la clave `cert`. | 
| spec.override.resources | Lista de solicitudes de recursos de contenedor y anulaciones de límites. Opcional. Cada elemento de la lista contiene tres campos: 
 Si no se proporciona un valor de sustitución para una solicitud o un límite de recursos, se utiliza el valor de recurso predeterminado de la solicitud o el límite. | 
| spec.override.gitSyncDepth | gitSyncDepthte permite anular el número de confirmaciones de Git que se van a obtener.Debe ser igual o superior a 0. Config Sync hace 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, Config Sync lo configura automáticamente. | 
| spec.override.statusMode | statusModete 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, asigna el valor disableda este campo. | 
| spec.override.reconcileTimeout | reconcileTimeoutte permite anular el umbral de tiempo que se espera a los recursos de un grupo de aplicaciones para conciliarse antes de abandonar. Todos los recursos de una confirmación pueden estar en varios grupos de aplicación en función de las dependencias.El tiempo de espera predeterminado es 5m.Usa una cadena para especificar el valor de este campo; por ejemplo, 30s5m. | 
| spec.override.enableShellInRendering | enableShellInRenderingespecifica si se habilita o inhabilita el acceso a la shell en el proceso de renderización. Las bases remotas de Kustomize requieren acceso a la shell. Si se asigna el valortruea este campo, se habilita el acceso a shell en el proceso de renderización y se admite la extracción de bases remotas de repositorios públicos.El valor predeterminado es false. | 
Crea el archivo
Para crear y editar un archivo de configuración de root-sync, sigue estos pasos:
- Para asegurarte de que obtienes la información de configuración del clúster correcto, configura el acceso a la línea de comandos - kubectl:- gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_ID- Haz los cambios siguientes: - CLUSTER_NAME: el nombre del clúster que tiene la configuración de Config Sync que quieres cambiar
- ZONE: la zona en la que has creado el clúster
- PROJECT_ID: tu ID de proyecto
 
- Copia la información de configuración del objeto RootSync que ha creado Config Sync en un archivo YAML: - kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yaml- Sustituye - FILE_NAMEpor el nombre que quieras darle al archivo de configuración.
- Abre el archivo YAML que has creado y haz los cambios de configuración necesarios. Por ejemplo, para anular el límite de memoria del contenedor - git-sync, añade los siguientes campos en negrita:- apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omitted
- Aplica los cambios al archivo YAML: - kubectl apply -f FILE_NAME.yaml
- Para verificar que Config Sync ha aplicado los cambios, consulta el objeto RootSync: - kubectl describe rootsync root-sync -n config-management-system
- Para comprobar que los cambios no han introducido ningún error, usa el comando - nomos status:- nomos status
Configurar autoridad de certificación
En el caso de los servidores configurados con certificados de una autoridad de certificación (CA) que aún no sea de confianza, Config Sync se puede configurar para que use un certificado de CA con el fin de verificar las conexiones HTTPS al servidor. Esta opción se admite en servidores Git, Helm u OCI. El certificado de la AC
debe incluir certificados SSL completos (raíz, intermedio y hoja).
Si tu servidor ya usa una autoridad de certificación de confianza o no te conectas a través de HTTPS, puedes saltarte este paso y dejar caCertSecretRef sin definir.
RootSync
- Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo. 
- En el caso de los objetos - RootSync, el secreto debe crearse en el espacio de nombres- config-management-system. Por ejemplo:- kubectl create secret generic ROOT_CA_CERT_SECRET_NAME 
 --namespace=config-management-system
 --from-file=cert=/path/to/CA_CERT_FILE
- Cuando configures el objeto - RootSync, asigna el valor ROOT_CA_CERT_SECRET_NAME al campo- caCertSecretRef.namedel objeto- RootSync.
RepoSync
- Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo. 
- En el caso de los objetos - RepoSync, el secreto debe crearse en el mismo espacio de nombres que el RepoSync. Por ejemplo:- kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME 
 --namespace=REPO_SYNC_NAMESPACE
 --from-file=cert=/path/to/CA_CERT_FILE
- Cuando configures - RepoSync, asigna el valor NAMESPACE_CA_CERT_SECRET_NAME al campo- caCertSecretRef.namedel objeto- RepoSync.
Eliminar el objeto RootSync
Para eliminar root-sync, ejecuta el siguiente comando:
kubectl delete -f FILE_NAME
Sustituye FILE_NAME por el nombre del archivo de configuración de RootSync. Por ejemplo, root-sync.yaml.
Si se elimina un objeto RootSync o RepoSync, no se limpiarán las anotaciones ni las etiquetas de Config Sync. Para limpiar los recursos gestionados, sincroniza desde un directorio de Git vacío.
Siguientes pasos
- Consulta más información sobre los campos de RootSync y RepoSync.
- Descubre cómo monitorizar objetos RootSync y RepoSync.