Configura el Sincronizador de configuración con los comandos de kubectl

En esta página, se explica cómo configurar el Sincronizador de configuración con los comandos de kubectl después de instalar el Sincronizador de configuración con la consola de Google Cloud o Google Cloud CLI.

Si bien puedes realizar muchos cambios de configuración con la consola o la CLI, debes usar los comandos de kubectl para anular algunos Sincronizador de configuración Sync, controlar la verificación de certificados SSL y usar una entidad certificadora.

Crea y edita el archivo de configuración de RootSync

Para configurar el Sincronizador de configuración con los comandos de kubectl, debes crear un archivo YAML para editar un objeto RootSync.

Cuando instalas el Sincronizador de configuración con la consola de Google Cloud o Google Cloud CLI, el Sincronizador de configuración crea de forma automática un objeto RootSync llamadoroot-sync. Este objeto contiene la información de configuración más reciente de Sincronizador de configuración. Cada vez que realizas un cambio en la consola de Google Cloud o en Google Cloud CLI, se actualiza root-sync.

Obtén más información sobre los campos que puedes editar con kubectl

Puedes realizar cambios avanzados en root-sync con los comandos de kubectl para los campos que no se admiten en la consola de Google Cloud o en Google Cloud CLI. Si deseas crear y, luego, actualizar objetos RootSync o RepoSync directamente con comandos de kubectl, consulta Campos RootSync y RepoSync.

Antes de realizar cualquier cambio en el archivo YAML que crees en la siguiente sección, familiarízate con la siguiente tabla. En esta tabla, se enumeran los campos que puedes editar y agregar. Si editas campos que no se indican en esta tabla, el Sincronizador de configuración revierte automáticamente los cambios a los valores que estableciste la última vez que configuraste el Sincronizador de configuración en la Google Cloud consola o en Google Cloud CLI.

Clave Descripción
spec.helm Todos los campos para la configuración del repositorio de Helm.
spec.override Son todos los campos para anular la configuración predeterminada.
spec.git.noSSLVerify Especifica si se habilita o inhabilita la verificación del certificado SSL para Git. El valor predeterminado es false.
spec.git.caCertSecretRef.name Nombre del secreto que contiene el certificado de la autoridad certificadora (AC) para un repositorio de Git.
spec.oci.caCertSecretRef.name Nombre del Secret que contiene el certificado de la autoridad certificadora (CA) para un repositorio de OCI.

Crea el archivo

Para crear y editar un archivo de configuración para root-sync, completa los siguientes pasos:

  1. Para asegurarte de recuperar la información de configuración del clúster correcto, configura el acceso a la línea de comandos de kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --zone ZONE \
        --project PROJECT_ID
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre del clúster que tiene la configuración del Sincronizador de configuración que deseas cambiar
    • ZONE: Es la zona en la que creaste el clúster.
    • PROJECT_ID: Es el ID del proyecto.
  2. Copia la información de configuración del objeto RootSync que creó Sincronizador de configuración en un archivo YAML:

    kubectl get rootsync root-sync -n config-management-system -o yaml >
    FILE_NAME.yaml
    

    Reemplaza FILE_NAME por un nombre para tu archivo de configuración.

  3. Abre el archivo YAML que creaste y realiza los cambios de configuración necesarios. Por ejemplo, para anular el límite de memoria del contenedor git-sync, agrega 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 el Sincronizador de configuración haya aplicado los cambios, consulta el objeto RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Para verificar que los cambios no hayan introducido errores, usa el comando nomos status:

    nomos status
    

Configura la autoridad certificadora

En el caso de los servidores configurados con certificados de una autoridad certificadora (AC) que aún no es de confianza, el Sincronizador de configuración se puede configurar para usar un certificado de AC para verificar las conexiones HTTPS al servidor. Esto es compatible con los servidores de Git, Helm o OCI. El certificado de CA debe incluir certificados SSL completos (raíz, intermedio y hoja). Si tu servidor ya usa una CA de confianza o no te conectas a través de HTTPS, puedes omitir este paso y dejar caCertSecretRef sin configurar.

RootSync

  1. Recupera el certificado de CA que se usó para emitir el certificado de tu servidor de Git y guárdalo en un archivo.

  2. En el caso de los objetos RootSync, el Secret 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, establece el valor del campo caCertSecretRef.name en el objeto RootSync como ROOT_CA_CERT_SECRET_NAME.

RepoSync

  1. Recupera el certificado de CA que se usó para emitir el certificado de tu servidor de Git y guárdalo en un archivo.

  2. En el caso de los objetos RepoSync, el Secret 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 el objeto RepoSync, establece el valor del campo caCertSecretRef.name en el objeto RepoSync como NAMESPACE_CA_CERT_SECRET_NAME.

Quita el objeto RootSync

Para borrar root-sync, ejecuta el siguiente comando:

kubectl delete -f FILE_NAME

Reemplaza FILE_NAME por el nombre de tu archivo de configuración de RootSync. Por ejemplo, root-sync.yaml

Borrar un objeto RootSync o RepoSync no borra las anotaciones y etiquetas del Sincronizador de configuración. Para limpiar los recursos administrados, sincroniza desde un directorio de Git vacío.

¿Qué sigue?