Use github repo as helm chart repository

In order to be able use Helm charts the “normal” way, it is need to buid your own helm repository. The goal of this post is to transform a github repo into a helm repo.

Key Aspects

  • Save the helm charts on github mainly for the RPI Kubernetes cluster
  • Figure out a way to access them

Build the chart and upload it to the helm repo

For that purpose I used by kubeplay repo where I had helm charts and container ready

git clone -b arm32v7 git@github.com:jbrette/kubeplay.git

cd kubeplay/
helm package charts/kubeplay-arm32v7/ --app-version 0.1.0 --destination ./helmrepo/
cd helmrepo/
helm repo index .
git add .
git commit -m "New chart version"
git push

Use helm repo and chart

On the ARM32V7 KUBEDGE Cluster

Let’s access the simple helm repo designed for arm32v7

helm repo add kubedge1 "https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge1"
helm repo add kubedge2 "https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge2"
helm repo add kubedge3 "https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge3"
helm repo add kubedge4 "https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge4"
helm repo update
$ helm repo list

NAME            URL
incubator       https://kubernetes-charts-incubator.storage.googleapis.com/
stable          https://kubernetes-charts.storage.googleapis.com/
hack4easy       https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/hack4easy/
kubedge1        https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge1/
kubedge2        https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge2/
kubedge3        https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge3/
kubedge4        https://raw.githubusercontent.com/kubedge/helmrepos/arm32v7/kubedge4/
helm search kubedge1

NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
kubedge1/kubedge-arm32v7                0.1.0           0.1.0           A Helm chart for Kubernetes
kubedge1/kubeplay-arm32v7               0.1.0           0.1.0           A Helm chart for Kubernetes
kubedge1/kubesim-blinkt-arm32v7         0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-linkio-arm32v7         0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-nats-pub-arm32v7       0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-nats-sub-arm32v7       0.1.0           0.1.0           A Helm chart for Kubedge Simulator

On the ARM64V8 KUBEDGE Cluster

The Helm charts for ARM64V8 KUBEDGE Cluster contains arm64v8 in their paths and names

helm repo list

NAME            URL
stable          https://kubernetes-charts.storage.googleapis.com
local           http://127.0.0.1:8879/charts
kubedge1        https://raw.githubusercontent.com/kubedge/helmrepos/arm64v8/kubedge1
kubedge2        https://raw.githubusercontent.com/kubedge/helmrepos/arm64v8/kubedge2
kubedge3        https://raw.githubusercontent.com/kubedge/helmrepos/arm64v8/kubedge3
kubedge4        https://raw.githubusercontent.com/kubedge/helmrepos/arm64v8/kubedge4
hack4easy       https://raw.githubusercontent.com/kubedge/helmrepos/arm64v8/hack4easy
helm search kubedge1

NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
kubedge1/kubedge-arm64v8                0.1.0           0.1.0           A Helm chart for Kubernetes
kubedge1/kubeplay-arm64v8               0.1.0           0.1.0           A Helm chart for Kubernetes
kubedge1/kubesim-blinkt-arm64v8         0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-linkio-arm64v8         0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-nats-pub-arm64v8       0.1.0           0.1.0           A Helm chart for Kubedge Simulator
kubedge1/kubesim-nats-sub-arm64v8       0.1.0           0.1.0           A Helm chart for Kubedge Simulator

On the KUBEDGESDK

The Helm charts for KUBEDGE AMD64 Cluster contains arm64v8 in their paths and names

helm repo list

NAME            URL
stable          https://kubernetes-charts.storage.googleapis.com
local           http://127.0.0.1:8879/charts
kubedge1        https://raw.githubusercontent.com/kubedge/helmrepos/amd64/kubedge1
kubedge2        https://raw.githubusercontent.com/kubedge/helmrepos/amd64/kubedge2
kubedge3        https://raw.githubusercontent.com/kubedge/helmrepos/amd64/kubedge3
kubedge4        https://raw.githubusercontent.com/kubedge/helmrepos/amd64/kubedge4
hack4easy       https://raw.githubusercontent.com/kubedge/helmrepos/amd64/hack4easy

Conclusion

  • Still has to find how to get Travis-CI to build the chart automatically