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.helm |
Todos los campos de configuración del repositorio de Helm. |
spec.override |
Todos los campos para anular las configuraciones predeterminadas. |
spec.git.noSSLVerify |
Especifica si se debe habilitar o inhabilitar la verificación del certificado SSL de Git. El valor predeterminado es false.
|
spec.git.caCertSecretRef.name |
Nombre del secreto que contiene el certificado de la autoridad de certificación (CA) de un repositorio de Git. |
spec.oci.caCertSecretRef.name |
Nombre del secreto que contiene el certificado de la autoridad de certificación (CA) de un repositorio de OCI. |
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_IDHaz los cambios siguientes:
CLUSTER_NAME: el nombre del clúster que tiene la configuración de Config Sync que quieres cambiarZONE: la zona en la que has creado el clústerPROJECT_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.yamlSustituye
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 omittedAplica los cambios al archivo YAML:
kubectl apply -f FILE_NAME.yamlPara verificar que Config Sync ha aplicado los cambios, consulta el objeto RootSync:
kubectl describe rootsync root-sync -n config-management-systemPara verificar 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 nombresconfig-management-system. Por ejemplo:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILECuando configures el objeto
RootSync, asigna el valor ROOT_CA_CERT_SECRET_NAME al campocaCertSecretRef.namedel objetoRootSync.
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_FILECuando configures
RepoSync, asigna el valor NAMESPACE_CA_CERT_SECRET_NAME al campocaCertSecretRef.namedel objetoRepoSync.
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.