Slide 8
Slide 8 text
1. クラスタよりスキーマ情報を取得
2. 該当のスキーマ情報を探す
3. 動作定義したカスタムスキーマの作成
4. kustomizeに読み込ませる
解決⼿順
openapi:
- path: schema.json
$ kustomize openapi fetch > schema.json
"dev.knative.serving.v1.Service": {
"description": "Service acts as a top-level container that ...省略..."
"properties": {
~省略~
}
}
"x-kubernetes-patch-merge-key": "name", # マージのkeyを指定
"x-kubernetes-patch-strategy": "merge" # パッチの動作を定義
{
"definitions": {
"dev.knative.serving.v1.Service": {
"properties": {
"spec": {
"properties": {
"template": {
"properties": {
"metadata": {
"x-kubernetes-preserve-unknown-fields": true
},
"spec": {
"properties": {
"containers": {
"items": {
"properties": {
"env": {
"items": {
"default": {}
},
"type": "array",
"x-kubernetes-patch-merge-key": "name", # マージのkeyを指定
"x-kubernetes-patch-strategy": "merge" # パッチの動作を定義
}
},
"type": "object"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name", # マージのkeyを指定
"x-kubernetes-patch-strategy": "merge" # パッチの動作を定義
}
},
"required": [
"containers"
],
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "serving.knative.dev",
"kind": "Service",
"version": "v1"
}
]
}
}
}