chartmuseum配置和使用

安装

下载安装包

curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum
chmod +x chartmuseum
cp chartmuseum /usr/local/bin

systemd方式启动chartmuseum

service 文件配置

[root@t32 helm]# 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

EnvironmentFile的/etc/chartmuseum/chartmuseum.config配置

[root@t32 helm]# cat /etc/chartmuseum/chartmuseum.config
ARGS=\
--port=9090 \
--storage="local" \
--storage-local-rootdir="/var/lib/chartmuseum/chartstorage" \
--log-json \
--basic-auth-user=admin \
--basic-auth-pass=admin
--port: chartmuseum服务监听端口
--storage: local表示使用本地存储
--storage-local-rootdir: 本地存储点路径,helm push chart的存储路径
--log-json: 日志显示为json格式
--basic-auth-user: 用户名(使用基本的认证方式,用户名+密码,使用证书方式参照点我)
--asic-auth-pass: 密码 (chartmuseum服务起来后,后续给helm添加repo时需要加上--username xxx --password ***)

启动服务

systemctl start chartmuseum
systemctl status chaetmuseum

添加chartmuseum 到helm repo

helm repo add chartmuseum http://192.168.4.32:9090 --username  admin --password  admin

chartmuseum和curl的使用

上传

curl -u admin:admin  --data-binary "@demo-0.3.0.tgz" http://192.168.4.32:9090/api/charts

下载

curl -O   -u admin:admin http://192.168.4.32:9090/charts/demo-0.1.0.tgz

chartmuseum其他API

  • GET /index.yaml 得到chartmuseum的全部charts
[root@t32 demo]# curl http://192.168.4.32:9090/index.yaml -u admin:admin
apiVersion: v1
entries:
  demo:
  - apiVersion: v1
    appVersion: "1.0"
    created: "2019-09-25T21:05:34.55346099+08:00"
    description: A Helm chart for Kubernetes
    digest: 98220d606e571949c29175e51f384d75f38e306d5ad7ccf0f882a61c4183a983
    name: demo
    urls:
    - charts/demo-0.3.0.tgz
    version: 0.3.0
  - apiVersion: v1
    appVersion: "1.0"
    created: "2019-09-25T19:00:27.301961076+08:00"
    description: A Helm chart for Kubernetes
    digest: fa496288ee05d446699f26e82bba4d6eefd6bcb87e47b78fdd6ce3e682319142
    name: demo
    urls:
    - charts/demo-0.2.0.tgz
    version: 0.2.0
  - apiVersion: v1
    appVersion: "1.0"
    created: "2019-09-25T18:54:32.406748864+08:00"
    description: A Helm chart for Kubernetes
    digest: df107a069a1a5459800cc0ed2017c59efd6bf01701b1a96c89e3d9f3ed229e64
    name: demo
    urls:
    - charts/demo-0.1.0.tgz
    version: 0.1.0
generated: "2019-09-25T21:06:00+08:00"
serverInfo: {}
  • GET /charts/demo-0.2.0.tgz 下载charts中的demo
[root@t32 demo]# curl -O http://192.168.4.32:9090/charts/demo-0.2.0.tgz -u admin:admin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2564    0  2564    0     0   605k      0 --:--:-- --:--:-- --:--:--  834k
  • POST /api/charts 上传一个新的chart版本
[root@t32 demo]# curl -X POST  --data-binary '@demo-0.3.0.tgz'  http://192.168.4.32:9090/api/charts -u admin:admin
{"saved":true}
  • DELETE /api/charts// 删除一个chart版本
[root@t32 demo]# curl  -s -X DELETE  http://192.168.4.32:9090/api/charts/demo/0.3.0  -u admin:admin | jq
{
  "deleted": true
}
  • GET /api/charts 列出所有的charts
