OpenShift 全部俺 Advent Calendar 2017
たとえばmaster-config.yamlをカスタマイズしたい場合にどうやって記述すればいいのかなどを調べたい場合があります。
以下に項目がさらっと書かれたドキュメントがあり、さらっと把握するのには役立ちますが、やはりyaml形式の場合にどのように書いたら良いというようなガイドはありません。
https://docs.openshift.org/3.11/install_config/master_node_configuration.html
どこを見れば良いかというとソースコードです。OpenShiftはGo言語で記述されており、yaml形式の設定ファイルはこの定義とダイレクトにマップしています。
https://github.com/openshift/origin/blob/release-3.7/pkg/cmd/server/api/v1/types.go
たとえばkubernetesMasterConfig.controllerArguments
は以下のように定義されています。
ControllerArguments ExtendedArguments `json:"controllerArguments"`
ExtendedArgumentsはkeyがstring、valueが[]stringのmapです。
type ExtendedArguments map[string][]string
つまり記述はこんな感じになります。
kubernetesMasterConfig: controllerArguments: foo: - bar - baz hoge: - "10"
string型であるので、数値などはクオートしないといけません。
Go言語の型とyaml形式のちょっとした知識は必要となりますが、難しいものではないので、このapi/v1/types.goを参照すればよい、ということさえわかっていればすぐ調べられます。
ちなみに各コンポーネントのデフォルト値を調べたい場合はソースツリーからoptions.go
というファイルをリストするとたぶんわかります。