Kpt を使って組み換え可能な Manifest Pipeline を作ろう! #k8sjp / KubeFest Tokyo 2020

Kpt を使って組み換え可能な Manifest Pipeline を作ろう! #k8sjp / KubeFest Tokyo 2020

KubeFest Tokyo 2020 で使用したスライドです。

332f89cc697355902a817506b6995f2b?s=128

y_taka_23

June 13, 2020
Tweet

Transcript

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

    (13th Jun. 2020)
  2. Kpt [képt] Kubernetes Package Manager named after

  3. Base Repo Team Repo Developer Cluster 1. get / follow

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

    3. push 4. apply 2. construct
  5. Manifest 構築ツールとしての Kpt • Setter ◦ YAML 内の指定した項目を置換 • Substitution

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

    ◦ YAML 内の文字列の一部を置換 • Function ◦ カスタム変換・バリデーションを記述可能
  7. None
  8. 置換したい項目にコメント

  9. None
  10. OpenAPI 形式で置換を定義

  11. None
  12. None
  13. None
  14. Manifest 構築ツールとしての Kpt • Setter ◦ YAML 内の指定した項目を置換 • Substitution

    ◦ YAML 内の文字列の一部を置換 • Function ◦ カスタム変換・バリデーションを記述可能
  15. None
  16. アノテーション追加

  17. None
  18. None
  19. None
  20. Q:Docker 化する意義は? A:各ステップが配布可能に

  21. 配布されている Function の例 • マニフェスト変換系 ◦ : Helm Chart をレンダリング

    ◦ : リソース要求量を追記 • バリデーション系 ◦ : OPA 形式の制約検査 ◦ : PodSecurityPolicy に対する Lint
  22. Q:なぜ Manifest + コメント? A:各ステップが合成可能に

  23. None
  24. Transform 2 Source Manifest Transform 1 Validation Result Manifest

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

  26. まとめ • Manifest 管理ツール Kpt ◦ unix コマンドの「パイプ」としても振る舞う • カスタム

    Function も定義可能 ◦ Docker 化されているので配布が容易 • 入出力は常に完全な Manifest YAML ◦ 複数のステップを連結できる
  27. Enjoy Manifest Pipelining! Presented by チェシャ猫 (@y_taka_23)