Como configurar clusters e objetos com escopo de cluster

Nesta página, explicamos como configurar clusters e objetos com escopo de cluster. Leia também sobre Como configurar namespaces e objetos com escopo de namespace.

Em repositórios não estruturados, é possível organizar configurações para clusters e objetos com escopo de cluster no repositório da maneira que for mais conveniente. Se você não incluir um ClusterSelector no respositório, todas as configurações de objetos com escopo de cluster serão aplicadas a todos os clusters inscritos no Config Sync.

Em repositórios hierárquicos, todos os configs de clusters e objetos com escopo de cluster estão localizados no diretório cluster/ de um repositório hierárquico. 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 o config estiver dentro do subdiretório namespaces/ de um repositório hierárquico, 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.

Como configurar CustomResourceDefinitions

O Config Sync permite sincronizar CustomResourceDefinitions (CRDs) do mesmo modo que você sincronizaria qualquer outro recurso. Ao sincronizar CRDs, você precisa considerar alguns fatores.

  • Os CRDs em repositórios hierárquicos, mesmo ao declarar um recurso personalizado com namespace, precisam ser colocados no diretório cluster/.

  • As atualizações nos CRDs e nos respectivos CustomResources não ocorrem em uma ordem previsível. Quando essas modificações são feitas na mesma confirmação, as atualizações de CRD não necessariamente ocorrem antes dos CustomResources. Isso pode fazer com que os nomos status informem um erro transitório por um breve período, até que o CustomResource e o CRD estejam presentes no cluster.

  • No Config Sync não é permitido a remoção de um CRD se qualquer CustomResource no repositório depender dele. Para remover um CRD, você também precisa excluir o respectivo CustomResource. Recomendamos que você os remova na mesma confirmação do repositório.

  • É possível sincronizar apenas um CustomResource, e não o respectivo CRD. Para isso, você precisa garantir que o CRD já exista no cluster.

A seguir