Вы можете автоматизировать назначение лейблов и аннотаций пространствам имён в кластере Deckhouse на основе заданных шаблонов. Это полезно, например, когда нужно автоматически включать новые пространства имён в мониторинг без ручного редактирования каждого из них.
Как это работает
- Все пространства имён, чьи названия совпадают с шаблонами в
includeNamesи не совпадают с шаблонами вexcludeNames, получают указанные лейблы и аннотации. - При изменении конфигурации лейблы и аннотации на существующих пространствах имён обновляются автоматически.
- Новые пространства имён, подходящие под условия шаблонов, также получают нужные лейблы и аннотации автоматически.
Настройка автоматического назначения лейблов и аннотаций
Включите модуль namespace-configurator:
d8 system module enable namespace-configurator
Настройте автоматическое назначение лейблов и аннотаций в ModuleConfig namespace-configurator:
- Перечислите аннотации и лейблы, которые должны применяться к пространствам имён, в полях
settings.configurations.annotationsиsettings.configurations.labelsсоответственно; - Укажите шаблоны названий пространств имён, к которым должны применяться настройки:
- в поле
includeNamesперечислите регулярные выражения, соответствующие нужным названиям; - в поле
excludeNamesперечислите те, которые нужно исключить.
- в поле
Пример конфигурации
В следующем примере конфигурации настраивается автоматическое добавление лейбла extended-monitoring.deckhouse.io/enabled=true и аннотации foo=bar ко всем пространствам имён, названия которых начинаются с prod- или infra-, за исключением infra-test:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: namespace-configurator
spec:
version: 1
enabled: true
settings:
configurations:
- annotations:
foo: bar
labels:
extended-monitoring.deckhouse.io/enabled: "true"
includeNames:
- "^prod"
- "^infra"
excludeNames:
- "infra-test"