Я использую пакет Helm Zero to Jupyterhub по порядку для развертывания Jupyterhub в нашем кластере кубернетов. Для отдельных изображений записной книжки требуются некоторые дополнительные переменные среды (в основном информация о подключении к базе данных), и я хотел бы, чтобы они отображали значения из существующего секрета в пространстве имен k8s. Как мне это сделать?
Наивный подход с использованием следующей конфигурации не работает:
singleuser:
extraEnv:
SECURE_ENVIRONMENT_VARIABLE:
valueFrom:
secretKeyRef:
name: secret
value: key
В результате SECURE_ENVIRONMENT_VARIABLE
устанавливается на map[valueFrom:map[secretKeyRef:map[name:secret value:key]]]
.
Я также пробовал использовать singleuser.extraConfig
для установки c.KubeSpawner.extra_container_config
в соответствии с документами конфигурации KubeSpawner, но если вы используете это для установки env
, он, по-видимому, перезаписывает существующие переменные среды, что нарушает работу системы:
extraConfig: |
c.KubeSpawner.extra_container_config = {
"env": [
{
"name": "SECURE_ENVIRONMENT_VARIABLE",
"value": "test" # even a hardcoded value results in the container failing
}
]
}
Для записи, я бы нормально создал развертывание .yaml через helm upgrade --debug --dry-run
и при необходимости отредактировал его вручную, я просто не могу понять, как получить эту информацию в динамически порождаемых модулях.