Configura el Sincronizador de configuración con 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 instalarlo 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 valores predeterminados del Sincronizador de configuración, controlar la verificación del certificado SSL y usar una autoridad certificadora.

Crea y edita el archivo de configuración de RootSync

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

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

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 ni en Google Cloud CLI. Si deseas crear y actualizar objetos RootSync o RepoSync directamente con los comandos kubectl, consulta los campos RootSync y RepoSync.

Antes de realizar cambios en el archivo YAML que creas 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 aparecen en esta tabla, el Sincronizador de configuración revierte los cambios de forma automática a los valores que estableciste la última vez que configuraste el Sincronizador de configuración en la consola de Google Cloud o Google Cloud CLI.

Clave Descripción
spec.git.noSSLVerify noSSLVerify especifica si se habilita o inhabilita la verificación del certificado SSL. Predeterminado: false.
Si noSSLVerify se configura como true, le indica a Git que omita la verificación del certificado SSL.
spec.git.caCertSecretRef.name El nombre del Secret que contiene el certificado de la autoridad certificadora (CA). Si se proporciona este campo, el servidor Git debe usar un certificado emitido por esta CA. El certificado de CA debe almacenarse en el Secret con una clave llamada “cert”.
spec.override.resources La lista de solicitudes de recursos de contenedor y anulaciones de límites. Opcional.
Cada elemento de la lista contiene tres campos:
  • containerName: Este campo puede ser git-sync, oci-sync, hydration-controller o reconciler.
  • cpuRequest (opcional)
  • cpuLimit (opcional)
  • memoryRequest (opcional)
  • memoryLimit (opcional)

Cuando no se proporciona un valor de anulación para una solicitud o un límite de recursos, se usa el valor de recurso predeterminado de la solicitud o el límite.
spec.override.gitSyncDepth gitSyncDepth te permite anular la cantidad de confirmaciones de Git que deseas recuperar.
No debe ser menor que 0.
El Sincronizador de configuración realiza 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, el Sincronizador de configuración lo configura automáticamente.
spec.override.statusMode statusMode te permite habilitar o inhabilitar la captura del estado a nivel de recursos.
El valor predeterminado es enabled.
Para inhabilitar la captura del estado a nivel de recurso, establece este campo en disabled.
spec.override.reconcileTimeout reconcileTimeout te permite anular el umbral de tiempo de espera para que los recursos de un grupo de aplicación se concilien antes de renunciar. Todos los recursos de una confirmación pueden estar en varios grupos de aplicación según las dependencias.
El tiempo de espera predeterminado es 5m.
Usa una cadena para especificar el valor de este campo, por ejemplo, 30s, 5m.
spec.override.enableShellInRendering enableShellInRendering especifica si se habilita o inhabilita el acceso al shell en el proceso de renderización. Las bases remotas de Kustomize requieren acceso de shell. Configurar este campo en true habilita el acceso al shell en el proceso de renderización y 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, 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: Es 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: el ID de tu proyecto
  2. Copia la información de configuración del objeto RootSync que creó el 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 el 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 tus cambios, consulta el objeto RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Para verificar que tus cambios no hayan generado ningún error, usa el comando nomos status:

    nomos status
    

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

Si borras un objeto RootSync o RepoSync, no se limpiarán las anotaciones ni las etiquetas del Sincronizador de configuración. Para limpiar los recursos administrados, realiza la sincronización desde un directorio Git vacío.

¿Qué sigue?