序文
邪悪なGoogleは常にいくつかの標準化されたものを取得し、その後、一般的に使用されるツールヘルムであるKubernetetsサービスを展開するときなど、いくつかのばかげたフォローを行います。本日、helm2を紹介します(3も一般的です)。ヘルムプラグインを開発するとき、プラグインのテンプレートと値の生成結果をテストする必要があることがよくあります。使用するたびにk8sにデプロイすることはお勧めできません。したがって、オフィシャルは--dry-run--debugパラメーターを提供します。今日は友達に2つのことを紹介します。
- ヘルムマルチレベルチャートの書き方
- 動的に割り当てた値に値の属性チャートヘルムコマンドを使用して
1.マルチレベルチャートの開発
ヘルムプラグインの開発とデバッグ
- 最初のステップは、新しいチャートを作成することです
$ mkdir /helm
$ cd helm/
$ helm create mychart
Creating mychart
# 下面可以不用执行,我这里删除是因为要做个简单的例子,要不文件太多容易乱。
$ rm -rf mychart/templates/*
- ステップ2:configmap.yamlファイルを作成する
apiVersion: v1
kind: ConfigMap
metadata:
name: {
{
.Release.Name }}-cfgmap2
data:
dessert: {
{
.Values.dessert }}
- 3番目のステップでは、dessert属性をvalues.yamlに追加します。(上記のテンプレートを見ることができます。Values.dessertは、values.yamlファイルからdessert属性を見つけることを表します)。
- このチャートを個別にテスト、テストできます
$ helm install --dry-run --debug /helm/mychart
SERVER: "localhost:44134"
CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/_scratch/mychart
NAME: newbie-elk
TARGET NAMESPACE: default
CHART: mychart 0.1.0
MANIFEST:
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: newbie-elk-cfgmap2
data:
dessert: sunxy
ヘルムのサブチャートの執筆
Helmは、サブチャート定義、つまり「パッケージ内パッケージ」をサポートしています。チャートにはサブチャートがあります。
まず、定義はのメインチャートの必要性、比較的簡単ですチャートフォルダ内には、その後の作成チャートを、
これは、サブチャートの新しいメインチャートです。
- 最初のステップは、新しいチャートを作成し、チャート内のチャートフォルダーを今すぐ見つけることです。
$ cd helm/mychart/charts
$ helm create subchart
Creating subchart
# 下面可以不用执行,我这里删除是因为要做个简单的例子,要不文件太多容易乱。
$ rm -rf /helm/mychart/charts/subcahrt/templates/*
- 2番目のステップはconfigmap.yamlファイルを作成することです。メイン/サブチャートの複製の問題をシミュレートしているため、ファイルの内容が同じであっても、今はメインチャートと同じであることがわかります。
apiVersion: v1
kind: ConfigMap
metadata:
name: {
{
.Release.Name }}-cfgmap2
data:
dessert: {
{
.Values.dessert }}
- 同様に、次のチャートをテストし、これを個別にテストします
$ helm install --dry-run --debug /helm/mychart/charts/subchart
SERVER: "localhost:44134"
CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/_scratch/mychart/charts/subchart
NAME: newbie-elk
TARGET NAMESPACE: default
CHART: subchart 0.1.0
MANIFEST:
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: newbie-elk-cfgmap2
data:
dessert: sunxy
メインのValues.yamlがサブチャートに値を割り当てる方法
子チャートの値を上書きするには、親チャートのvalues.yamlファイルにこれを書き込むことができます:
favorite:
drink: coffee
food: pizza
pizzaToppings:
- mushrooms
- cheese
- peppers
- onions
subchart: # 注意此处名称
dessert: airoot.cn
テストの下で、結果を入力します。
data:
dessert: airoot.cn
メインチャートとサブチャートの両方にアクセスできるように、グローバルValueプロパティを定義することもできます。
favorite:
drink: coffee
food: pizza
pizzaToppings:
- mushrooms
- cheese
- peppers
- onions
subchart:
dessert: ice cream
global:
salad: caesar
2.値の値を動的に変更できますか?
ヘルムセットによる動的割り当て
多くの友人は、ヘルムを動的に割り当てることができることを知らないかもしれません。
たとえば、ヘルムの動的割り当てでは、set関数を使用します。
$ helm install --dry-run --debug ./mychart --set dessert=www.airoot.cn
set
:を介してサブチャートを設定することにより、例を確認することもできます。
$ helm install --dry-run --debug ./ --set dessert=www.airoot.cn --set subchart.dessert==airoot-uisys
ヘルムチャートの値は、ヘルムの設定パラメータを使用して動的に設定できることがわかります。サブチャートを設定する場合は、サブチャートフォルダの名前とvalue.yamlからの属性名を追加するだけで済みます。これはわかりやすいです。
幸いなことに、私たちは書き方を理解しました。皆さんが私に注目してくれることを願っています。将来、いくつかの大ヒットテクノロジーストリームを推進していきます。