Установка и включение Deckhouse Code

  1. ModuleSource. Создайте файл code-module-source.yaml со следующим содержимым:

    1apiVersion: deckhouse.io/v1alpha1
    2kind: ModuleSource
    3metadata:
    4  name: code
    5spec:
    6  registry:
    7    ca: ""
    8    dockerCfg: REPLACE_ME
    9    repo: registry.flant.com/deckhouse/code/module
    10    scheme: HTTPS
    

    dockerCfg — это закодированная в формате base64 часть конфигурационного файла docker-клиента (секция auths).

  2. ModuleUpdatePolicy. Создайте файл code-module-update-policy.yaml со следующим содержимым:

    1apiVersion: deckhouse.io/v1alpha2
    2kind: ModuleUpdatePolicy
    3metadata:
    4  name: code-policy
    5spec:
    6  releaseChannel: EarlyAccess
    7  update:
    8    mode: Auto
    

    releaseChannel определяет канал обновлений (например, EarlyAccess). update.mode указывает режим обновления (в данном примере — Auto).

  3. ModuleConfig. Создайте файл code-module-config.yaml со следующим содержимым:

    1apiVersion: deckhouse.io/v1alpha1
    2kind: ModuleConfig
    3metadata:
    4  name: code
    5spec:
    6  enabled: true
    7  updatePolicy: code-policy
    8  version: 1
    9  settings:
    10    instanceSpec:
    11      gitData:
    12        storageClass: localpath
    13        storagePerReplicaGb: 1
    14      network:
    15        gitSsh:
    16          hostname: ""
    17          service:
    18            type: NodePort
    19      storages:
    20        s3:
    21          bucketNames:
    22            artifacts: <REPLACE_ME>-artifacts
    23            ciSecureFiles: <REPLACE_ME>-ci-secure-files
    24            dependencyProxy: <REPLACE_ME>-dependency-proxy
    25            externalDiffs: <REPLACE_ME>-mr-diffs
    26            lfs: <REPLACE_ME>-lfs
    27            packages: <REPLACE_ME>-packages
    28            terraformState: <REPLACE_ME>-terraform-state
    29            uploads: <REPLACE_ME>-uploads
    30          external:
    31            accessKey: <REPLACE_ME>
    32            provider: YCloud
    33            secretKey: <REPLACE_ME>
    34          mode: External
    35        postgres:
    36          external:
    37            database: app_db
    38            host: <REPLACE_ME>
    39            password: <REPLACE_ME>
    40            praefectDatabase: praefect_db
    41            praefectPassword: <REPLACE_ME>
    42            praefectUsername: code_user
    43            username: code_user
    44          mode: External
    45        redis:
    46          external:
    47            auth:
    48              enabled: true
    49              password: <REPLACE_ME>
    50            host: <REPLACE_ME>
    51            port: 6379
    52          mode: External
    53      targetUserCount: 10
    

    REPLACE_ME — уникальные значения, требующие подстановки, такие как адреса зависимостей, имена пользователей и пароли.

  4. Включение модуля. После создания всех манифестов поочерёдно примените их к целевому кластеру Kubernetes с помощью следующих команд:

    1kubectl apply -f code-module-source.yaml
    2kubectl apply -f code-module-update-policy.yaml
    3kubectl apply -f code-module-config.yaml