Como configurar clusters e objetos com escopo de cluster

No tópico sobre como trabalhar com configs, você aprendeu a escrever configs em geral. Neste tópico, abordamos mais detalhes sobre como usar o Config Sync para configurar clusters e objetos com escopo de cluster. Leia também sobre Como configurar namespaces e objetos com escopo de namespace.

Todos os configs de clusters e objetos com escopo de cluster estão localizados no diretório cluster/ do repo. Se você não incluir um ClusterSelector em seu repo, um config em cluster/ será aplicado a todos os clusters registrados no Config Sync.

Como limitar quais clusters são impactados por um config

Normalmente, o Config Sync aplica um config a cada cluster inscrito. Se ele estiver no subdiretório namespaces/, o Config Sync criará primeiro o namespace em cada cluster. Depois, ele aplicará todos os configs herdados a esse namespace.

No entanto, se você precisar aplicar um config a um subconjunto de clusters, poderá adicionar uma anotação ou ClusterSelector às configurações. Para saber como usar esses recursos, consulte Como configurar apenas um subconjunto de clusters.

Como configurar os rótulos do cluster

É possível usar um config de cluster para definir os rótulos e as anotações de um cluster. Se você usar ClusterSelectors, cada cluster precisará de um conjunto de rótulos que o ClusterSelector possa selecionar. Ainda que você possa rotular clusters manualmente, recomendamos configurar rótulos usando um config de Cluster.

Exemplo de config ClusterRole

Esse config cria um ClusterRole chamado namespace-reader, que permite ler todos os objetos namespace de namespace no cluster. Um config ClusterRole costuma ser usado com um config ClusterRoleBinding.

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: namespace-reader
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "watch", "list"]

Exemplo de config ClusterRoleBinding

Esse config cria um ClusterRoleBinding chamado namespace-readers. Ele concede ao usuário cheryl@foo-corp.com o ClusterRole namespace-reader em todos os clusters registrados.

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: namespace-readers
subjects:
- kind: User
  name: cheryl@foo-corp.com
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: namespace-reader
  apiGroup: rbac.authorization.k8s.io

A seguir