Как правильно настроить зеркало Helm для использования с Terraform?

У меня возникли трудности с установкой argo-cd в Яндекс.Облаке. Не удается скачать chart по адресу <code>image: quay.io/argoproj/argocd:v2.14.2</code>, из-за чего происходит тайм-аут. Я пробовал указать зеркало репозитория, однако система продолжает пытаться загрузить данные с RH. Вот мой код настройки: <pre><code class="yaml">resource "helm_release" "argocd" {
  namespace        = var.namespace
  dependency_update = true
  create_namespace = true
  name             = var.release_name
  repository       = "https://mirror.yandex.ru/helm/argoproj.github.io/"
  chart            = "argo-cd"
  version          = var.argocd_chart_version</code></pre> <br/> <br/> При этом возникает следующая ошибка:<br/><blockquote><br/>
Failed to pull image "<a href="http://quay.io/argoproj/argocd:v2.14.2" rel="nofollow">quay.io/argoproj/argocd:v2.14.2</a>": rpc error: code = DeadlineExceeded desc = failed to pull and unpack image "<a href="http://quay.io/argoproj/argocd:v2.14.2" rel="nofollow">quay.io/argoproj/argocd:v2.14.2</a>": failed to resolve reference "<a href="http://quay.io/argoproj/argocd:v2.14.2" rel="nofollow">quay.io/argoproj/argocd:v2.14.2</a>": failed to do request: Head "<a href="https://quay.io/v2/argoproj/argocd/manifests/v2.14.2" rel="nofollow">https://quay.io/v2/argoproj/argocd/manifests/v2.14.2</a>": dial tcp 52.2.222.212:443: i/o timeout</blockquote>
  • 11 февраля 2025 г. 22:54
Ответы на вопрос 2
Для успешной установки Argo CD через Helm в Яндекс.Облаке и настройки зеркала для Helm, следует учесть несколько аспектов:

1. **Настройка зеркала Helm**: Убедитесь, что ссылка на зеркало корректна, и репозиторий на этом зеркале действительно содержит необходимые чарты. Например, для Argo CD может быть так:

    ```hcl
    terraform {
      required_providers {
        helm = {
          source  = "hashicorp/helm"
          version = "~> 2.0"
        }
      }
    }

    resource "helm_repository" "argocd" {
      name     = "argo-cd"
      url      = "https://mirror.yandex.ru/helm/argoproj.github.io/"
    }

    resource "helm_release" "argocd" {
      name             = var.release_name
      repository       = helm_repository.argocd.metadata[0].name
      chart            = "argo-cd"
      version          = var.argocd_chart_version
      namespace        = var.namespace
      create_namespace = true
      dependency_update = true
    }
    ```

2. **Настройка образа в `values.yaml`**: Если система загружает образ из другого места (quay.io), вы можете переопределить значения в `values.yaml` для использования другого образа:

    ```hcl
    set {
      name  = "server.image.repository"
      value = "your.custom.registry/argocd"
    }

    set {
      name  = "server.image.tag"
      value = "v2.14.2"
    }
    ```

3. **Проверка доступа к образам**: Если требуется загружать образы из интернета, убедитесь, что ваши кубернетес-узлы имеют доступ к нужным реестрам контейнеров. Также рассмотрите возможность использования частного реестра, если доступ к публичным образам ограничен.

4. **Проверка значения переменной `argocd_chart_version`**: Убедитесь, что переменная `argocd_chart_version` соответствует доступной версии в вашем репозитории. Например, если вы хотите установить `v2.14.2`, то нужно проверить, существует ли этот чарт по указанному адресу.

5. **Логи и проблемы с сетью**: Если все по настройкам выглядит хорошо, проверьте логи Kubernetes. Вы можете использовать команду `kubectl get pods -n <namespace>`, чтобы увидеть состояние подов, а затем `kubectl describe pod <pod_name> -n <namespace>`, чтобы увидеть детальную информацию об ошибках.

Если все вышеперечисленное не помогает, подумайте о использовании локального кэша Helm или настройки прокси для образов контейнеров, который будет направлять запросы на другой доступный реестр или к вашему локальному кэшу.
1. Укажите работающий\доступный реестр с образом argocd:v2.14.2 в values вашего helm чарта и укажите helm использовать эти values. 
2. Настройте прокси, который обходит блокировки.
3. Используйте чарт bitnami
Похожие вопросы