28, k8s helm 之harbor

1,Values对象是为Chart模板提供值,这个对象的值有4个来源:

	chart 包中的 values.yaml 文件
	父 chart 包的 values.yaml 文件
	通过 helm install 或者 helm upgrade 的 `-f`或者 `--values`参数传入的自定义的 yaml 文件
	通过 `--set` 参数传入的值

chart 的 values.yaml 提供的值可以被用户提供的 values 文件覆盖,而该文件同样可以被 `--set`提供的参数所覆盖。


2,管道与函数

前面讲的模块,其实就是将值传给模板引擎进行渲染,模板引擎还支持对拿到数据进行二次处理。
例如从.Values中读取的值变成字符串,可以使用`quote`函数实现:

```
# vi templates/deployment.yaml
app: {{ quote .Values.label.app }}
# helm install --dry-run web ../mychart/ 
        project: ms
        app: "nginx"

```

quote .Values.label.app 将后面的值作为参数传递给quote函数。

模板函数调用语法为:functionName arg1 arg2...

3,流程控制

流程控制是为模板提供了一种能力,满足更复杂的数据逻辑处理。
Helm模板语言提供以下流程控制语句:

- `if/else` 条件块
- `with` 指定范围
- `range` 循环块

4,使用 Harbor 作为 Chart 仓库
**1、启用Harbor的Chart仓库服务**

```
# ./install.sh --with-chartmuseum

```

启用后,默认创建的项目就带有helm charts功能了。

**2、安装push插件**

 https://github.com/chartmuseum/helm-push 

```shell
helm plugin install https://github.com/chartmuseum/helm-push

```

**3、添加repo**

```
helm repo add  --username admin --password Harbor12345 myrepo http://192.168.31.70/chartrepo/library

```

**4、推送与安装Chart**

```
# helm push mysql-1.4.0.tgz --username=admin --password=Harbor12345 http://192.168.31.70/chartrepo/library
# helm install web --version 1.4.0 myrepo/demo

```

  

posted @ 2020-07-14 21:56  pwcc  阅读(256)  评论(0)    收藏  举报