Excluye espacios de nombres del webhook de admisión del controlador de políticas

En esta página, se describe cómo configurar espacios de nombres que se pueden eximir. Los espacios de nombres exentos quitan un espacio de nombres de la aplicación del webhook de admisión con el controlador de políticas, pero aún se informan las infracciones en auditoría. Si no configuras ningún espacio de nombres, solo el espacio de nombres gatekeeper-system está exento de la aplicación.

Antes de comenzar

Para seguir los comandos de esta página, instala el controlador de políticas en tu clúster. Sin embargo, también puedes habilitar los espacios de nombres que se pueden eximir cuando instalas el controlador de políticas por primera vez.

Cómo configurar espacios de nombres que se pueden eximir

Configurar un espacio de nombres exento te permite aplicar la etiqueta admission.gatekeeper.sh/ignore. Si luego quitas un espacio de nombres exento, el controlador de políticas no quitará la aplicación de esta etiqueta a ese espacio de nombres.

Exime espacios de nombres de la aplicación

Antes de aplicar la etiqueta admission.gatekeeper.sh/ignore, debes agregar el nombre del espacio de nombres cuando configuras el controlador de políticas.

Console: Anthos

  1. En Cloud Console, ve a la página Anthos Config Management.

    Ir a Anthos Config Management

  2. Selecciona los clústeres registrados en los que deseas habilitar esta función y haz clic en Configurar.

  3. Haz clic en Configuración de ACM para tus clústeres.

  4. En el campo Eximir espacios de nombres, proporciona una lista de espacios de nombres válidos. Todas las políticas ignoran los objetos de estos espacios de nombres. No es necesario que los espacios de nombres existan.

  5. Haz clic en Listo.

Console: GKE

  1. En Cloud Console, ve a la página Config Management.

    Ir a Config Management

  2. Junto al clúster en el que deseas habilitar la función, haz clic en Editar.

  3. En el menú izquierdo, haz clic en Controlador de políticas.

  4. En el campo Eximir espacios de nombres, proporciona una lista de espacios de nombres válidos. Todas las políticas ignoran los objetos de estos espacios de nombres. No es necesario que los espacios de nombres existan.

  5. Haz clic en Completar.

gcloud

  1. Para eximir un espacio de nombres de la aplicación, agrega el nombre del espacio de nombres en spec.policyController.exemptableNamespaces:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["NAMESPACE_NAME"]
    ...
    

    También puedes eximir varios espacios de nombres. Por ejemplo, para eximir los espacios de nombres not-applicable y also-not-applicable, debes aplicar el siguiente manifiesto:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["not-applicable","also-not-applicable"]
    ...
    
  2. Aplica los cambios al archivo apply-spec.yaml:

     gcloud beta container hub config-management apply \
         --membership=MEMBERSHIP_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • MEMBERSHIP_NAME: agrega el clúster registrado al que deseas aplicar esta configuración. Si registraste el clúster en Google Cloud Console, el nombre de la membresía es el mismo que el de tu clúster.
    • CONFIG_YAML: Agrega la ruta de acceso a tu archivo apply-spec.yaml.
    • PROJECT_ID: Agrega el ID de tu proyecto.

Etiqueta el espacio de nombres

Después de habilitar la función, etiqueta tus espacios de nombres para que el webhook de admisión del controlador de políticas no aplique su contenido:

kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"