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:博客园精华区阅读原文】。感谢您的支持!

您可能感兴趣的

Kubernetes-基于Prometheus和Grafana进行性能监控... 1、Prometheus介绍和架构 1.1 Prometheus介绍 Prometheus是一个开源的系统监视和警报工具包,自2012成立以来,许多公司和组织采用了Prometheus。它现在是一个独立的开源项目,并独立于任何...
A Week in the Life of a Field Engineer It’s no secret that technology workers with Kubernetes skills are in high demand. Large companies like Box, Capital One,...
编写 kubectl 插件 最近忙的晕头转向,博客停更了 1 个月,感觉对不起党、对不起人民、对不起 CCAV …不过在忙的时候操作 Kubernetes 集群要频繁的使用 kubectl 命令,而在多个 NameSpace 下来回切换每次都...
Stateful Service Design Considerations for the Kub... Key Takeaways Most developers building applications on top of Kubernetes are still mainly relying on stateless p...
News Tip: Platform9 Open-Sources etcdadm, Enabling... The open source tool, inspired by kubeadm, is the first to provide the Kubernetes community a simple command-line experi...