2.2 KiB
Personal Helm Repository
A helm repository is really, really simple. It's a static website that serves, at least,
a file called index.yaml. This file is auto-generated (see Adding a chart
below) via helm commands.
Charts are added by copying their respective tgz archives into the webserver's content directory. For example: /usr/share/nginx/html when using nginx.
Since charts are usually small you don't need a volume, you can copy the contents of your charts directory into the webserver's docker image and serve a completely stateless repository. You could potentially have a repository for each project or have an org-wide repository that gets built automatically with something like gitlab/github pages.
Gettings started
Create a folder called "charts".
Run helm repo index charts. An index.yaml will be created. It shouldn't have anything
in it.
Now you can run podman-compose build to create the image. This will copy the charts
folder into an nginx container. podman-compose push will upload the container to the
registry.
Deploying the Repository
We can use the local chart (for now) to deploy the chart image.
helm upgrade --install \
chart-repository \
./repository \
--namespace chart-repository \
--create-namespace
Using the Repository
You can add the repository to your local helm client like any other:
helm repo add reeseapps https://charts.reeseapps.com
You can view the existing charts with
helm search repo reeseapps
Though nothing will show up right now...
Adding a chart
We can add a chart by copying its .tgz package into charts/. For example:
helm package ./repository
mv repository-0.1.0.tgz charts/
Now recreate the index with
helm repo index charts
You should see a new entry in the index.yaml.
Updating the image
Now that you have something in your index, we can update the image by following the same process we used to deploy it:
podman-compose build
podman-compose push
helm upgrade --install \
chart-repository \
./repository \
--namespace chart-repository \
--create-namespace
Now run helm repo update and helm search repo reeseapps. You should see the new
chart added.