14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

kubectlから利用できるkustomizeのバージョン

Last updated at Posted at 2020-01-16

https://github.com/kubernetes-sigs/kustomize/blob/master/docs/fields.md に記載されているkustomizeの仕様を読んでいたのですが、どうもおかしいな、、と思い調査しました。

kubectlに対応するkustomizeのバージョン

https://github.com/kubernetes-sigs/kustomize#kubectl-integration に記載がありました。

| kubectl version | kustomize version |
|---------|--------|
| v1.16.0 | v2.0.3 |
| v1.15.x | v2.0.3 |
| v1.14.x | v2.0.3 |

kubernetes v1.16.xを使っている場合はkustomizeはv2.0.3のようです。
kustomizeの最新版がv3.3.1とかなので結構古い・・

v1.17.xではどのバージョンなのか書かれていないが、ソースコードを見てみると

sigs.k8s.io/kustomize v2.0.3+incompatible

まだv2.0.3のようです。

kustomize v2.0.3の仕様

2つの方法がありました

kustoimze公式ドキュメントの古いバージョン

kubectlのドキュメント(こちらの方が読みやすい!)

これらに気づかず下記v3.3.1の仕様を読んでいて少しハマりました。

kustomize v3.3.1の仕様

先に調べてしまいましたが、この仕様はv1.17.0までのどのkubectlでも実行できません。
利用するにはkustomize v3.3.1をインストールする必要があります。

以降のドキュメントは https://github.com/kubernetes-sigs/kustomize/blob/master/docs/fields.md を読みながらのメモです。

Resources

  • resources
    • yamlファイルまたはkustomizaton.yamlを含むディレクトリ
    • basesの方はv2.1.0から廃止
  • CRDS
    • CRDに含まれるリソース名なども適切に変換するような仕組みがあるらしい

Generators

  • configMapGenerator
    • ファイルからConfigMapを作る
    • オブジェクトの名前に適切なハッシュを混ぜてくれる
  • secretGenerator
    • ファイルからSecretを作る
    • オブジェクトの名前に適切なハッシュを混ぜてくれる
  • genaratorOptions
    • Generator周りの設定
      • ラベル、アノテーション、ハッシュを名前につけるか
  • generators
    • pluginの設定

Transformers

  • commonLabels
    • 全てのリソースにつける共通のラベル
  • commonAnnotations
    • 全てのリソースにつける共通のアノテーション
  • images
    • コンテナイメージをさしかえる
  • inventory
    • kustomizeの実行結果を入れておくためのオブジェクトを指定する。
    • 通常ConfigMapを使うようだ
    • これを設定しておくとmanifestが変更された際に適切にpruneされるようになる予定
      • 現状cli-experimentalでその実装が行われている
    • last-applied-configrationと近い動きをしている
  • namespace
    • 全てのリソースにつけるNamespace
  • namePrefix
    • 全てのリソースにつけるPrefix
  • nameSuffix
    • 全てのリソースにつけるSuffix
  • replicas
    • 特定の名前のリソースのreplicaの上書き
  • patches
    • 特定のリソースに対するpatch
  • patchesStrategicMerge
    • 特定のリソースに対するpatch
  • pathesJson6902
    • 特定のリソースに対するpatch
  • transformers
    • pluginの設定

Meta

  • vars
    • マニフェストから参照できる変数を定義できる。定義は別のオブジェクトの特定のフィールドの参照という形で行う
    • varは 変数名、オブジェクトへの参照、フィールドへの参照のタプルである
    • varで参照できるのはstring型のみ。intやbool、arrayはできない
    • 変数の参照は'$(FOO)'という形で行うが、これはkustomize内部で定義された特定のフィールドでのみ利用可能
  • apiVersion
    • kustomization.yamlのバージョン
    • 今はkustomize.config.k8s.io/v1beta1
  • kind
    • Kustomizationで固定

まとめ

(kubernetes v1.17.x現在)kubectlから利用できるkustomizeは古いので気をつけましょう。

14
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?