Commit 715be826 authored by Matt Butcher's avatar Matt Butcher Committed by GitHub

Merge pull request #1243 from rimusz-lab/docs-charts-repo-github-pages

docs(chart_repository): added github pages example
parents 6860c47d 6eb340ed
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
## Create a chart repository ## Create a chart repository
A _chart repository_ is an HTTP server that houses one or more packaged charts. When you're ready to share your charts, the preferred mechanism is a chart repository. You can contribute to the official helm chart repository or create your own. Here we'll talk about creating your own chart repository. A _chart repository_ is an HTTP server that houses one or more packaged charts. When you're ready to share your charts, the preferred mechanism is a chart repository. You can contribute to the official helm chart repository or create your own. Here we'll talk about creating your own chart repository.
Because a chart repository can be any HTTP server that can serve YAML and tar files and can answer GET requests, you have a plethora of options when it comes down to hosting your own chart repository. For example, you can use a Google Cloud Storage(GCS) bucket, Amazon S3 bucket, or even create your own web server. Because a chart repository can be any HTTP server that can serve YAML and tar files and can answer GET requests, you have a plethora of options when it comes down to hosting your own chart repository. For example, you can use a Google Cloud Storage (GCS) bucket, Amazon S3 bucket, Github Pages, or even create your own web server.
### The chart repository structure ### The chart repository structure
A chart repository consists of packaged charts and a special file called `index.yaml` which contains an index of all of the charts in the repository. A chart repository has a flat structure. Given a repository URL, you should be able to download a chart via a GET request to `URL/chartname-version.tgz`. A chart repository consists of packaged charts and a special file called `index.yaml` which contains an index of all of the charts in the repository. A chart repository has a flat structure. Given a repository URL, you should be able to download a chart via a GET request to `URL/chartname-version.tgz`.
...@@ -41,7 +41,9 @@ redis-2.0.0: ...@@ -41,7 +41,9 @@ redis-2.0.0:
home: https://github.com/example-charts/redis home: https://github.com/example-charts/redis
``` ```
We will go through a detailed GCS example here, but feel free to skip to the next section if you've already created a chart repository. We will go through detailed GCS and Github Pages examples here, but feel free to skip to the next section if you've already created a chart repository.
##### GCS bucket example
The first step will be to **create your GCS bucket**. We'll call ours `fantastic-charts`. The first step will be to **create your GCS bucket**. We'll call ours `fantastic-charts`.
...@@ -57,6 +59,34 @@ Insert this line item to **make your bucket public**: ...@@ -57,6 +59,34 @@ Insert this line item to **make your bucket public**:
Congratulations, now you have an empty GCS bucket ready to serve charts! Congratulations, now you have an empty GCS bucket ready to serve charts!
##### Github Pages example
In a similar way you can create charts repository using Github Pages.
The first step will be to **create your gh-pages branch**.
You can do that localy as.
```
$ git checkout -b [name_of_your_new_branch]
```
Or via web browser using **Branch** button on your Github repository:
![Create Github Pages branch](images/create-a-gh-page-button.png)
Next, you'll want to make sure your **gh-pages branch** is set as Github Pages, click on your repo **Settings** and scroll down to **Github pages** section and set as per below:
![Create Github Pages branch](images/set-a-gh-page.png)
By default **Source** usually gets set to **gh-pages branch**, if not do so select it.
You can use a **custom domain** there if you wish so.
And check that **Enforce HTTPS** is ticked, so the **HTTPS** will be used when charts are served.
In such setup you can use **master branch** to store your charts code, and **gh-pages branch** as charts repository, e.g.: `https://my-repo-name.github.io/charts`.
## Store charts in your chart repository ## Store charts in your chart repository
Now that you have a chart repository, let's upload a chart and an index file to the repository. Now that you have a chart repository, let's upload a chart and an index file to the repository.
Charts in a chart repository must be packaged (`helm package chart-name/`) and versioned correctly (following [SemVer 2](https://semver.org/) guidelines). Charts in a chart repository must be packaged (`helm package chart-name/`) and versioned correctly (following [SemVer 2](https://semver.org/) guidelines).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment