Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки

Включение AutoVPA для всех пространств имен

Чтобы включить контроллер AutoVPA для всех пространств имен в кластере, установите settings.autovpa.enabled в true без дополнительных фильтров:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: adaptive-resource-management
spec:
  version: 1
  enabled: true
  settings:
    autovpa:
      enabled: true

В этом режиме AutoVPA создает объекты VPA для рабочих нагрузок в каждом пространстве имен.

Включение AutoVPA для определенных пространств имен с помощью label selector

Чтобы ограничить AutoVPA пространствами имен, соответствующими label selector, используйте параметр namespaceLabelSelector:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: adaptive-resource-management
spec:
  version: 1
  enabled: true
  settings:
    autovpa:
      enabled: true
      namespaceLabelSelector:
        matchLabels:
          env: prod

AutoVPA будет управлять только пространствами имен с лейблом env: prod.

Включение AutoVPA для пространств имен со специальным лейблом

Чтобы управлять только пространствами имен, явно отмеченными лейблом autovpa.deckhouse.io/enabled: "true", используйте параметр onlySpecialLabel:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: adaptive-resource-management
spec:
  version: 1
  enabled: true
  settings:
    autovpa:
      enabled: true
      onlySpecialLabel: true

Затем добавьте лейбл к нужным пространствам имен:

d8 k label namespace my-namespace autovpa.deckhouse.io/enabled=true

Комбинирование label selector со специальным лейблом

Когда одновременно заданы onlySpecialLabel и namespaceLabelSelector, итоговый список управляемых пространств имен формируется как объединение обоих наборов:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: adaptive-resource-management
spec:
  version: 1
  enabled: true
  settings:
    autovpa:
      enabled: true
      onlySpecialLabel: true
      namespaceLabelSelector:
        matchLabels:
          team: backend

В этом примере AutoVPA будет управлять пространствами имен, которые имеют лейбл team: backend или лейбл autovpa.deckhouse.io/enabled: "true" (или оба).

Сводная таблица поведения выбора пространств имен

onlySpecialLabel namespaceLabelSelector Управляемые пространства имен
false не задан Все пространства имен
false задан Только пространства имен, соответствующие selector
true не задан Только пространства имен с лейблом autovpa.deckhouse.io/enabled: "true"
true задан Объединение: пространства имен, соответствующие selector + пространства имен со специальным лейблом