Slide 1

Slide 1 text

Kpt を使って組み換え可能な Manifest Pipeline を作ろう! チェシャ猫 (@y_taka_23) KubeFest Tokyo 2020 (13th Jun. 2020)

Slide 2

Slide 2 text

Kpt [képt] Kubernetes Package Manager named after

Slide 3

Slide 3 text

Base Repo Team Repo Developer Cluster 1. get / follow 3. push 4. apply 2. construct

Slide 4

Slide 4 text

Base Repo Team Repo Developer Cluster 1. get / follow 3. push 4. apply 2. construct

Slide 5

Slide 5 text

Manifest 構築ツールとしての Kpt ● Setter ○ YAML 内の指定した項目を置換 ● Substitution ○ YAML 内の文字列の一部を置換 ● Function ○ カスタム変換・バリデーションを記述可能

Slide 6

Slide 6 text

Manifest 構築ツールとしての Kpt ● Setter ○ YAML 内の指定した項目を置換 ● Substitution ○ YAML 内の文字列の一部を置換 ● Function ○ カスタム変換・バリデーションを記述可能

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

置換したい項目にコメント

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

OpenAPI 形式で置換を定義

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Manifest 構築ツールとしての Kpt ● Setter ○ YAML 内の指定した項目を置換 ● Substitution ○ YAML 内の文字列の一部を置換 ● Function ○ カスタム変換・バリデーションを記述可能

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

アノテーション追加

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Q:Docker 化する意義は? A:各ステップが配布可能に

Slide 21

Slide 21 text

配布されている Function の例 ● マニフェスト変換系 ○ : Helm Chart をレンダリング ○ : リソース要求量を追記 ● バリデーション系 ○ : OPA 形式の制約検査 ○ : PodSecurityPolicy に対する Lint

Slide 22

Slide 22 text

Q:なぜ Manifest + コメント? A:各ステップが合成可能に

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Transform 2 Source Manifest Transform 1 Validation Result Manifest

Slide 25

Slide 25 text

パッケージマネージャ + パイプラインの「パイプ記号」部分

Slide 26

Slide 26 text

まとめ ● Manifest 管理ツール Kpt ○ unix コマンドの「パイプ」としても振る舞う ● カスタム Function も定義可能 ○ Docker 化されているので配布が容易 ● 入出力は常に完全な Manifest YAML ○ 複数のステップを連結できる

Slide 27

Slide 27 text

Enjoy Manifest Pipelining! Presented by チェシャ猫 (@y_taka_23)