Configurar Config Sync con comandos kubectl

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:

  1. 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
  2. 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_NAME por el nombre que quieras darle al archivo de configuración.

  3. 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
    
  4. Aplica los cambios al archivo YAML:

    kubectl apply -f FILE_NAME.yaml
    
  5. Para verificar que Config Sync ha aplicado los cambios, consulta el objeto RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Para 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

  1. Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo.

  2. 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

  3. Cuando configures el objeto RootSync, asigna el valor ROOT_CA_CERT_SECRET_NAME al campo caCertSecretRef.name del objeto RootSync.

RepoSync

  1. Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo.

  2. 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

  3. Cuando configures RepoSync, asigna el valor NAMESPACE_CA_CERT_SECRET_NAME al campo caCertSecretRef.name del 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