В одном из моих файлов развертывания я хочу установить переменную среды. Это переменная KUBE_VERSION
, и значения должны быть получены из ConfigMap.
kube_1_21: 1.21.10_1550
Это часть ConfigMap, где я хочу установить 1.21.10_1550
на KUBE_VERSION
, но если кластер IKS 1.20, то ключ будет:
kube_1_20: 1.20.21_3456
kube_
всегда статично. Как я могу установить переменную среды, используя выражение регулярного выражения?
Что-то в этом роде:
- name: KUBE_VERSION
valueFrom:
configMapKeyRef:
name: cluster-info
key: "kube_1*"
Нет. Выдает ошибку. Недопустимое значение: «kube_[0-1][0-9]»: допустимый ключ конфигурации должен состоять из буквенно-цифровых символов, «-», «_» или «.». (например, 'key.name', или 'KEY_NAME', или 'key-name', для проверки используется регулярное выражение '[-._a-zA-Z0-9]+')
Не могли бы вы объяснить, зачем вам нужна эта конфигурация? Обходной путь, возможно, я мог бы найти.
Чтобы развернуть определенные сайдкары в Pod в зависимости от версии kubernetes. Скажем, мне нужен внешний снапшутер только для IKS> 1.23
Вы видели эта страница? В этом упражнении вы создаете под с одним контейнером. Вот файл конфигурации для Pod
Насколько я знаю, к сожалению, невозможно использовать регулярное выражение так, как хотелось бы. Кроме того, у вас есть информация о регулярном выражении, которое проверяет введенные данные:
regex used for validation is '[-._a-zA-Z0-9]+')
Из этого следует, что вы должны ввести key
в виде буквенно-цифровой строки и, кроме того, вы можете использовать символы -
, _
и .
Таким образом, в этом месте невозможно использовать регулярное выражение.
В качестве обходного пути вы можете написать свой собственный скрипт, например, в Bash, и заменить соответствующую строку на команда sed.
key: "kube_1.*"
работает?