helm使用github做为chart仓库

helm chart语法

  1. 在githuab创建helm-charts仓库

  2. 克隆代码到本地git clone git@github.com:iexxk/helm-charts.git

  3. 进入cd helm-charts目录,创建目录执行mkdir charts

  4. 创建发布流程文件,执行mkdir -p .github/workflows

  5. 创建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
    25
    name: 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 }}"
  6. 进入github项目页面创建分支gh-pages

  7. 创建chart,进入charts目录,执行helm create nginx-file-browser创建nginx-file-browser项目

  8. 依次执行git add . git commit -m "init"git push

  9. 等待github编译部署成功,gh-pages分支内会多一个或更新yaml的文件

  10. 同步到artifacthub,在控制面板点击添加,输入名字:exxk,和url:https://iexxk.github.io/helm-charts

  11. 等待2+分钟,刷新,就能搜索到自己github仓库的chart了。

测试使用
1
2
3
4
5
6
7
helm repo add exxk https://iexxk.github.io/helm-charts #添加仓库
helm search repo exxk #查看仓库有哪些chart
helm repo update #更新仓库
#安装
helm install --set nfs.enabled=true --set nfs.server=127.0.0.1 my-nginx-file-browser exxk/nginx-file-browser
#卸载
helm delete my-nginx-file-browser

常见问题

  1. 国内拉去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
    34
    name: 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

参考

GitHub、Google等镜像加速地址收集

注意事项

版本号不变化,是不会覆盖发布的,注意每次修改Chart.yaml的版本号version: 0.1.1