22章Configuration Template(設定テンプレート)
Configuration Template(設定テンプレート)パターンを使うことで、アプリケーション起動時に巨大で複雑な設定を作ったり処理できるようになります。生成された設定は、設定テンプレートを処理する際に使われたパラメータによって、実行する環境ごとに特有のものになります。
22.1 問題
「20章 Configuration Resource(設定リソース)」において、KubernetesネイティブなリソースオブジェクトであるConfigMapとSecretを使ってアプリケーションを設定する方法を見ました。しかし、設定ファイルは大きくなったり複雑になったりする場合もあります。設定ファイルを直接ConfigMapに入れるのは、リソース定義に正確に挿入しなければならず、問題の種になる場合もあります。注意深く、クォートなどの特殊文字を使わないようにしながら、Kubernetesのリソース記述の文法に違反しないようにする必要があります。設定サイズの大きさも別の問題としてあり、ConfigMapやSecretの大きさの合計には1MBという制限があります(この制限は内部で動くバックエンドストアのetcdによるものです)。
大きな設定ファイルは通常、実行環境によって少しだけ違います。各環境はほとんど同じデータを持っているので、ConfigMapにはたくさんの重複や冗長さが生まれてしまいます。この章で見ていくConfiguration Templateパターンは、このようなユースケースでの問題を扱うものです。
22.2 解決策
重複を減らすためには、データベース接続パラメータのような環境によって異なる値のみをConfigMapや環境変数に直接保存するのが理にかなっています。コンテナの起動中、完全な設定ファイル(WildFlyでいうstandalone.xmlなど)を作成するために設定テンプレートから生成すればよいのです。アプリケーションの初期化中にテンプレート処理するには、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access