Как сослаться на секреты кубернетов в чарте руля?

Я хочу сделать несколько развертываний в кубернетах, используя диаграммы управления. Вот пример yaml значений переопределения, который я использую:

imageRepository: ""

ocbb:
    imagePullPolicy: IfNotPresent
    TZ: UTC
    logDir: /oms_logs
    tnsAdmin: /oms/ora_k8
    LOG_LEVEL: 3
    wallet:
        client: 
        server: 
        root:
    db:
        deployment:
            imageName: init_db
            imageTag:
        host: 192.168.88.80
        port:
        service:
        alias:
        schemauser: pincloud
        schemapass:
        schematablespace: pincloud
        indextablespace: pincloudx
        nls_lang: AMERICAN_AMERICA.AL32UTF8
        charset: AL32UTF8
        pipelineschemauser: ifwcloud
        pipelineschemapass:
        pipelineschematablespace: ifwcloud
        pipelineindextablespace: ifwcloudx
        pipelinealias:
        queuename:

В этом файле я должен установить некоторые значения, включающие учетные данные, например schemapass, pipelineschemapass ... В документации указано, что я должен сгенерировать секреты kubernetes для этого и добавить этот ключ в мой файл yaml с той же иерархией путей.

Я создал несколько секретов кубернетов, например:

kubectl create secret generic schemapass --from-literal=password='pincloud'

Теперь я не знаю, как ссылаться на этот недавно созданный секрет в моем файле yaml. Любой совет о том, как установить поле schemapass в диаграмме yaml для ссылки на секрет кубернетов?


person Tians    schedule 18.10.2019    source источник
comment
Это не диаграмма, это просто файл values.yaml, который устанавливает его начальные параметры. У вас должны быть файлы, которые выглядят как файлы Kubernetes YAML с некоторой дополнительной {{ ... }} разметкой в ​​каталоге templates, и один путь - создать там Secret вместо использования kubectl create. Какой объект Kubernetes должен ссылаться на секрет?   -  person David Maze    schedule 18.10.2019
comment
Правда, я уже редактировал пост, пока вы писали свой комментарий :)   -  person Tians    schedule 18.10.2019
comment
Я правильно вас понял? Вы хотите включить секрет в значения руля? Почему бы не добавить его в шаблон, который создает контейнер?   -  person Crou    schedule 18.10.2019


Ответы (1)


Вы не можете использовать секрет Kubernetes в своем values.yaml. В values.yaml вы указываете только входные параметры для Helm Chart, так что это может быть секретное имя, но не сам секрет (или что-то, что он разрешает).

Если вы хотите использовать секрет в своем контейнере, вы можете вставить его как переменную среды:

env:
- name: SECRET_VALUE_ENV
  valueFrom:
    secretKeyRef:
      name: schemapass
      key: password

Дополнительную информацию можно найти в Hazelcast Enterprise Helm Chart. Мы именно так и поступаем. Вы указываете секретное имя в values.yaml, а затем секрет вводится в контейнер с помощью переменной среды.

person Rafał Leszko    schedule 21.10.2019
comment
Это звучит идеально, но я не могу найти ссылку на это в связанном файле values.yaml. Я нашел запись env: для MC_LICENSE_KEY в других ваших файлах конфигурации, но ничего в values.yaml. - person geedoubleya; 06.03.2020
comment
да, вы не можете определить это прямо в values.yaml. Другими словами, если ваши шаблоны не подготовлены к этому, вы не можете ввести секрет, просто указав что-то в values.yaml. - person Rafał Leszko; 11.03.2020