Como excluir namespaces do Policy Controller

Este tópico descreve como remover um namespace da aplicação com o Policy Controller configurando Namespaces isentos.

Antes de começar

Tenha o Anthos Config Management e o Policy Controller no cluster.

Namespaces isentos

A configuração de um namespace dispensável permite que o usuário aplique o rótulo admission.gatekeeper.sh/ignore. Quando você configura um Namespace suscetível de isenção, o Policy Controller não remove o aplicativo desse rótulo para um Namespace.

Como isentar namespaces da aplicação

Para isentar os Namespaces e aplicar o rótulo admission.gatekeeper.sh/ignore, adicione o nome do Namespace ao manifesto ConfigManagement em spec.policyController.exemptableNamespaces.

# config-management.yaml

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
  namespace: config-management-system
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: cluster-name
  # Set to true to install and enable Policy Controller
  policyController:
    enabled: true
    exemptableNamespaces: ["namespace-name"]
...

Você pode isentar vários namespaces. Por exemplo, para isentar os namespaces not-applicable e also-not-applicable no cluster my-cluster, você aplicaria o seguinte manifesto:

# config-management.yaml

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
  namespace: config-management-system
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: my-cluster
  # Set to true to install and enable Policy Controller
  policyController:
    enabled: true
    exemptableNamespaces: ["not-applicable","also-not-applicable"]
...

Rotular o namespace

Em seguida, rotule seus namespaces para que o Operator não imponha o conteúdo.

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