Azure / application-gateway-kubernetes-ingress

This is an ingress controller that can be run on Azure Kubernetes Service (AKS) to allow an Azure Application Gateway to act as the ingress for an AKS cluster.

Home Page:https://azure.github.io/application-gateway-kubernetes-ingress

Repository from Github https://github.comAzure/application-gateway-kubernetes-ingressRepository from Github https://github.comAzure/application-gateway-kubernetes-ingress

Error: mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/ingress-azure:1.7.5: not found

uakhponomarov opened this issue · comments

Describe the bug
Using the Terraform Helm resource, try to update the Helm chart version from 1.7.4 to 1.7.5.
My steps:

  1. Using source "https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/", got error:
    Error: looks like "https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/" is not a valid chart repository or cannot be reached: failed to fetch https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/index.yaml : 409 Public access is not permitted on this storage account.

  2. Then I found issue #1693 and updated the source repository to "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure", but encountered an error again:
    Error: mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/ingress-azure:1.7.5: not found

  3. Also tried to add a repository via helm:
    $ helm repo add ingress-azure oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure, and got:
    Error: looks like "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure" is not a valid chart repository or cannot be reached: mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/index.yaml@: not found

To Reproduce
Described in bug description

Terraform plugins' version

terraform {
  required_version = "1.10.5"
  required_providers {
    azuread = {
      source  = "hashicorp/azuread"
      version = "3.1.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "4.17.0"
    }
    helm = {
      source  = "hashicorp/helm"
      version = "2.17.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "2.35.1"
    }
  }
}

I'm having a similar problem with FluxCD as well. This is backwards behavior to not publish required files to make this a functioning Helm repository. Too many third party tools want to add a repo and pull the repo list so it can keep state.

I'm having the same problems when adding the helm repository from the command line
helm repo add
application-gateway-kubernetes-ingress
https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/

As in https://docs.azure.cn/en-us/application-gateway/ingress-controller-update-ingress-controller

Using Terraform, I am unable to update or install ingress-azure using the Terraform Helm resource:

resource "helm_release" "ingress-azure" {
}

I removed the existing releases "ingress-azure" and installed them via the Helm CLI(source). The Helm CLI works fine, and all configurations were installed correctly. However, I am still unable to perform this installation via Terraform.

This is a significant blocker for my infrastructure.

Would be great for an update as to why we can no longer pull this chart

Error: looks like "[https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/"](https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/%22) is not a valid chart repository or cannot be reached: failed to fetch https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/index.yaml : 409 Public access is not permitted on this storage account
helm.go:84: [debug] repo application-gateway-kubernetes-ingress not found

Hi @uakhponomarov

we are also facing the same issue while upgrading the AGIC controller from 1.5.2 to 1.7 version , and also i am trying with another repo url as well which is oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure
with the latest URL i am getting error as

Error: failed to download "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/azure-application-gateway" at version "1.7.3"

│ with helm_release.main[1],
│ on agic.tf line 30, in resource "helm_release" "main":
│ 30: resource "helm_release" "main" {

"can anyone pls help us on that , how can we debug this further!"

This is really a huge blocker for many people. Can anyone from Azure or Microsoft provide a workaround and explanation for this? Is there any update? @akshaysngupta @draychev?
Your documentation explicitly states that address (https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/) for the chart, like @DragosOnacTR said.

I just started to get this error too as we were using https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/ and recently had to upgrade, but I had success using the OCI registry with Terraform:

resource "helm_release" "agic_ingress" {
  name      = "agic-${local.agic_helm_version}" # ensuring recreation means necessary crds definitely installed
  namespace = kubernetes_namespace.infra_sub.metadata[0].name

  repository = "oci://mcr.microsoft.com/azure-application-gateway/charts/"
  chart      = "ingress-azure"
  version    = local.agic_helm_version

  atomic      = true
  timeout     = 420
  max_history = 3

  values = [
    local.agic_helm_values,
  ]
}

Then I found issue #1693 and updated the source repository to "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure", but encountered an error again:
Error: mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/ingress-azure:1.7.5: not found

NOTE: the registry is oci://mcr.microsoft.com/azure-application-gateway/charts/. @uakhponomarov your error shows mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/ingress-azure:1.7.5, you have ingress-azure twice, it thinks your registry is oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure.

Also tried to add a repository via helm:
$ helm repo add ingress-azure oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure, and got:
Error: looks like "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure" is not a valid chart repository or cannot be reached: mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/index.yaml@: not found

I don't know much about OCI registries, but reading this doc it seems like you can't treat them like repos: https://helm.sh/docs/topics/registries/

Error: failed to download "oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure/azure-application-gateway" at version "1.7.3"

@SaitejaKancherla94 I believe your azure-application-gateway chart name is incorrect here, we use ingress-azure as the chart name.

This doc has up to date mentions of the OCI registry: https://learn.microsoft.com/en-us/azure/application-gateway/ingress-controller-install-existing#install-the-ingress-controller-as-a-helm-chart

@lewis-jackson-bots,
After a brief review, your solution works for me. I used this repository in my Terraform resource "helm_release": oci://mcr.microsoft.com/azure-application-gateway/charts/.
However, it needs to be tested more carefully. I will be able to do that only tomorrow.
Thank you

@lewis-jackson-bots, After a brief review, your solution works for me. I used this repository in my Terraform resource "helm_release": oci://mcr.microsoft.com/azure-application-gateway/charts/. However, it needs to be tested more carefully. I will be able to do that only tomorrow. Thank you

After testing, I confirm that it works for me. I am closing this issue.
@lewis-jackson-bots, thank you )