Параметры чарта (values.yaml)#

В этом разделе описан полный набор параметров, которые можно задать в файле values.yaml для чарта gs-ctk. Вы можете переопределить их при вызове helm install/upgrade через --set или передав свой values.yaml.

Основные настройки развёртывания#

  • imageRepository – реестр Docker-образов (без тега).
    По умолчанию: "dockerhub.global-system.ru".

  • imageTag – тег образов. Если не задан, используется версия Helm-чарта.
    По умолчанию: "".

  • imagePullSecret – имя секрета Kubernetes для доступа к реестру (если требуется авторизация).
    По умолчанию: "".

  • imageMode – режим формирования ссылок на образы:

    • tag – старый режим: imageRepository:imageTag.

    • digestAuto – digest рабочих образов берутся из встроенного в nsctl lock-файла (рекомендуется).

    • digestManual – digest берутся из параметра imageDigests.
      По умолчанию: "tag".

  • imageDigests – список digest для ручного режима. Каждый элемент имеет вид:

    - image: nsctl  
      digest: sha256:...  
    

    По умолчанию: пустой список.

  • deploymentType – какие ресурсы создавать:

    • cluster – только ресурсы уровня кластера (namespace, RBAC).

    • namespace – только ресурсы уровня пространства имён (контроллер пространства, ConfigMap).

    • both – всё вместе.
      По умолчанию: "both".

  • timezone – часовой пояс для подов.
    По умолчанию: "Europe/Moscow".

  • nsctlDebugEnabled – включить отладку для nsctl (больше логов).
    По умолчанию: false.

  • namespaceSuffix – суффикс, добавляемый к имени Helm-релиза, чтобы получить имя namespace.
    По умолчанию: "".

  • privilegedSubjects – список субъектов (User, Group, ServiceAccount), которым даются права на управление GlobalConfiguration и ресурсами в namespace.
    Пример:

    - kind: User
      name: gs_admin
    

    По умолчанию: пустой список.

  • overrideNsctlServiceAccount – переопределить ServiceAccount для пода nsctl (обычно создаётся автоматически).
    По умолчанию: "".

  • overrideWorkerServiceAccount – переопределить ServiceAccount для рабочих подов (например, globalserver).
    По умолчанию: "".

  • podAnnotations, podLabels – дополнительные аннотации и лейблы для всех подов.
    По умолчанию: пустые словари.

  • nodeSelector, tolerations, affinity – стандартные параметры для размещения подов на узлах.
    По умолчанию: пустые.

  • nsctlResources – запросы и лимиты ресурсов для пода nsctl.
    Пример:

    requests: 
      cpu: 1  
      memory: 1G
    limits:
      cpu: 1
      memory: 1G
    

    Это же значение по умолчанию.

Системное хранилище (systemVolume)#

Обязательный блок, описывающий NFS-шару для хранения комплектов приложений.

systemVolume:
  nfs:
    server: "10.10.0.1"   # IP или DNS NFS-сервера
    path: "/export"       # путь на сервере

Управление секретами#

  • addSecrets – создавать ли стандартный набор секретов (администратор Global и т.д.).
    По умолчанию: false.

  • secrets – словарь, где ключ – имя секрета, а значение – его спецификация (как в ресурсе Secret).

Пример:

addSecrets: true
secrets:
  gs-admin-auth:
    type: kubernetes.io/basic-auth
    stringData:
      username: admin
      password: "PLACEHOLDER"

Осторожно

Напоминаем, что хранить секреты в файле values.yaml, особенно в git-репозитории, небезопасно. Все чувствительные данные передавайте через переменные CI/CD или другие безопасные инструменты, такие как SOPS или внешние операторы типа Sealed Secrets.

Конфигурация группы ресурсов (helmResgroup)#

Кластерная утилита синхронизирует ресурсы кластера с настройками, описанными в GlobalConfigration и NamespacedGlobalConfiguration. Helm-чартом может быть создан конфигурационный ресурс по умолчанию с переопределением настройками из values.yaml. Для создания ресурса, необходимо добавить:

helmResgroup:
  enabled: true
  database_url: jdbc:postgresql://database.local/global
  appvol:
    path: /app
    server: nfs.local
    type: nfs

Если указать enabled: false, то конфигурационный ресурс создаваться не будет.

Созданный конфигурационный ресурс будет содержать большинство книг по умолчанию. Он будет использовать те секреты, что создаются чартом по умолчанию при использовании addSecrets: true.

Вы можете переопределять параметры дальше, добавляя нужные настройки. Например, включить Java 21 и увеличить количество реплик:

helmResgroup:
  java_version: "21"
  resbooks:
  - name: global-server-share
    replicas: 10
    type: global_server_share
  ...