|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
创建应用程序
|
有关开发图表的完整指南,请参阅官方 Helm 文档中的 图表模板开发者指南。 |
图表类型
Rancher 支持两种不同类型的图表:Helm 图表和 Rancher 图表。
Rancher 图表
Rancher 图表是原生 Helm 图表,包含两个增强用户体验的文件:app-readme.md 和 questions.yaml。在 Rancher 图表的附加文件 中了解更多信息。
Rancher 图表添加了简化的图表描述和配置表单,使应用程序部署变得简单。Rancher 用户无需浏览整个 Helm 变量列表即可了解如何启动应用程序。
图表目录结构
您可以在标准的基于 HTTP 的 Helm 储存库中提供 Helm 图表。有关更多信息,请参阅官方 Helm 文档中的 图表储存库指南。
或者,您可以在 Git 储存库中组织图表,并直接将其添加到 APP 市场。
下表演示了 Git 储存库的目录结构。charts 目录是储存库基础下的顶级目录。将储存库添加到 Rancher 将暴露其中包含的所有图表。questions.yaml、README.md 和 requirements.yml 文件是特定于 Rancher 图表的,但对于图表自定义是可选的。
<Repository-Base>/ │ ├── charts/ │ ├── <Application Name>/ # This directory name will be surfaced in the Rancher UI as the chart name │ │ ├── <App Version>/ # Each directory at this level provides different app versions that will be selectable within the chart in the Rancher UI │ │ │ ├── Chart.yaml # Required Helm chart information file. │ │ │ ├── questions.yaml # Form questions displayed within the Rancher UI. Questions display in Configuration Options.* │ │ │ ├── README.md # Optional: Helm Readme file displayed within Rancher UI. This text displays in Detailed Descriptions. │ │ │ ├── requirements.yml # Optional: YAML file listing dependencies for the chart. │ │ │ ├── values.yml # Default configuration values for the chart. │ │ │ ├── templates/ # Directory containing templates that, when combined with values.yml, generates Kubernetes YAML.
Rancher 图表的附加文件
在创建自定义目录之前,您应该对 Rancher chart 与原生 Helm chart 的区别有基本了解。Rancher 图表在目录结构上与 Helm 图表略有不同。Rancher 图表包含两个 Helm 图表所没有的文件。
-
app-readme.md一个提供图表 UI 头部描述性文本的文件。
-
questions.yml一个包含表单问题的文件。这些表单问题简化了图表的部署。没有它,您必须使用 values YAML 配置来配置部署,这更为复杂。以下图像显示了 Rancher 图表(包含
questions.yml)与原生 Helm 图表(不包含questions.yml)之间的区别。
questions.yml 的 Rancher 图表
questions.yml 的 Helm 图表Chart.yaml
注解
Rancher 支持您可以添加到 Chart.yaml 文件的附加注释。这些注释允许您定义应用程序依赖关系或配置其他 UI 默认值:
| 注释 | 说明 | 示例 |
|---|---|---|
catalog.cattle.io/auto-install |
如果设置,将在安装此图表之前安装指定版本的图表。 |
other-chart-name=1.0.0 |
catalog.cattle.io/display-name |
应在 APP 市场中显示的显示名称,而不是图表名称。 |
图表的显示名称 |
catalog.cattle.io/namespace |
一个用于部署图表的固定名称空间。如果设置,用户无法更改此项。 |
fixed-namespace |
catalog.cattle.io/release-name |
Helm 安装的固定发布名称。如果设置,用户无法更改此项。 |
fixed-release-name |
catalog.cattle.io/requests-cpu |
集群中未预留的处理器总量。如果可用的处理器较少,将显示警告。 |
2000m |
catalog.cattle.io/requests-memory |
集群中未预留的总内存量。如果可用的内存较少,将显示警告 |
2Gi |
catalog.cattle.io/os |
限制此图表可以安装的操作系统。可能的值: |
linux |
最小/最大 Rancher 版本
对于每个图表,您可以添加最小和/或最大 Rancher 版本,这决定了该图表是否可以从 Rancher 部署。
|
尽管 Rancher 发布版本以 |
rancher_min_version: 2.3.0 rancher_max_version: 2.3.99
问题变量引用
此引用包含您可以在 questions.yml 中使用的变量,嵌套在 questions: 下。
| 变量 | 类型 | 必需 | 说明 |
|---|---|---|---|
变量 |
字符串 |
true |
定义在 |
label |
字符串 |
true |
定义 UI 标签。 |
描述 |
字符串 |
false |
指定变量的描述。 |
type |
字符串 |
false |
如果未指定,则默认为 |
必需 |
布尔 |
false |
定义变量是否为必需(true | false) |
default |
字符串 |
false |
指定默认值。仅在 |
资源组 |
字符串 |
false |
按输入值分组问题。 |
min_length |
整数 |
false |
最小字符长度。 |
最大长度 |
整数 |
false |
最大字符长度。 |
min |
整数 |
false |
最小整数值。 |
max |
整数 |
false |
最大整数值。 |
options |
[]string |
false |
当变量类型为 |
valid_chars |
字符串 |
false |
输入字符验证的正则表达式。 |
invalid_chars |
字符串 |
false |
无效输入字符验证的正则表达式。 |
子问题 |
[]子问题 |
false |
添加一个子问题数组。 |
show_if |
字符串 |
false |
如果条件变量为真,则显示当前变量。例如 |
show_subquestion_if |
字符串 |
false |
如果为真或等于选项之一,则显示子问题。例如 |
|
|