这里我们使用helm 3.0+版本, 可以直接使用kube-server api, 不需要在集群安装tiler

安装

sudo snap install helm --classic

Chartmuseum

repo: https://github.com/helm/chartmuseum

本地安装

curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum
chmod +x chartmuseum
sudo mv chartmuseum /usr/bin/
sudo mkdir /opt/chart && sudo chown $USER /opt/chart
./chartmuseum --storage=local --storage-local-rootdir=/opt/chart

然后打开http://localhost:8080就可以看到欢迎界面

创建和使用chart

我们以创建一个nginx chart为例。

使用helm创建初始化配。

mkdir app
helm create chart

然后可以看到初始化的以下配置

artificerpi@ky-laptop:~/build/app$ tree chart
chart
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml

3 directories, 9 files

修改chart/Chart.yaml文件,将name字段改为nginx-foo

package

helm package .

install

helm install <NAME> foo-0.1.0.tgz 

安装helm-push插件

helm plugin install https://github.com/chartmuseum/helm-push.git

加入本地chartmuseum仓库

helm repo add chartmuseum http://localhost:8080

推送nginx-foo chart

helm push chart/ chartmuseum

# 或者指定版本
helm push chart/ chartmuseum --version=0.1.1

成功后,通过curl命令调用chartmuseum api就可以看到上传结果

# curl http://localhost:8080/api/charts

{"nginx-foo":[{"name":"nginx-foo","version":"0.1.0","description":"A Helm chart for Kubernetes","apiVersion":"v2","appVersion":"1.16.0","type":"application","urls":["charts/nginx-foo-0.1.0.tgz"],"created":"2020-04-03T10:26:49.059906306+08:00","digest":"aa6532c71a1a463d34d295f4c9a36bafbcd116e4520c8661af9fd13773f0b7b8"}]}

示范

all in one helm chart

sonarqube

spring boot app with web frontend