Думаю, ваш главный вопрос:
У меня уже есть некоторые настраиваемые ресурсы, поэтому я хочу их переустановить.
Что означает УДАЛИТЬ затем СОЗДАТЬ снова.
Короткий ответ
Нет .. но это можно сделать с помощью обходного пути
Подробный ответ
Helm управляет ВЫПУСКОМ манифестов Kubernetes:
- создание
helm install
- обновление
helm upgrade
- удаление
helm delete
Однако вы можете воссоздать ресурсы одним из следующих способов:
1. Дважды последовательное обновление
Если ваша диаграмма предназначена для включения / отключения установки ресурсов с значениями (. Например: .Values.customResources.enabled
), вы можете сделать следующее:
helm -n namespace upgrade <helm-release> <chart> --set customResources.enabled=false
# Then another Run
helm -n namespace upgrade <helm-release> <chart> --set customResources.enabled=true
Итак, если вы строите диаграмму, ваша задача - сделать дизайн функциональным.
2. Использование перехватчиков helmfile
Helmfile - это Helm of Helm.
Он управляет выпусками вашего руля в одном файле с именем helmfile.yaml
.
Не только это, но он также может вызывать некоторые ЛОКАЛЬНЫЕ команды до / или / после установки / или / обновления выпуска Helm. Этот вызов, который происходит до или после, называется hook .
В вашем случае вам понадобится presyn c hook.
If мы организуем ваш выпуск Helm как определение Helmfile, это должно быть:
releases:
- name: <helm-release>
chart: <chart>
namespace: <namespace>
hooks:
- events: ["presync"]
showlogs: true
command: kubectl
args: [ "-n", "{{`{{ .Release.Namespace }}`}}", "delete", "crd", "my-custom-resources" ]
Теперь вам просто нужно запустить helmfile apply
Я знаю, что CRD не имеет пространства имен, но я помещаю пространство имен в ловушке, чтобы продемонстрировать, что Helmfile может предоставить вам пространство имен выпуска как переменную, и вам не нужно повторять себя.