私有应用商店
应用商店将会根据环境中的调度引擎来显示不同的应用商店模板。
基于不同调度引擎的模板
- Cattle 调度引擎: 界面中的应用模板来自文件夹
- 调度引擎: 界面中的应用模板来自
swarm-templates
文件夹 - Mesos 调度引擎: 界面中的应用模板来自
mesos-templates
文件夹
基础设施服务模板
Rancher的基础设施服务可以从中启用, 这些模板来自于infra-templates
文件夹。
这些服务从应用商店菜单中也可以看到, 您可以看到全部的基础设施服务包括那些和当前的编排调度引擎不兼容的服务. 我们建议从环境模板中启用基础设施服务,而不是直接从应用商店中启动。
您需要创建一个templates
文件夹作为根目录。templates
文件夹将包含所有您想创建的应用的文件夹。我们建议为应用的文件夹起一个简单明了的名称。
在应用模板的文件夹中 (例如 cloudflare
), 将包含该应用模板的各个版本所对应的文件夹。第一个版本为0
,后续每个版本加1。比如,第二个版本应该在 1
文件夹中。每增加一个新版本的文件夹,您就可以使用这个新版本的应用模版来升级您的应用了。另外,您也可直接更新0
文件夹中的内容并重新部署应用。
在Rancher应用商店中展示出的Rancher Catalog文件
在应用商店模板的文件夹中,如何展示应用商店模板详细内容取决于两个文件。
- 第一个文件为
config.yml
,包含了应用模板的详细信息。
name: # 应用商店模板名称
description: |
# 应用商店模板描述
version: # 应用商店模板对应的版本
maintainer: # 该模板的维护者
license: # 许可类型
projectURL: # 和模板相关的URL
- 另外一个文件为该模板的logo。该文件的前缀必须为
catalogIcon-
。对于每一个应用模板,将至少有以下三个部分组成:config.yml
,catalogIcon-entry.svg
, 以及0
文件夹 - 包含该模板的第一个版本配置。
docker-compose.yml
以及为在Rancher中使用启动服务必须提供的两个文件. 该文件将被保存在版本文件夹中。 (如: 0
, 1
, 等等)。
docker-compose.yml
为一个可以使用 docker-compose up
来启动的文件。 该服务遵循docker-compose格式。
rancher-compose.yml
将包含帮助您自定义应用模板的其他信息。在catalog
部分中,为了应用模板可以被正常使用,有一些选项是必填的。
您也可以创建一个可选的 README.md
, 可以为模板提供一些较长的描述以及如何使用他们。
对于 upgrade_from
, 有三种值可以使用。
- 只允许从某一个版本升级:
"1.0.0"
- 可以从高于或低于某一个版本升级:
">=1.0.0"
,"<=2.0.0"
- 定义一个区间升级:
">1.0.0 <2.0.0 || >3.0.0"
注意: 如同例子中的配置,请确保您配置的版本号或版本范围带上双引号。
rancher-compose.yml中的问题部分
应用商店
中questions
部分允许用户更改一个服务的一些配置选项。 其答案
将在被服务启动之前被预配置在 docker-compose.yml
中.
每一个配置选项都在rancher-compose.yml
的 questions
部分配置.
version: '2'
catalog:
questions:
- variable: # A single word that is used to pair the question and answer.
label: # The "question" to be answered.
description: | # The description of the question to show the user how to answer the question.
default: # (Optional) A default value that will be pre-populated into the UI
type: # How the questions are formatted and types of response expected
类型
type
控制了问题如何在UI中展现以及需要什么样的答案。
string
UI中将显示文本框来获取答案,获取到的答案将被设置为字符串型格式。boolean
UI中将通过单选按钮获取答案,获取到的答案将被格式化为true
或者false
。 如果用户选择了单选按钮,答案将被格式化为true
。password
UI中将显示文本框来获取答案,获取到的答案将被设置为字符串型格式。service
UI中将展示一个下拉框,所有该环境的服务都会显示出来。enum
UI中将展示一个下拉框,options
中的配置将会被展示出来。
multiline
多行文本框会被显示在UI中。
version: '2'
catalog:
questions:
- variable:
label:
description: |
type: multiline
default: |
Each line
would be shown
on a separate
line.
这里有一个基于的开源项目, 可以被用于创建一个空的应用商店目录。