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在PaaS建设和NFV领域中的应用... 内容来源: 2017年7月22日,中国移动通信研究院项目负责人贾玄在“顶级阵容 | Kubernetes 二周年「北京7.22 - 上海7.23」Meetup”进行《Kubernetes 在中国移动 PaaS 建设和 NFV 领域中的应用》演讲分享。IT 大咖说(微信id:itdak...
Parsing Config Files The Right Way First published on my blogParsing configuration files is something we programmers do everyday. But are you sure you're doing it the p...
Why Kubernetes (and App Service Fabric) is not for... Despite the fact that I love working with Kubernetes, it is not for every company and every containerized workload. This is my first post from the ser...
Kubernetes迈出重要一步 最新1.8版本发布 如果你想管理云中的容器, Kubernetes是理想的选择。最新发布的 Kubernetes 1.8,比以往更好。 这很重要,为什么?容器正在快速成为在数据中心和云中运行服务器级应用的方式。最近来自研究机构Redmonk的一份报告,财富100强企业中有54%已经在运行 Kubernetes,其中...
Infrastructure in Transition: Securing Containers Organizations are migrating from virtual server workloads to containers at a frenzied pace, buying into the increasingly popular technology an...