Где и как могут храниться Helm-чарты?

Ответ

Helm-чарты (Helm Charts) — это пакеты с преднастроенными ресурсами Kubernetes. Их можно хранить в нескольких местах, в зависимости от потребностей команды и инфраструктуры:

  1. Репозитории чартов (Chart Repositories) Это наиболее распространенный способ. Репозиторий — это обычный HTTP-сервер, который хранит упакованные чарты (.tgz файлы) и специальный файл index.yaml, описывающий их содержимое.

    • Публичные репозитории: Например, Artifact Hub, который является агрегатором многих публичных репозиториев.
    • Частные репозитории: Можно развернуть самостоятельно с помощью таких инструментов, как ChartMuseum, Harbor или Nexus.
      # Добавление репозитория
      helm repo add bitnami https://charts.bitnami.com/bitnami
  2. Локальная файловая система Чарт может храниться просто как директория с файлами на вашем компьютере. Это удобно для разработки и отладки.

    my-chart/
    ├── Chart.yaml      # Метаданные чарта
    ├── values.yaml     # Значения по умолчанию
    ├── templates/      # Шаблоны Kubernetes-манифестов
    └── ...
  3. Системы контроля версий (например, Git) Хранение исходного кода чартов в Git-репозитории — это стандартная практика для реализации подхода GitOps. Инструменты вроде ArgoCD или Flux могут автоматически синхронизировать чарты из Git в кластер Kubernetes.

  4. OCI-совместимые реестры (OCI Registries) Начиная с Helm v3, чарты можно хранить как артефакты в реестрах контейнеров, таких как Docker Hub, Google Container Registry (GCR) или Azure Container Registry (ACR). Это современный подход, унифицирующий хранение Docker-образов и Helm-чартов.

    # Сохранение и отправка чарта в OCI-репозиторий
    helm chart save my-chart my-registry/my-chart:1.0.0
    helm chart push my-registry/my-chart:1.0.0