Skip to content

feat: publish the Helm chart on release - #35

Open
blaipr wants to merge 1 commit into
ctrliq:develfrom
blaipr:feat/publish-helm-chart
Open

feat: publish the Helm chart on release#35
blaipr wants to merge 1 commit into
ctrliq:develfrom
blaipr:feat/publish-helm-chart

Conversation

@blaipr

@blaipr blaipr commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Addresses ctrliq/ascender-install#181, which asks for an official Helm repository for the operator. Issues were disabled here when it was filed, so the request landed on the installer repo.

Problem

The chart machinery is all here already, inherited from awx-operator: .helm/starter, and the helm-chart, helm-package and helm-index targets in the Makefile. Nothing calls it. The chart is still named awx-operator and points at the upstream repository, and no workflow publishes it, so there is no repository to helm repo add and the operator can only be installed with kustomize.

Change

Releases now publish the chart:

  • .github/workflows/publish-helm.yaml runs when a release is published, or on demand for a given tag. It packages the chart at the release version, attaches the tarball to the release, and refreshes index.yaml on the gh-pages branch. The branch is created on the first run when it does not exist yet.
  • The Makefile chart variables name the chart ascender-operator, and the three places that spelled awx-operator out use $(CHART_NAME) instead. helm-index now depends on the helm target so it can be run on its own.
  • The chart README and the Helm install guide point at this repository and the chart it publishes.

The chart index lists each version with the URL of the tarball attached to that release, which is the layout the chart README already describes. Nothing about the generated manifests changes: namePrefix stays awx-operator-, so resource names inside the chart are the same as with kustomize.

Once this merges, the repository needs GitHub Pages pointed at the gh-pages branch, root folder, and the chart is then available with:

helm repo add ascender-operator https://ctrliq.github.io/ascender-operator/
helm install -n ascender --create-namespace my-ascender-operator ascender-operator/ascender-operator

Older releases have no chart attached, so helm-index skips them and the index starts at the first release published with this workflow.

Testing

Run locally against this branch with VERSION=0.0.0-test:

  • make helm-chart generates charts/ascender-operator with the CRDs in crds/ and the operator manifests in templates/
  • make helm-package produces ascender-operator-0.0.0-test.tgz, and helm lint passes on the chart
  • helm template renders the deployment with image: ghcr.io/ctrliq/ascender-operator:0.0.0-test
  • make helm-index CHART_OWNER=ctrliq skips the existing releases that carry no chart and writes an index whose entry URL is https://github.com/ctrliq/ascender-operator/releases/download/0.0.0-test/ascender-operator-0.0.0-test.tgz

The workflow itself has not run, since that needs a release in this repository.

The chart machinery inherited from awx-operator was never wired to a workflow
here, so the chart could only be built by hand and there was no repository to
install it from.

A release now packages the chart, attaches it to the release, and refreshes
index.yaml on the gh-pages branch, which makes the repository servable from
GitHub Pages at https://ctrliq.github.io/ascender-operator. The chart is named
ascender-operator and its image is the one this repository publishes.
@ciq-it-service-account

ciq-it-service-account commented Aug 23, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@cigamit

cigamit commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

How is the internal one different from this?
https://github.com/ansible-community/awx-operator-helm

I was working on converting that one over here
https://github.com/cigamit/ascender-operator-helm
I wasn't going to move it to the ciq repo until I verified it all worked (and just haven't had time yet).

@cigamit cigamit self-assigned this Aug 23, 2026
@cigamit cigamit added the question Further information is requested label Aug 23, 2026
@blaipr

blaipr commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

Hi @cigamit, thanks for the pointer.

They are the same chart. ascender-operator already carries the chart build from ansible/awx-operator: .helm/starter, plus helm-chart-generate, helm-package and helm-index in the Makefile. .helm/starter/README.md on devel is still the upstream one word for word. ansible-community/awx-operator-helm is that same chart after upstream split it out in July 2024, which is why the READMEs match.

So this PR does not write a chart. It rebrands what the generator already emits, which is the whole 7 line Makefile diff, and adds the missing publish-helm.yaml: on a release it packages the chart, attaches the tarball, and keeps index.yaml on gh-pages so helm repo add works.

The kind: AWX in the templates and the AWX.spec names left in the README are not leftovers. watches.yaml still watches awx.ansible.com/v1beta1, kind: AWX, so renaming them would break the chart.

That leaves a choice rather than a difference: generate the chart here, or move your fork into ctrliq and maintain it there. Doing both is the only bad option. Your call, and you have the fork in flight. If you would rather it live there, I will close this. If it is a way off, this makes the chart in devel correct and installable meanwhile, and does not block moving it out later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

question Further information is requested

Development

Successfully merging this pull request may close these issues.

3 participants