Skip to content

Conversation

ammarun11
Copy link

Add Public Helm Repository

What this does

Makes the Sequin Helm chart easy to install for everyone.

Before this PR

  • Users can't easily install the chart
  • No public Helm repository exists
  • Manual setup required

After this PR

Users can install Sequin with 2 simple commands:

helm repo add sequin https://sequinstream.github.io/helm-chart-sequin
helm install my-sequin sequin/sequin

Files changed

  • Added: .github/workflows/release.yml - Auto-publishes the chart

How it works

  1. Push code to main branch
  2. GitHub Actions builds and publishes chart automatically
  3. Users can install from public repository

What maintainers need to do

  1. Enable GitHub Pages: Settings → Pages → Source: "GitHub Actions"
  2. Merge this PR
  3. That's it - everything else is automatic

Benefits

  • Easy installation for users
  • No manual work for maintainers
  • Follows standard Helm practices
  • Works like other popular charts

Test it works

After merge, users can run:

helm repo add sequin https://sequinstream.github.io/helm-chart-sequin
helm search repo sequin
helm install test sequin/sequin

This only adds publishing - the chart itself doesn't change.

@ammarun11 ammarun11 changed the title feat: add GitHub Actions workflow for Helm repository publishing - Add GitHub Actions workflow to automatically publish Helm charts to GitHub Pages - Configure workflow to build chart dependencies and package releases - Enable public Helm repository at https://sequinstream.github.io/helm-chart-sequin - Add proper permissions and concurrency controls for Pages deployment" feat: add public Helm repository via GitHub Pages May 26, 2025
@nlamirault
Copy link

@ammarun11 could you also add publish Helm chart as an OCI package please.

Maybe with something like that:

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.5.0
        with:
          charts_dir: charts
          config: cr.yaml
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
          CR_SKIP_EXISTING: "true"

      - name: Login to GHCR
        uses: docker/login-action@v3.0.0
        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/*.tgz; do
            if [ -z "${pkg:-}" ]; then
              break
            fi
            helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/helm-charts"
          done

cr.yaml file:

sign: false

# Enable automatic generation of release notes using GitHubs release notes generator.
# see: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
generate-release-notes: true

ct.yaml file:

# See https://github.com/helm/chart-testing#configuration
remote: origin
target-branch: main
chart-dirs:
  - .
chart-repos:
  - bitnami=https://charts.bitnami.com/bitnami
helm-extra-args: --timeout 600s
validate-maintainers: false

@acco
Copy link
Contributor

acco commented May 27, 2025

Thanks guys! We'll review this soon

permissions:
contents: read
pages: write
id-token: write
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curious if this is necessary?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the pages: write and id-token: write permissions are necessary for GitHub Pages deployment

@ammarun11
Copy link
Author

@ammarun11 could you also add publish Helm chart as an OCI package please.

Maybe with something like that:

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.5.0
        with:
          charts_dir: charts
          config: cr.yaml
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
          CR_SKIP_EXISTING: "true"

      - name: Login to GHCR
        uses: docker/login-action@v3.0.0
        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/*.tgz; do
            if [ -z "${pkg:-}" ]; then
              break
            fi
            helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/helm-charts"
          done

cr.yaml file:

sign: false

# Enable automatic generation of release notes using GitHubs release notes generator.
# see: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
generate-release-notes: true

ct.yaml file:

# See https://github.com/helm/chart-testing#configuration
remote: origin
target-branch: main
chart-dirs:
  - .
chart-repos:
  - bitnami=https://charts.bitnami.com/bitnami
helm-extra-args: --timeout 600s
validate-maintainers: false

tested c301cbf

@gpickney-tsp
Copy link

Curious on an update here -- we've got a workaround to manage these resources via kustomize after rendering the helm chart, but it would be nice to have a stable, public option. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants