Repository Hosting Options
In this tutorial, we are going to discuss about helm repository hosting options. Let us have little more details about Chart Repositories.
It’s nothing but a simple HTTP server which can host a set of files like index.yaml file and other chart packages. And based on the get request, it can serve those index.html and the chart packages and the clients like helm client or other CI/CD tools can pull this charts from this server and make use of them.
When the charts are ready, I can upload these into the server that is index.yaml file and the chart packages. Chart package is nothing but the entire chart folder and the index.yaml file. index.yaml file is nothing but that’s going to be the index on what are all the charts available and what versions available.
apiVersion: v1 entries: alpine: - created: 2016-10-06T16:23:20.499814565-06:00 description: Deploy a basic Alpine Linux pod digest: 99c76e403d752c84ead610644d4b1c2f2b453a74b921f422b9dcb8a7c8b559cd home: https://helm.sh/helm name: alpine sources: - https://github.com/helm/helm urls: - https://technosophos.github.io/tscharts/alpine-0.2.0.tgz version: 0.2.0 - created: 2016-10-06T16:23:20.499543808-06:00 description: Deploy a basic Alpine Linux pod digest: 515c58e5f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cd78727 home: https://helm.sh/helm name: alpine sources: - https://github.com/helm/helm urls: - https://technosophos.github.io/tscharts/alpine-0.1.0.tgz version: 0.1.0 nginx: - created: 2016-10-06T16:23:20.499543808-06:00 description: Create a basic nginx HTTP server digest: aaff4545f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cdffffff home: https://helm.sh/helm name: nginx sources: - https://github.com/helm/charts urls: - https://technosophos.github.io/tscharts/nginx-1.1.0.tgz version: 1.1.0 generated: 2016-10-06T16:23:20.499029981-06:00
This is going to look somewhat similar to above where I can have n number of entries and what are all the charts available when it was created Description about it, the digest to understand what versions being managed, Name and source different information’s.
I can have multiple versions as well. Say for example, in this particular case I do have the version 0.2.0 and the same entry is available as 0.1.0. So I can have multiple entries for a chart and the similar way I can have multiple charts as well.
In this case, I do have charts for Alpine as well as nginx. This looks very similar to the registry management within the OCI registry or any other source control system.
This is how the configurations will be. I can have n number of packages and the index.yaml file within the charts folder. And that particular charts folder should be available as a part of some Web server dock root or it can be hosted as a part of Google Compute Cloud Buckets or AWS S3 buckets or GitHub pages.
We can have our own web server or there is a dedicated server to host the chart repositories that is chart museum.
We will be having detailed discussion on Chart Museum on how to install, how to configure the repository within it and make use of it. And we will see a couple of options by using either AWS S3 bucket or GitHub pages. That’s a very simple configuration where I can add the bucket and make use of it.
And once the repository is created, I can use the helm client to push my own chart and see what are all the versions being managed and pull whatever the version that is required from the particular repository I can pull it and make use of it.
So the first thing, what I am going to do, I am going to install my own server that is using chart museum and create a repository and add my own charts within it.
Chart museum is available over here. This is dedicatedly made to manage the charts and host the chart repositories. I can do the installation. In the next tutorial, we are going to have detailed instructions on how to do the installation and run the chart repository and add our own chart within the repository.