Skip to main content
In this walkthrough, we’ll package a Helm chart as a .tgz artifact, host it in a Helm repository (via GitHub Pages and Artifact Hub), then use Flux’s Source Controller and Helm Controller to automate its deployment.

1. Helm Chart Package on GitHub Releases

We’ve bundled our application into block-buster-helm-app-7.6.0.tgz and published it on the GitHub Releases page. Below is an example of the default values.yaml included in the chart:
This image shows a GitHub release page for the "block-buster-helm-app" version 7.6.0, with assets available for download.

2. Chart Listing on Artifact Hub

Our chart is also discoverable on Artifact Hub. Artifact Hub provides metadata, download statistics, and security reports for Helm charts.
The image shows a webpage from Artifact Hub displaying a search result for a Helm chart named "block-buster-helm-app." It includes details like the repository, publisher, and version information.
The image shows a dashboard from Artifact Hub displaying a bar chart of package views over the last 30 days, along with related package information and a security report indicating vulnerabilities.
You could install manually:

3. Defining a HelmRepository in Flux

To automate updates, Flux’s Source Controller can track the Helm repository for new chart versions.
This generates:
Adjust --interval and --timeout to suit your release cadence and network conditions.

4. Customizing Chart Values

Create a file named 6-demo-values.yaml to override default settings:
Save it alongside your Flux manifests.

5. Creating a HelmRelease with Flux

Now define a HelmRelease to instruct Flux’s Helm Controller to deploy the chart:
Generated manifest:

6. Committing to Git and Triggering Flux

Flux will detect the new manifests and begin reconciliation.

7. Verifying Flux Resources

Check the status of your HelmRepository:
List all source types:
Inspect your HelmRelease:

8. Exploring Source Controller Data

Enter the source-controller pod to view how Flux stores chart artifacts:
The image shows a Visual Studio Code interface with a terminal open at the bottom and a YAML file being edited. The terminal is in a directory related to a Kubernetes cluster setup.

9. Validating the Deployment

Once reconciled, Flux will create the target namespace (6-demo) and deploy your app:
You should see:
  • 2 Pods (as per replicaCount)
  • A Deployment
  • A NodePort Service on port 30006
Access the game in your browser:
The image shows a "Block Buster" game interface with colorful blocks, a paddle, and a ball. It includes game details like level, score, and lives, along with some technical information about the app.
Starting with version 7.6.0, Block Buster introduces multiple levels. Complete Level One to unlock Level Two!

Congratulations—you’ve automated the deployment of a Helm chart .tgz artifact using Flux’s Helm Controller and Source Controller!

Watch Video

Practice Lab