Используйте Helm 3 для существующих ресурсов, развернутых с помощью kubectl - PullRequest
0 голосов
/ 12 апреля 2020

Мы использовали для развертывания ресурсов kubernetes обычную команду kubectl для служб, развертываний, configmap ... et c. Теперь нам нужно начать использовать Helm 3 и интегрировать его в наши конвейеры, но когда я пытаюсь запустить команду обновления helm, выдается следующее сообщение об ошибке: Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: default

Итак, эти ресурсы никогда не создавались с помощью helm как это было создано с помощью команды kubcetl apply.

Просто нужно знать, как использовать Helm в конвейере без воссоздания ресурсов k8s. Единственный обходной путь, который я нашел, чтобы заставить его работать, состоял в том, чтобы удалить ресурсы и повторно развернуть их, используя Helm.

Ниже приведена команда, которую я попробовал: helm upgrade --atomic --debug --install --force test .

Спасибо, Али

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Честно говоря, пока ответ FL3 SH - это то, что вы ищете ... лучший выбор - просто удалить ресурсы k8s. Есть несколько исключений из этого:

  1. Ваша диаграмма управления пытается создать пространство имен (например, по умолчанию)
  2. Ваши развертывания не могут быть закрыты в течение какого-либо времени
  3. Ваш Хелм-чарт имеет постоянные заявки на объем
0 голосов
/ 13 апреля 2020

Вы можете добавить все метки / аннотации руля. Вы можете проверить все метки рулевого управления и компоненты пыльника с помощью helm template. Тогда вы можете использовать kubectl label или kubectl annotate для добавления отсутствующих ярлыков / аннотаций.

Лично я никогда не пробовал, потому что это слишком много работы, и в конце концов, вам придется воссоздавать модули с новыми ярлыками, если они управляются развертыванием / набором состояний.

...