4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart

演示资源已提交:

  • Demo & Pipeline k8s-helm-tpl - Repos (azure.com)

目录

前言

Pipeline 效果图:

创建 Helm Charts仓库

1. Create blank project in GitLab

 2. Create a Deploy Token 

3. Helm repo add 

4. Helm plugin install cm-push

5. Helm Pakage 

6. Helm cm-push  

搭建Azure Pipeline

1. Install GitTools

2. GitVersion.yml

3. azure-pipelines.yml

4. Disable Shallow fetch

 5. Set pipeline permissions

6. Set Branch policies 


前言

通过前面几篇博客,我们已经基本了解Helm Chart的生成和使用,接下来我们来实现生成环节中非常重要的部分:搭建Helm Charts仓库与CI Pipeline。

Pipeline 效果图:

Helm Chart版本号须符合 Semantic Versioning 2.0.0

  • 红色:正式版本,当代码merge到master分支之后触发CI生成
  • 蓝色:pr版本,当创建merge到develop或master分支的pull request时触发CI生成
  • 黑色:测试版本,当代码merge到develop分支后触发CI生成;

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第1张图片

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第2张图片

创建 Helm Charts仓库

Helm Charts Repo搭建并不复杂,Helm官网文档介绍了几个云服务商提供的Helm仓库。也可以自己搭建一个,比如通过Github Page,也非常简单。

但是我没有找到特别好的方法可以在Pipeline中Push Chart到基于Github Page搭建的仓库,因此我改用GitLab来创建一个免费的Helm Charts仓库,仅供学习使用。

1. Create blank project in GitLab

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第3张图片

 2. Create a Deploy Token 

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第4张图片

3. Helm repo add 

在你本地执行以下命令,替换掉<>中的内容。

helm repo add --username  --password   https://gitlab.com/api/v4/projects//packages/helm/stable

4. Helm plugin install cm-push

这里没有使用Helm 自身的push命令,而是使用了插件:

chartmuseum/helm-push: Helm plugin to push chart package to ChartMuseum (github.com)

5. Helm Pakage 

Helm pakage 

尤其需要注意的是,Helm Chart Version必须遵循 Semantic Versioning 2.0.0

例如: 2.0.1

  • 2代表 MAJOR,表示一次重大的,不兼容的版本升级。
  • 0代表MINOR,每次触发就可以 +1。
  • 1代表PATCH,随着每次bug fixes而+1

6. Helm cm-push  

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第5张图片

 4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第6张图片

搭建Azure Pipeline

1. Install GitTools

我们需要在Pipeline中定义一套Chart Version计算方法。首先到azure pipeline 插件市场安装GitTools。GitTools - Visual Studio Marketplace

2. GitVersion.yml

GitVersion.yml - Repos (azure.com)

3. azure-pipelines.yml

azure-pipelines.yml - Repos

4. Disable Shallow fetch

Edit Pipeline -> 右上角三个点(More actions) -> Triggers ->  YAML -> Get Sources

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第7张图片

 5. Set pipeline permissions

Edit Pipeline -> 右上角三个点(More actions) -> Manage security 

我们需要用GitVersion生成的版本号来更新Pipeline Build number,因此为Build Service Account分配Edit build pipeline权限。

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第8张图片

6. Set Branch policies 

为了能在创建pr之后生成pr版本的helm chart,需要调整默认的分支策略。

Branch -> master -> Branch policies  -> Enable Build Validation

Branch -> develop -> Branch policies  -> Enable Build Validation

4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart_第9张图片

你可能感兴趣的:(Kubernetes,azure,ci,pipeline,Gitlab,Packages,Helm,Registry)