helm仓库chartmuseum的部署

了解chartmuseum

用过helm的都知道,chartmuseum作为helm重要的仓库,掌握他的私有部署是必不可少的。

官方文档:跳转

部署方式

chartmuseum的部署方式有两种,从官方首页就能看出来:一种是二进制,一种是docker。

png1

二进制部署方式

1.下载二进制文件

1
2
3
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum
chmod 777 chartmuseum
mv chartmuseum /usr/local/bin

2.创建启动文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@meitu]# cat /etc/systemd/system/chartmuseum.service
[Unit]
Description=chartmuseum
Requires=network-online.target
After=network-online.target

[Service]
EnvironmentFile=/etc/chartmuseum/chartmuseum.config
User=root
Restart=allways
ExecStart=/usr/local/bin/chartmuseum $ARGS
ExecStop=/usr/local/bin/chartmuseum step-down

[Install]
WantedBy=multi-user.target

3.创建配置文件

这里修改对应的配置:

  • 端口
  • local,表示本地存储
  • dir,就是本地存储的路径
  • 以及一些基本的认证信息
注:存储可以有多种方式,比如aws的s3,阿里云的oss等,具体可以查看文档:github
1
2
[root@meitu]# cat /etc/chartmuseum/chartmuseum.config
ARGS=--port=88 --storage="local" --storage-local-rootdir="/www/chartmuseum/" --log-json --basic-auth-user=meitu --basic-auth-pass="********"

4.启动

1
2
3
systemctl start chartmuseum
systemctl status chartmuseum
systemctl enable chartmuseum

5.然后验证是否可以使用该仓库

1
2
➜  helm repo add my-chartmuseum-repo http://my-chartmuseum-repo-url --username meitu --password ********
"my-chartmuseum-repo" has been added to your repositories

docker部署方式

1.下载最近的docker镜像

1
➜  docker pull chartmuseum/chartmuseum:latest

2.创建本地目录,当做存储位置

1
➜  mkdir ./chartmuseum

3.启动服务

1
➜  docker run --rm -it -p 8081:8080 -v $(pwd)/chartmuseum:/charts -e DEBUG=true -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts chartmuseum/chartmuseum:latest

测试使用

1.首先你本地helm要装好helm-push插件

2.加入repo

1
2
➜  helm repo add my-chartmuseum-repo http://my-chartmuseum-repo-url --username meitu --password ********
"my-chartmuseum-repo" has been added to your repositories

3.push包到仓库

1
2
3
➜  helm push natmonitor-0.1.1.tgz my-chartmuseum-repo
Pushing natmonitor-0.1.1.tgz to my-chartmuseum-repo...
Done.