helm-chart-2-chart结构和简单模板

存储架构 2018-07-07

1, chart 结构介绍

我们创建一个chart 并查看其结构

右侧注释为其文件的的解释

$ helm create mychart

$ cd mychart/

$ tree

├── charts            # 用于放置子charts
├── Chart.yaml        # 这里有一些chart的基本信息,名称、版本、对应的app版本等。
├── templates         # 放置模板 最终被渲染为不同的 manifest(大概是一些配置和元数据)
│   ├── deployment.yaml   # 这个模板最终会被渲染为 deployment的基本manifest
│   ├── _helpers.tpl      # 这个文件用于 存放模板,给其他地方调用,本身不会被渲染(参照函数库理解)
│   ├── ingress.yaml      
│   ├── NOTES.txt         # chart的说明文件,会在安装、升级后显示其内容,也可以用模板的方式写,会被渲染。
│   └── service.yaml
└── values.yaml       # 存放‘值’ 的地方,渲染templates下模板所用的值,有一大部分来源于此

2,简单模板介绍

在Kubernetes中,ConfigMap是存储配置数据的地方。其他的东西,比如Pod,可以访问ConfigMap中的数据

模板名称不遵循严格的命名模式。但是,我们建议.yaml为YAML文件后缀,.tpl为模板助手后缀。

我们创建一个名为:mychart/templates/configmap.yaml 的文件

其内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello World"

这里有一个模板引用,{{ .Release.Name }}会被渲染为 ap的release名称。(该Release对象是Helm的内置对象之一,稍后会进一步介绍它。)

接下来,介绍几个命令:

$ helm install ./mychart     # 安装并获取反馈信息
NAME: clunky-serval
LAST DEPLOYED: Tue Nov  1 17:45:37 2016
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                      DATA      AGE
clunky-serval-configmap   1         1m




$ helm get manifest full-coral 

# helm get manifest命令获取release名称(full-coral)并打印出上传到服务器的所有Kubernetes资源。   
# 每个文件都以---开始作为文档的起始,然后是一个自动生成的注释行,告诉我们该模板文件生成于哪个YAML文档


---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: goodly-gupp-configmap   # 渲染过的值
data:
  myvalue: "Hello World"


$ helm install --debug --dry-run ./mychart  
# 一个快速调试的技巧(还有一个是 helm lint name):当您想测试模板渲染,但实际上不安装任何东西时,  
# 可以使用helm install --debug --dry-run ./mychart。   
# 这会把chart发送到Tiller服务器,将渲染模板。但不安装chart,会将渲染模板返回,以便可以看到如下输出  


SERVER: "localhost:44134"
CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/_scratch/mychart
NAME:   goodly-guppy
TARGET NAMESPACE:   default
CHART:  mychart 0.1.0
MANIFEST:
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: goodly-guppy-configmap
data:
  myvalue: "Hello World"

转载注明出处:

https://www.jianshu.com/p/d0b0dcad531e

博客园精华区

责编内容by:博客园精华区 (源链)。感谢您的支持!

您可能感兴趣的

Functional DevOps with Scala a Kubernetes Context As a functional backend developer I’ve always been surprised by ho...
Oracle to use Kubernetes to manage its cloud conta... Seven years ago, Oracle wanted to be a Linux power. So, Oracle chairman Larr...
Shopify’s Journey to Kubernetes and PaaS: Niko Kur... At QCon New York, Niko Kurtti presented " Forced Evolution: Shopify's Journe...
Kubernetes and AWS Best Practice AWS EC2 user-data file should be generic – Having to modify user-data can caus...
Add a Layer of Security to OpenShift/Kubernetes wi... Dan Walsh wrote a blog a couple of years ago on running containers in read-o...