helm上传私有chart仓库
helm chart语法
github helm仓库
在githuab创建helm-charts仓库
克隆代码到本地
git clone git@github.com:iexxk/helm-charts.git
进入
cd helm-charts
目录,创建目录执行mkdir charts
创建发布流程文件,执行
mkdir -p .github/workflows
创建github操作流文件.github/workflows/release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25name: Release Charts
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.1.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"进入github项目页面创建分支
gh-pages
创建chart,进入charts目录,执行
helm create nginx-file-browser
创建nginx-file-browser
项目依次执行
git add .
和git commit -m "init"
和git push
等待github编译部署成功,
gh-pages
分支内会多一个或更新yaml的文件同步到artifacthub,在控制面板点击添加,输入名字:exxk,和url:https://iexxk.github.io/helm-charts
等待2+分钟,刷新,就能搜索到自己github仓库的chart了。
测试使用
1 | helm repo add exxk https://iexxk.github.io/helm-charts #添加仓库 |
harbor helm仓库
编辑好chart模版文件
执行
helm package -d <chart所在目录> <chart名称>
,会生成一个压缩包,名字为<chart名称>-<chart文件内的version>.tgz
eg:helm package -d appchart-uat-cd appchart-uat-cd
在目录appchart-uat-cd
会生成appchart-uat-cd-1.0.0.tgz
登陆harbor在
项目-->项目名-->helm Charts-->上传
,点击上传按钮在chart一栏点击选择,然后上传打包好的chart压缩包1
2
3
4#也可以使用push命令上传
docker login harbor.xxx.com.cn
helm chart save CHART_PATH harbor.xxx.com.cn/cd-dev-1/REPOSITORY[:TAG]
helm chart push harbor.xxx.com.cn/cd-dev-1/REPOSITORY[:TAG]登陆harbor在
项目-->项目名-->配置管理-->项目仓库
勾上☑️公开,然后就可以使用了chart包使用地址为
1
2CHARTS_REPO = 'https://harbor.exxk.com.cn/chartrepo/cd-dev-1/charts'
CHARTS_NAME = 'appchart-uat-cd-1.0.0.tgz'更新使用部署命令
1
helm3 upgrade --install --history-max=$HISTORY_MAX manage-app$HELM_VER $CHARTS_REPO1/$CHARTS_NAME1 -n manage-server -f z-k8s-helm/uat/val-manage-app.yaml --set image.repository=$CICD_REGISTRY/$HARBOR_NAMESPACE/manage-app:$CICD_SEQUENCE,currentImage=$CURRENT_IMAGE
常见问题
国内拉去release压缩发布版本时,因为网络原因容易失败。
解决:
引入最新版helm/chart-releaser-action自动发布,修改helm-charts/.github/workflows/release.yml文件内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34name: Release Charts
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.1
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: github fast
run: |
git status
git checkout gh-pages
git pull
ls
sed -i "s/github.com/download.fastgit.org/g" index.yaml
git add index.yaml
git commit -m "update url"
git push如果chart下载失败,检查仓库是否设置为公开。
参考
注意事项
版本号不变化,是不会覆盖发布的,注意每次修改Chart.yaml
的版本号version: 0.1.1