kubernetes-sigs / external-dns

Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services
Apache License 2.0
7.76k stars 2.58k forks source link

Publish helm charts also as an OCI package #4630

Open BWagenerGenerali opened 4 months ago

BWagenerGenerali commented 4 months ago

Copied from https://github.com/aws/eks-charts/issues/1070

The helm charts are published using the classic approach with a static webserver and an index.yaml:

However in helm 3.8+ the OCI method went GA:

https://blog.bitnami.com/2023/04/httpsblog.bitnami.com202304bitnami-helm-charts-now-oci.html?m=1
https://helm.sh/docs/topics/registries/
https://github.com/helm/helm/releases/tag/v3.8.0

I see two options to use as an OCI mirror:

If you would fully rely on native Github actions to produce these artifacts, the change would be super simple

  - name: Run chart-releaser
    uses: helm/chart-releaser-action@v1.6.0
    env:
      CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
      CR_GENERATE_RELEASE_NOTES: true

    # ================
    # below this line is relevant for OCI publishing
    # ================

  - name: Login to GitHub Container Registry
    uses: docker/login-action@v3
    with:
      registry: ghcr.io
      username: ${{ github.actor }}
      password: ${{ secrets.GITHUB_TOKEN }}

  - name: Push charts to GHCR
    run: |
      shopt -s nullglob
      for pkg in .cr-release-packages/*; do
        if [ -z "${pkg:-}" ]; then
          break
        fi
        helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/charts"
      done

Source: https://github.com/prometheus-community/helm-charts/blob/4bbd07f308884d44d0edff23ee60da967dc2cd23/.github/workflows/release.yaml#L39C1-L61C15 Also a lot of other CNCF projects are using this approach.

k8s-triage-robot commented 1 month ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

BWagenerGenerali commented 1 month ago

/remove-lifecycle stale