Как заменить значения руля.yaml с помощью сгенерированного kustomize configMapGenerator имени?

#kubernetes-helm #kustomize

Вопрос:

Я использую kustomize для генерации различных configMap , как в следующем примере: —

 # kustomization.yaml

configMapGenerator:
- name: my-config-path # <-- My original name.
  files:
  - file1.txt
  - file2.txt
  - ...
  - fileN.txt
 

Результат выглядит как в следующем примере: —

 # my-configmap.yaml

apiVersion: v1
data:
  file1.txt: |
  ...
  file2.txt: |
  ...
  fileN.txt |
  ...
kind: ConfigMap
metadata:
  name: my-config-path-mk89db6928 # <-- There is a hashed value appended at the end.
 

С другой стороны, у меня есть сторонняя helm программа, которая требует переопределения values.yaml , как показано ниже: —

 # third-party-chart-values.yaml

customArguments:
  - --config.dir=/config
...

volumes:
  - mountPath: /config
    name: my-config-path # <--- Here, I would like to replace with `my-config-path-mk89db6928`.
    type: configMap
 

Есть ли у нас какой-либо способ заменить my-config-path at third-party-chart-values.yaml на сгенерированное значение my-config-path-mk89db6928 из названного файла my-configmap.yaml ? (Обратите внимание, что при configMap изменении хэширования, например mk89db6928 , также может быть изменен.)

Ответ №1:

Вы хотите сохранить хэш? Потому что вы могли бы предотвратить это с помощью:

 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
generatorOptions:
  disableNameSuffixHash: true
 

Тогда у тебя было бы предсказуемое имя. Хотя это могло бы привести к конфликту, если бы вы установили одну и ту же диаграмму управления более одного раза в одном и том же пространстве имен.