この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

アプリを作成する

チャートの開発に関する完全な手順については、公式のHelmドキュメントにある チャートテンプレート開発者ガイドを参照してください。

チャートタイプ

Rancherは2種類のチャートをサポートしています:HelmチャートとRancherチャート。

Helmチャート

ネイティブHelmチャートには、アプリケーションとそれを実行するために必要な他のソフトウェアが含まれています。ネイティブHelmチャートをデプロイする際には、YAMLエディタでチャートのパラメータ値を提供できます。

Rancherチャート

Rancherチャートは、ユーザーエクスペリエンスを向上させる2つのファイル`app-readme.md`と`questions.yaml`を持つネイティブHelmチャートです。それらについては、Rancherチャートの追加ファイルについて。を参照してください。

Rancherチャートは、アプリケーションのデプロイを容易にするために、簡略化されたチャートの説明と設定フォームを追加します。Rancherユーザーは、アプリケーションを起動する方法を理解するために、Helm変数の全リストを読み通す必要はありません。

チャートディレクトリ構造

Helmチャートを標準のHTTPベースのHelmリポジトリで提供できます。詳細については、公式のHelmドキュメントにある チャートリポジトリガイドを参照してください。

また、チャートをGitリポジトリに整理し、これをアプリマーケットプレイスに直接追加することもできます。

以下の表は、Gitリポジトリのディレクトリ構造を示しています。charts`ディレクトリは、リポジトリのベースの下にある最上位ディレクトリです。リポジトリをRancherに追加すると、その中に含まれるすべてのチャートが公開されます。`questions.yamlREADME.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 チャートがネイティブ Helm チャートとどのように異なるかについて基本的な理解を持っている必要があります。Rancher チャートは、ディレクトリ構造において Helm チャートとわずかに異なります。Rancher チャートには、Helm チャートにはない 2 つのファイルが含まれています。

  • app-readme.md

    チャートの UI ヘッダーに表示される説明テキストを提供するファイル。

  • questions.yml

    フォームの質問を含むファイル。これらのフォームの質問は、チャートのデプロイを簡素化します。これがない場合、値 YAML 設定を使用してデプロイを構成する必要があり、より難しくなります。以下の画像は、Rancher チャート(questions.yml を含む)とネイティブ Helm チャート(questions.yml を含まない)の違いを示しています。

questions.yml
Figure 1. questions.yml を含む Rancher チャート
values.yaml
Figure 2. 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 Marketplace に表示されるべき表示名。

チャートの表示名

catalog.cattle.io/namespace

チャートがデプロイされるべき固定のネームスペース。設定されている場合、ユーザーによって変更することはできません。

fixed-namespace

catalog.cattle.io/release-name

Helm インストールの固定リリース名。設定されている場合、ユーザーによって変更することはできません。

fixed-release-name

catalog.cattle.io/requests-cpu

クラスター内で予約されていないべき CPU の総量。CPUが不足している場合、警告が表示されます。

2000m

catalog.cattle.io/requests-memory

クラスター内で予約されていないメモリの総量。メモリが不足している場合、警告が表示されます。

2Gi

catalog.cattle.io/os

このチャートをインストールできるOSを制限します。指定可能な値:linuxwindows。デフォルト:制限なし

linux

キーワード

keywords`オプションを`Chart.yaml`ファイルに指定することで、Rancher UIでアプリケーションをソートするためのカテゴリのリストを提供することが可能です。例:`infrastructure、`monitoring`など。

questions.yml

`questions.yml`内では、ほとんどの内容はエンドユーザーに尋ねる質問に関するものですが、このファイルに設定できる追加のフィールドもあります。

最小/最大Rancherバージョン

各チャートに対して、最小および/または最大のRancherバージョンを追加できます。これにより、このチャートがRancherからデプロイ可能かどうかが決まります。

Rancherのリリースバージョンは`v`で始まりますが、このオプションを使用する場合、リリースバージョンには_プレフィックスはありません_。

rancher_min_version: 2.3.0
rancher_max_version: 2.3.99

質問変数参照

この参照には、`questions.yml`の下にネストされた`questions:`で使用できる変数が含まれています。

[可変] タイプ 必須 説明

変数

文字列

true

`values.yml`ファイルに指定された変数名を定義し、ネストされたオブジェクトには`foo.bar`を使用します。

label

文字列

true

UIラベルを定義します。

description

文字列

false

変数の説明を指定します。

type

文字列

false

指定されていない場合は`string`がデフォルトとなります(現在サポートされているタイプは文字列、マルチライン、ブール値、整数、列挙、パスワード、ストレージクラス、ホスト名、PVC、シークレット、クラウドクレデンシャルです)。

必須

bool

false

変数が必須かどうかを定義します(true | false)

default

文字列

false

デフォルト値を指定します。`values.yml`ファイルに対応する値がない場合にのみ使用されます。

グループ

文字列

false

入力値によって質問をグループ化します。

min_length

int

false

最小文字数。

max_length

int

false

最大文字数。

min

int

false

最小整数値。

max

int

false

最大整数値。

options

[]string

false

変数タイプが`enum`の場合、オプションを指定します。例えば、
- "ClusterIP"
- "NodePort"
- "LoadBalancer"

valid_chars

文字列

false

入力文字の検証用正規表現。

invalid_chars

文字列

false

無効な入力文字の検証用正規表現。

subquestions

[]サブ質問

false

サブ質問の配列を追加します。

show_if

文字列

false

条件付き変数が真の場合、現在の変数を表示します。例えば、show_if: "serviceType=Nodeport"

show_subquestion_if

文字列

false

真であるか、オプションのいずれかに等しい場合、サブ質問を表示します。例えば、show_subquestion_if: "true"

`subquestions[]`は`subquestions`または`show_subquestions_if`キーを含むことはできませんが、上記の表の他のすべてのキーはサポートされています。