bitnami / charts

Bitnami Helm Charts
https://bitnami.com
Other
8.82k stars 9.12k forks source link

Bug in argo-workflows ingress resource #28632

Closed emily2005 closed 2 weeks ago

emily2005 commented 1 month ago

Name and Version

bitnami/argo-workflows 9.1.11

What architecture are you using?

amd64

What steps will reproduce the bug?

  1. create helm_release resource and add ingress

    resource "helm_release" "argo" {
    name      = "argo"
    namespace = kubernetes_namespace.argo.metadata.0.name
    
    repository = "oci://registry-1.docker.io/bitnamicharts"
    chart      = "argo-workflows"
    version    = "9.1.11"
    
    values = [yamlencode({
    
    ingress = {
      annotations = {
        "cert-manager.io/cluster-issuer" = "letsencrypt-production"
      }
    
      enabled          = true
      hostname         = var.argo_hostname
      ingressClassName = "nginx"
      tls              = true
    }
    })]
  2. Supported ingress annotations are as follows: https://cert-manager.io/docs/usage/ingress/#supported-annotations
  3. However, the ingress resource in the argo-workflows chart has a bug where you have to add controller.service.annotations according to the chart here: https://github.com/bitnami/charts/blob/main/bitnami/argo-workflows/templates/server/ingress.yaml#L27 which means when the argo-workflows kubernetes manifest is generated the annotations are missing the cert-manager information to say that the certs are managed by cert-manager.

Are you using any custom parameters or values?

Yes, the values. We are using the ingress resource.

resource "helm_release" "argo" {
  name      = "argo"
  namespace = kubernetes_namespace.argo.metadata.0.name

  repository = "oci://registry-1.docker.io/bitnamicharts"
  chart      = "argo-workflows"
  version    = "9.1.11"

  values = [yamlencode({

    ingress = {
      annotations = {
        "cert-manager.io/cluster-issuer" = "letsencrypt-production"
      }

      enabled          = true
      hostname         = var.argo_hostname
      ingressClassName = "nginx"
      tls              = true
    }
  })]

What is the expected behavior?

The kubernetes argo-workflows ingress manifest should be deployed with the appropriate cert-manager annotations listed under annotations so that ingress knows cert-manager is managing the certificates.

What do you see instead?

The manifest instead does not have the annotations listed properly despite them being in the values which means the certificate is not being managed by cert-manager:

apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    annotations:
      ingress.kubernetes.io/rewrite-target: /$2
      meta.helm.sh/release-name: argo
      meta.helm.sh/release-namespace: argo
carrodher commented 1 month ago

Thank you for bringing this issue to our attention. We appreciate your involvement! If you're interested in contributing a solution, we welcome you to create a pull request. The Bitnami team is excited to review your submission and offer feedback. You can find the contributing guidelines here.

Your contribution will greatly benefit the community. Feel free to reach out if you have any questions or need assistance.

github-actions[bot] commented 3 weeks ago

This Issue has been automatically marked as "stale" because it has not had recent activity (for 15 days). It will be closed if no further activity occurs. Thanks for the feedback.

github-actions[bot] commented 2 weeks ago

Due to the lack of activity in the last 5 days since it was marked as "stale", we proceed to close this Issue. Do not hesitate to reopen it later if necessary.

erano067 commented 1 week ago

Hey, it is still an issue. I had to edit the chart and fix the ingress manually.yaml in the templates to call .Values.ingress.annotations instead of .Values.controller.service.annotations.

It is a very minor change to make it work, but I do not know much about contributing to open source. These changes fix it.

carrodher commented 6 days ago

Hey, it is still an issue. I had to edit the chart and fix the ingress manually.yaml in the templates to call .Values.ingress.annotations instead of .Values.controller.service.annotations.

It is a very minor change to make it work, but I do not know much about contributing to open source. These changes fix it.

Thank you for sharing your solution. If you're interested in contributing, we welcome you to create a pull request. The Bitnami team is excited to review your submission and offer feedback. You can find the contributing guidelines here.

Your contribution will greatly benefit the community. Feel free to reach out if you have any questions or need assistance.