Rancher-建立私有應用商店詳解

Rancher-建立私有應用商店

私有應用商店要遵循應用商店服務指定的格式才能夠正常的在Rancher中顯示出來。git

模板文件夾

應用商店將會根據環境中的調度引擎來顯示不一樣的應用商店模板。github

基於不一樣調度引擎的模板

  • Cattle 調度引擎: 界面中的應用模板來自templates文件夾
  • Swarm 調度引擎: 界面中的應用模板來自swarm-templates文件夾
  • Mesos 調度引擎: 界面中的應用模板來自mesos-templates文件夾

基礎設施服務模板

Rancher的基礎設施服務能夠從環境模板中啓用, 這些模板來自於infra-templates文件夾。docker

這些服務從應用商店菜單中也能夠看到, 你能夠看到所有的基礎設施服務包括那些和當前的編排調度引擎不兼容的服務. 咱們建議從環境模板中啓用基礎設施服務,而不是直接從應用商店中啓動。ide

目錄結構

-- templates (Or any of templates folder)
  |-- cloudflare
  |   |-- 0
  |   |   |-- docker-compose.yml
  |   |   |-- rancher-compose.yml
  |   |-- 1
  |   |   |-- docker-compose.yml
  |   |   |-- rancher-compose.yml
  |   |-- catalogIcon-cloudflare.svg
  |   |-- config.yml
...

 

你須要建立一個templates文件夾做爲根目錄。templates文件夾將包含全部你想建立的應用的文件夾。咱們建議爲應用的文件夾起一個簡單明瞭的名稱。svg

在應用模板的文件夾中 (例如 cloudflare), 將包含該應用模板的各個版本所對應的文件夾。第一個版本爲0,後續每一個版本加1。好比,第二個版本應該在 1 文件夾中。每增長一個新版本的文件夾,你就可使用這個新版本的應用模版來升級你的應用了。另外,你也可直接更新0文件夾中的內容並從新部署應用。ui

注意: 應用文件夾名稱須要爲一個單詞,文件名中不能包含空格。針對名字比較長的應用請使用- 鏈接符。在config.yml中的 name你可使用空格。this

在Rancher應用商店中展現出的Rancher Catalog文件

在應用商店模板的文件夾中,如何展現應用商店模板詳細內容取決於兩個文件。spa

  • 第一個文件爲 config.yml,包含了應用模板的詳細信息。
name: # 應用商店模板名稱
description: |
  # 應用商店模板描述
version: # 應用商店模板對應的版本
category: # 用於模板搜索時的目錄
maintainer: # 該模板的維護者
license: # 許可類型
projectURL: # 和模板相關的URL

 

  • 另一個文件爲該模板的logo。該文件的前綴必須爲 catalogIcon-

對於每個應用模板,將至少有如下三個部分組成: config.yml, catalogIcon-entry.svg, 以及 0 文件夾 - 包含該模板的第一個版本配置。code

Rancher 應用商店模板

docker-compose.yml以及rancher-compose.yml爲在Rancher中使用Rancher Compose啓動服務必須提供的兩個文件. 該文件將被保存在版本文件夾中。 (如: 0, 1, 等等)。orm

docker-compose.yml爲一個可使用 docker-compose up來啓動的文件。 該服務遵循docker-compose格式。

rancher-compose.yml將包含幫助你自定義應用模板的其餘信息。在catalog部分中,爲了應用模板能夠被正常使用,有一些選項是必填的。

你也能夠建立一個可選的 README.md , 能夠爲模板提供一些較長的描述以及如何使用他們。

rancher-compose.yml

version: '2'
catalog:
  name: # Name of the versioned template of the Catalog Entry
  version: # Version of the versioned template of the Catalog Entry
  description: # Description of the versioned template of the Catalog Entry
  minimum_rancher_version: # The minimum version of Rancher that supports the template, v1.0.1 and 1.0.1 are acceptable inputs
  maximum_rancher_version: # The maximum version of Rancher that supports the template, v1.0.1 and 1.0.1 are acceptable inputs
  upgrade_from: # The previous versions that this template can be upgraded from
  questions: #Used to request user input for configuration options

 

對於 upgrade_from, 有三種值可使用。

  1. 只容許從某一個版本升級: "1.0.0"
  2. 能夠從高於或低於某一個版本升級: ">=1.0.0", "<=2.0.0"
  3. 定義一個區間升級: ">1.0.0 <2.0.0 || >3.0.0"

注意: 如同例子中的配置,請確保你配置的版本號或版本範圍帶上雙引號。

rancher-compose.yml中的問題部分

應用商店questions 部分容許用戶更改一個服務的一些配置選項。 其答案 將在被服務啓動以前被預配置在 docker-compose.yml 中.

每個配置選項都在rancher-compose.ymlquestions 部分配置.

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
      required: # (Optional) Whether or not an answer is required. By default, it's considered `false`.
      type: # How the questions are formatted and types of response expected

 

類型

type 控制了問題如何在UI中展示以及須要什麼樣的答案。

合法的格式有:

  • string UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲字符串型格式。
  • int UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲整型格式。 UI會在服務啓動前對輸入進行校驗。
  • boolean UI中將經過單選按鈕獲取答案,獲取到的答案將被格式化爲true 或者 false。 若是用戶選擇了單選按鈕,答案將被格式化爲 true
  • password UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲字符串型格式。
  • service UI中將展現一個下拉框,全部該環境的服務都會顯示出來。
  • enum UI中將展現一個下拉框,options中的配置將會被展現出來。
version: '2'
catalog:
  questions:
    - variable:
      label:
      description: |
      type: enum
      options: # List of options if using type of `enum`
        - Option 1
        - Option 2
  • multiline 多行文本框會被顯示在UI中。
version: '2'
catalog:
  questions:
    - variable:
      label:
      description: |
      type: multiline
      default: |
        Each line
        would be shown
        on a separate
        line.
  • certificate 該環境的全部可用證書都會顯示出來。
version: '2'
catalog:
  questions:
    - variable:
      label:
      description: |
      type: certificate

基於Yeoman的應用目錄生成器

這裏有一個基於Yeoman開源項目, 能夠被用於建立一個空的應用商店目錄。

相關文章
相關標籤/搜索