Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kustomizeでCustomResourceにいい感じにStrategicMergePat...
Search
s-shirayama
August 26, 2021
Technology
1
1.6k
kustomizeでCustomResourceにいい感じにStrategicMergePatchする / StrategicMergePatch to CustomResource with Kustomize
Kubernetes Meetup Tokyo #44のLT発表資料です。
https://k8sjp.connpass.com/event/218143/
s-shirayama
August 26, 2021
Tweet
Share
More Decks by s-shirayama
See All by s-shirayama
安心・安全なCluster移行で実現するKubernetesのバージョンアップ / Kubernetes upgrade with cluster migration
sshirayama
1
1.1k
How Istio helped us investigate failures on our microservices
sshirayama
0
64
継続的なバージョンアップのためのテスト戦略 〜自動テストの導入とコンテナ化〜 / Testing Strategy for Continuous Version Up
sshirayama
1
740
Other Decks in Technology
See All in Technology
Frontier airlines®️ USA Contact Numbers: Complete 2025 Support Guide
oliversmith12
0
110
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
320
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
6
4k
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
5.6k
20250705 Headlamp: 專注可擴展性的 Kubernetes 用戶界面
pichuang
0
190
モバイル界のMCPを考える
naoto33
0
410
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
130
KubeCon + CloudNativeCon Japan 2025 に行ってきた! & containerd の新機能紹介
honahuku
0
120
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
2
570
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.5k
asken AI勉強会(Android)
tadashi_sato
0
170
敢えて生成AIを使わないマネジメント業務
kzkmaeda
1
250
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Speed Design
sergeychernyshev
32
1k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
250
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
GraphQLとの向き合い方2022年版
quramy
49
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
52k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
A better future with KSS
kneath
239
17k
The Language of Interfaces
destraynor
158
25k
Transcript
kustomizeでCustomResourceにいい感じに StrategicMergePatchする Kubernetes Meetup Tokyo #44 LT Shota Shirayama ECインキュベーション開発部
Rakuten Group, Inc.
2 kustomize 便利ですよね base overlays output + = • base/*
→ 共通の設定 • overlays/development/* → 開発環境特有の設定 • overlays/production/* → 本番環境特有の設定
3 CustomResource だと StrategicMergePatch がいい感じにあたらない base overlays output + =
Overlaysで指定したリストで置き換えられてしまう。 (kustomizeがリストを扱うときのDefaultの挙動)
4 なぜ︖ k8s Native Resource のスキーマ定義が kustomize内で参照されている。 x-kubernetes-patch-xxx で何をキーにマージ するのかが指定されている。
これが指定されていない場合、kustomizeは arrayをそのまま置き換えてしまう。 https://github.com/kubernetes- sigs/kustomize/blob/kustomize/v4.2.0/kyaml/openapi/kubernetesapi/v1204/swagger.json
5 CustomResrouce⽤の独⾃のスキーマ定義も利⽤できるようになった • v4.1.0 (2021/4/14 Release) の追加機能 • 独⾃のスキーマ定義ファイルをkustomizeで読み込むことができる https://github.com/kubernetes-
sigs/kustomize/blob/kustomize/v4.2.0/examples/customOpenAPIschema.md ただし、利⽤にはいくつか注意したい点がある
6 CR⽤のスキーマ定義利⽤時の注意点︓公式のスキーマ定義の提供がない • CustomResrouceの提供元から公式のスキーマ定義が提供されていない場合がある • 例)ArgoRolloutはIssue #1210にあがっているが未提供(2021/8/16時点) ↓ • ⾃作する必要がある。
7 CR⽤のスキーマ定義利⽤時の注意点︓ Defaultのスキーマ定義は読み込まれない • 独⾃のスキーマ定義を読み込むと、kustomizeがDefaultで読み込んでいたk8s Native Resrouceのスキーマ定義は読み込まれない。 • DeploymentなどにStrategicMergePatch がいい感じにあたらなくなる
↓ • kustomizeのDefaultで読み込まれているスキーマ定義と、独⾃のスキーマ定義を マージしたスキーマ定義ファイルを作成する DEFAULT_SCHEMA_URL= https://raw.githubusercontent.com/kubernetes- sigs/kustomize/kustomize/v4.2.0/kyaml/openapi/kubernetesapi/v1204/swagger.json
8 CR⽤のスキーマ定義利⽤時の注意点︓ Remoteのスキーマ定義は参照できない • “openapi:” では、“resources:” や “configurations:” のようにRemoteのURLを指定する ことができない
• kustomize buildするそれぞれの場所にスキーマ定義ファイルを配置しておかな ければならない ↓ • Base⽤のリポジトリを各Manifest⽤のリポジトリから参照する⽅式を採⽤した Base repo Manifest repo Manifest repo Manifest repo schema.json kustomization.yaml
9 まとめ • kustomizeでCustomResourceにいい感じにStrategicMergePatchできなかったが、 v4.1.0からはできるようになった。 • ただし、利⽤する際にはいくつか注意点がある • 公式のスキーマ定義の提供がない場合がある •
Defaultのスキーマ定義は読み込まれない • Remoteのスキーマ定義は参照できない
None