模板继承
我们可以把不容易变动的功能放在父模板中,其他模板只需要继承改模板。
举例说明:
第一步创建父模板
# cat pod-parent.yaml.j2 apiversion: v1 kind: Pod metadata: {% block metadata %} {% endblock %} spec: containers: {% block containers %} {% endblock %}
第二步:引用上面的父模板
# cat pod.yaml.j2 {% extends 'pod-parent.yaml.j2' %} {% block metadata %} name: {{ pod_name }} namespace: {{ ns_name }} lables: prometheus.io/scrape: true {% endblock %} {% block containers %} - name: {{ container_name }} image: {{ image_name }} command: {{ cmd_name }} {% endblock %}
第三步: 渲染
j2('config_file','templates','pod.yaml.j2','pod.yaml',pod_name='test',ns_name='default',container_name='test',image_name='python',cmd_name='sh -c "python3 -m http.server"')
最终解析结果
# cat pod-parent.yaml.j2 apiversion: v1 kind: Pod metadata: name: test namespace: default lables: prometheus.io/scrape: true spec: containers: - name: test image: python command: sh -c "python3 -m http.server"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