[root@t32 demo]# curl -s  http://192.168.4.32:9090/api/charts -u admin:admin | jq
{
  "demo": [
    {
      "name": "demo",
      "version": "0.3.0",
      "description": "A Helm chart for Kubernetes",
      "apiVersion": "v1",
      "appVersion": "1.0",
      "urls": [
        "charts/demo-0.3.0.tgz"
      ],
      "created": "2019-09-25T21:05:34.55346099+08:00",
      "digest": "98220d606e571949c29175e51f384d75f38e306d5ad7ccf0f882a61c4183a983"
    },
    {
      "name": "demo",
      "version": "0.2.0",
      "description": "A Helm chart for Kubernetes",
      "apiVersion": "v1",
      "appVersion": "1.0",
      "urls": [
        "charts/demo-0.2.0.tgz"
      ],
      "created": "2019-09-25T19:00:27.301961076+08:00",
      "digest": "fa496288ee05d446699f26e82bba4d6eefd6bcb87e47b78fdd6ce3e682319142"
    },
    {
      "name": "demo",
      "version": "0.1.0",
      "description": "A Helm chart for Kubernetes",
      "apiVersion": "v1",
      "appVersion": "1.0",
      "urls": [
        "charts/demo-0.1.0.tgz"
      ],
      "created": "2019-09-25T18:54:32.406748864+08:00",
      "digest": "df107a069a1a5459800cc0ed2017c59efd6bf01701b1a96c89e3d9f3ed229e64"
    }
  ]
}
  • GET /api/chatts/ 列出chart的所有版本
[root@t32 demo]# curl -s  http://192.168.4.32:9090/api/charts/demo -u admin:admin | jq
[
  {
    "name": "demo",
    "version": "0.3.0",
    "description": "A Helm chart for Kubernetes",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
      "charts/demo-0.3.0.tgz"
    ],
    "created": "2019-09-25T21:05:34.55346099+08:00",
    "digest": "98220d606e571949c29175e51f384d75f38e306d5ad7ccf0f882a61c4183a983"
  },
  {
    "name": "demo",
    "version": "0.2.0",
    "description": "A Helm chart for Kubernetes",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
      "charts/demo-0.2.0.tgz"
    ],
    "created": "2019-09-25T19:00:27.301961076+08:00",
    "digest": "fa496288ee05d446699f26e82bba4d6eefd6bcb87e47b78fdd6ce3e682319142"
  },
  {
    "name": "demo",
    "version": "0.1.0",
    "description": "A Helm chart for Kubernetes",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
      "charts/demo-0.1.0.tgz"
    ],
    "created": "2019-09-25T18:54:32.406748864+08:00",
    "digest": "df107a069a1a5459800cc0ed2017c59efd6bf01701b1a96c89e3d9f3ed229e64"
  }
]
  • GET /api/charts// 对一个chart版本的描述
[root@t32 demo]# curl -s  http://192.168.4.32:9090/api/charts/demo/0.3.0 -u admin:admin | jq
{
  "name": "demo",
  "version": "0.3.0",
  "description": "A Helm chart for Kubernetes",
  "apiVersion": "v1",
  "appVersion": "1.0",
  "urls": [
    "charts/demo-0.3.0.tgz"
  ],
  "created": "2019-09-25T21:05:34.55346099+08:00",
  "digest": "98220d606e571949c29175e51f384d75f38e306d5ad7ccf0f882a61c4183a983"
}
  • GET / HTML welcome page
[root@t32 demo]# curl  http://192.168.4.32:9090/health
{"healthy":true}[root@t32 demo]# curl  http://192.168.4.32:9090/
{"error":"unauthorized"}[root@t32 demo]# curl  http://192.168.4.32:9090/ -u admin:admin



Welcome to ChartMuseum!



Welcome to ChartMuseum!

If you see this page, the ChartMuseum web server is successfully installed and working.

For online documentation and support please refer to the GitHub project.

Thank you for using ChartMuseum.

  • GET /health return 200 OK
[root@t32 demo]# curl  http://192.168.4.32:9090/health
{"healthy":true}

你可能感兴趣的:(chartmuseum配置和使用)