values.yaml
文件用于存储配置值,这些值在模板中被引用。values.yaml
文件覆盖这些值。if-else
结构根据条件输出不同的配置。range
来遍历列表或字典。values.yaml
文件重用。include
或 default
。文件结构:
deployment.yaml
– 包含 Kubernetes Deployment 的定义。values.yaml
– 定义了一些默认的配置值。deployment.yaml 示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.app.name }}
spec:
replicas: {{ .Values.app.replicas }}
template:
metadata:
labels:
app: {{ .Values.app.name }}
spec:
containers:
- name: {{ .Values.app.name }}
image: "{{ .Values.app.image }}"
ports:
- containerPort: {{ .Values.app.port }}
values.yaml 示例:
app:
name: myapp
image: myapp:1.0.0
replicas: 3
port: 80
目的:
模板示例:
{{ if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Values.app.name }}-ingress
spec:
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ $.Values.app.name }}
port:
number: {{ $.Values.app.port }}
{{- end }}
{{ end }}
values.yaml 片段:
ingress:
enabled: true
hosts:
- host: example.com
- host: another.com
这些案例展示了 Helm Templates 的基本用法和一些常见的高级技巧。通过这些示例,你可以开始构建自己的 Helm Charts,并根据你的特定需求进行定制。