Я пытаюсь развернуть Redis (путем создания диаграммы Хелма) в качестве StatefulSet в кластере Kubernetes.Я не создаю другой образ Redis поверх официального образа Redis Docker, скорее я просто пытаюсь использовать значения по умолчанию, доступные в Официальном образе Redis Docker , и просто предоставляю свои redis.conf
и requirepass
во время выполнения.
Чтобы предоставить redis.conf
, я использую ConfigMap и монтирую его в /config/redis.conf
в контейнере.
Теперь я хочу передать опцию --requirepass
как args
в Кубернетескак показано ниже:
...
containers: [
{
name: redis,
image: {
repository: redis,
tag: 5.0
},
imagePullPolicy: Always,
workingDir: /data/,
args: [ "/config/redis.conf", "--requirepass", "<password>" ], # line of concern
ports: [
containerPort: 6379
],
env: [
{
name: REDIS_AUTH,
valueFrom: {
secretKeyRef: {
name: redis,
key: password
}
}
}
],
...
Сбой следующей строки:
args: [ "/config/redis.conf", "--requirepass", "${REDIS_AUTH}" ]
и наоборот, это работает:
args: [ "/config/redis.conf", "--requirepass", "$(REDIS_AUTH)" ]
Хотя синтаксис $()
предназначен для подстановки команд, а REDIS_AUTH
является переменной окружения, а не исполняемым файлом, как это работает, а ${REDIS_AUTH}
- нет?