Несколько установок в разные пространства имен одной и той же рулевой диаграммы с ресурсами в области кластера

#kubernetes #cloud #kubernetes-helm #helm3

Вопрос:

Мне нужно установить одну и ту же диаграмму управления в разные пространства имен, поэтому несколько раз. Диаграмма содержит ресурсы в области кластера, такие как ClusterRoles или CustomResourceDefinitions.

Проблема в том, что я могу установить его только один раз, во второй раз у меня появляется ошибка «уже существует, не управляется helm».

Что я пробовал:

  • Помещение CRD в отдельную папку работает хорошо, за исключением того, что я не могу, поскольку мои CRD содержат значения helm, а папка crds не принимает шаблоны.
  • Используя что-то вроде этого:
 {{- $crds := lookup "apiextensions.k8s.io/v1" "CustomResourceDefinition" .Release.Namespace "path.to.new.crd" -}}
{{- if not $crds -}}
{{- end }}
 

Но это тоже не идеально, потому что, если я дважды установлю один и тот же helm в одно и то же пространство имен, ресурсы будут удалены, в третий раз они появятся снова, в четвертый раз они исчезнут и так далее.

У кого-нибудь есть более элегантное решение для этого?

Комментарии:

1. Это общедоступная диаграмма или вы сделали это самостоятельно? Можете ли вы поделиться этим? Возможно, ваше единственное решение — использовать отдельные диаграммы для CRD, следуя рекомендациям по диаграммам

2. Например, когда основным способом установки Istio было использование Helm, у него была «диаграмма инициализации», которая содержала только CRD, а затем основную диаграмму инфраструктуры.