Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

本文主要介绍 K8s YAML 项目中的服务变量功能。

变量配置

选中服务,点击右侧的变量进入到服务变量配置页面。包括系统内置变量、自定义变量和全局变量。

  • 系统内置变量和自定义变量可在服务 YAML 配置中进行引用
  • 服务的 YAML 配置中,容器名称和镜像信息不可使用内置变量 $Namespace$ 和 $EnvName$
  • 支持配置全局变量,创建环境时可按需对默认值做覆盖,实现不同环境的差异化配置

变量

系统内置变量

包括 $Namespace$、$Product$、$Service$、$EnvName$,可直接在 YAML 中进行引用,具体说明如下:

  • $Namespace$:项目创建的环境所在的 K8s 空间名称
  • $Product$:项目名称
  • $Service$:服务名称
  • $EnvName$:创建的环境名称

自定义变量

  • 服务的 YAML 配置文件中形如 {{.Key}} 的内容可以自动解析为自定义变量。
  • 点击自定义变量下方的键值对、YAML 文件图标可切换变量视图。
  • 可修改服务变量的类型及默认值并校验正确性,支持字符串、枚举、布尔、YAML 四种类型。

变量

全局变量

点击自定义变量右侧的配置全局变量进行配置。

变量

添加全局变量,默认可选的键来自于所有服务的自定义变量(键名相同的变量视为同一个),也可以输入自定义键名来添加。

变量

变量的使用

创建环境

在创建环境时,可配置服务变量和环境全局变量,对服务配置中的变量默认值做覆盖,实现不同环境的差异化配置。

  1. 需要事先在服务中配置全局变量,创建环境时才可配置环境级别的全局变量
  2. 支持使用系统内置变量来为全局变量和服务变量赋值
  3. 只有和待创建环境服务列表中服务有关联的全局变量才可以在创建环境时指定
  4. 为服务配置变量值,可以自定义,或者一键勾选使用环境的全局变量

创建环境变量渲染

更新环境全局变量

在环境中,点击更新全局变量,可更新对应环境中的全局变量。

  1. 环境的全局变量在当前环境下生效
  2. 修改全局变量的值后,和全局变量有关联的服务将会自动更新,应用最新的变量值。
  3. 支持删除和服务无关联的全局变量
  4. 支持添加新的全局变量,待添加的变量需要先在服务的全局变量中定义

更新服务变量

在环境中添加服务或更新服务时,可对服务变量进行修改,支持手动修改或使用环境全局变量。更新服务时,同时可以通过勾选 更新服务配置,选择是否更新当前服务的 YAML 版本。

变量示例

以下述 YAML 配置文件为例说明:

  1. 第 4、11 行引用内置变量 $Product$,无需赋予默认值,在创建环境时内置变量会被自动渲染替换
  2. 第 7 行引用自定义变量 {{.portal_host}},在创建环境时可以使用默认值也可以再次修改
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: $Product$-index  // 使用系统内置变量 $Product$,环境创建时被渲染
spec:
  rules:
  - host: {{.portal_host}} // 使用自定义变量 {{.portal_host}},环境创建时被渲染
    http:
      paths:
      - backend:
          serviceName: $Product$-index
          servicePort: 80
        path: /
        ...更多内容省略...

最佳实践参考

利用服务的变量能力实现不同环境的差异化配置,最佳实践参考如下:

  • 数据库隔离
  • 域名区分
Prev
服务组件
Next
主机服务