当前位置: 首页 > news >正文

k8s的包管理工具helm3--流程控制语句(3)

helm3中的流程控制语句主要包括条件判断语句(if else)、作用域控制语句(with)、循环控制语句(range)。

一、if/else语句

if/else语句用于条件判断,通过不同的条件设置完成不同的功能。

1. 语法

{{- if 条件1 }}
....
{{- else if 条件2 }}
....
{{- else }}
....
{{- end }}

2. 示例

创建values.yaml文件

[root@k8s-master m1]# cat chart5/values.yaml 
replics: 3
container_name: nginx
container_port: 80
ingress:enabled: true

创建templates/configmap.yaml文件

[root@k8s-master m1]# cat chart5/templates/configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:name: {{ .Release.Name }}
data:{{- if .Values.ingress.enabled }}ingress: "正在配置ingress..."replicCount: {{ .Values.replics }}containerName: {{ .Values.container_name }}containerPort: {{ .Values.container_port }}{{- else }}ingress: "不配置ingress..."{{- end }}

部署chart

# Source: chart5/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: chart5
data:ingress: "正在配置ingress..."replicCount: 3containerName: nginxcontainerPort: 80

二、with语句

with语句用来改变当前的作用域,避免重复书写冗余的前缀

1. 语法

{{- with 嵌套对象 }}  # 比如.Values.config就是嵌套对象
...
{{- end }}

在整个with语句的范围内,所有的嵌套对象都不需要再加相同的前缀。直接用.表示了之前的.Values.config对象。

2. 示例

创建values.yaml文件

[root@k8s-master m1]# cat chart5/values.yaml 
config:database:username: "user01"password: "123456"port: 3306

创建templates/configmap.yaml文件

[root@k8s-master m1]# cat chart5/templates/configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:name: {{ .Release.Name }}
data:{{- with .Values.config.database }}username: {{ .username }}   # .表示.Values.config.database对象password: {{ .password | b64enc}}port: {{ .port }}{{- end }}

部署chart

# Source: chart5/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: chart5
data:username: user01password: MTIzNDU2port: 3306

三、range语句

range语句循环遍历集合并输出,range遍历对象时,在range语句的作用域内,由于指定了对象,后续以.表示

1.语法

{{- range 要遍历的对象 }}
....
{{-end }}

2.示例

创建一个对象

[root@master m1]# cat chart1/values.yaml 
# 定义一个数组
people:- sex- age- height- hobby

创建一个yaml文件

apiVersion: v1
kind: ConfigMap
metadata:name: {{ .Release.Name }}
data:people: |-     # |- 表示后续为一个多行的字符串{{- range .Values.people }}- {{ . }}     # .表示values.yaml文件中的people对象,循环遍历people对象的内容,即sex,age...{{- end }}{{ range (list "aa" "bb" "cc") }}- {{ . }}      # .指列表,aa,bb,cc{{- end }}
~               

运行查看结果

# Source: chart1/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: chart1
data:people: |-- sex- age- height- hobby- aa- bb- cc
http://www.dtcms.com/a/548940.html

相关文章:

  • Kubernetes 实战入门核心内容总结
  • F042 A星算法课程推荐(A*算法) | 课程知识图谱|课程推荐vue+flask+neo4j B/S架构前后端分离|课程知识图谱构造
  • STM32H743-ARM例程34-BootROM
  • Parasoft C/C++test如何在ARM DS-5环境中进行测试(上)
  • 网站建设批复意见证券投资网站建设
  • 激光测距望远镜的光学设计
  • Unity3D与Three.js构建3D可视化模型技术对比分析
  • 【开发者导航】开源轻量的 Linux 平台设计协作客户端:Figma Linux
  • 从 “不敢练” 到 “实战练”!XM-E01-100 桌面五轴重构院校实训课堂
  • Rust 开发环境管理:安装与切换 Rust 版本的深度实践
  • 网站建设费用模板正规网站建设推荐
  • 学习笔记前言
  • 专业软件网站建设班级网站建设维护
  • day03(10.30)——leetcode面试经典150
  • MySQL8.0全栈初始化脚本集
  • 算法20.0
  • golang程序对接prometheus
  • 服务器负载均衡架构部署:Keepalived+Nginx 实现双机热备与高可用负载均衡
  • 内容分享网站设计在阿里巴巴上做网站有效果吗
  • SAP PP BOM主数据维护接口分享
  • 合成孔径雷达(SAR)及其信号处理:一文读懂,从类比到原理
  • 深度学习神经网络入门-问答学习
  • 化工防爆气象站:化工安全的气象监测设备
  • 做货运网站找哪家好如何用云服务器搭建个人网站
  • RAG拓展、变体、增强版(三)
  • 【PDF】PDF文件体详解
  • C++ STL list 容器学习笔记:双向链表的 “小火车“ 操控指南
  • Visual Studio Code (VS Code) 官方下载渠道
  • 网站制作的相关术语有哪些建一个网站多少钱
  • 企业网站建设属于什么费用搜索引擎优化的英文缩写