このドキュメントでは、基本的なModel in Imageモデル・ファイルの構文、ネーミングおよびマクロについて説明します。 詳細は、WebLogic Deploy Toolingのドキュメントを参照してください。
WDT 「ドメインの検出ツール」は、既存のドメイン・ホームからモデル・ファイルを生成する場合に特に便利です。
WebLogic Server管理サーバーおよび動的クラスタを定義するモデルYAMLファイルの例を次に示します。
domainInfo:
AdminUserName: '@@SECRET:__weblogic-credentials__:username@@'
AdminPassword: '@@SECRET:__weblogic-credentials__:password@@'
ServerStartMode: 'prod'
topology:
Name: '@@ENV:DOMAIN_UID@@'
AdminServerName: "admin-server"
Cluster:
"cluster-1":
DynamicServers:
ServerTemplate: "cluster-1-template"
ServerNamePrefix: "managed-server"
DynamicClusterSize: 5
MaxDynamicClusterSize: 5
CalculatedListenPorts: false
Server:
"admin-server":
ListenPort: 7001
ServerTemplate:
"cluster-1-template":
Cluster: "cluster-1"
ListenPort: 8001
このサンプル・モデル・ファイルは次のとおりです:
DOMAIN_UID
からドメイン名を導出しますが、これは必須ではありません。シークレットおよび環境変数へのモデル・ファイル・マクロ参照の詳細は、「モデル・ファイル・マクロ」を参照してください。
モデル・ファイル・マクロの使用
モデル・マクロを使用して、モデル・ファイルから任意のシークレットを参照できます。 これは、データベース・ユーザー名、パスワード、URLなどの可変値を処理する場合にお薦めします。 「モデル・ファイルでのシークレットの使用」を参照してください。
モデル内のすべてのパスワード・フィールドでシークレット・マクロを使用する必要があります。 パスワードはログまたはデバッグに表示される可能性があるため、プロパティ・ファイルまたはモデル・ファイルに直接含めないでください。
WDT 「モデルの暗号化ツール」で暗号化されたモデル・ファイルはサポートされていません。 かわりにシークレットを使用してください。
モデル・マクロを使用して、モデル・ファイルから任意の環境変数を参照できます。 これは、ドメインYAMLファイルでenv
スタンザを使用して定義できるプレーン・テキストの可変値を処理する場合に役立ち、組込みのDOMAIN_UID
環境変数にアクセスする場合にも役立ちます。 「モデル・ファイルでの環境変数の使用」を参照してください。
ほとんどのモデルでは、モデル変数ファイル(プロパティ・ファイルとも呼ばれる)の使用を最小化または排除し、かわりにシークレットまたは環境変数を使用すると便利です。
モデルには、WebLogic管理資格証明を参照するdomainInfo
スタンザが含まれる必要があります。 @@SECRET
マクロを予約済シークレット名__weblogic-credentials__
とともに使用して、この目的でドメインYAMLファイルのWebLogic資格証明シークレットを参照できます。 例えば:
domainInfo:
AdminUserName: '@@SECRET:__weblogic-credentials__:username@@'
AdminPassword: '@@SECRET:__weblogic-credentials__:password@@'
JRFドメイン・タイプ・モデルには、domainInfo.RCUDbInfo
スタンザが含まれている必要があります。 ノート: Model in ImageドメインでのJRFサポートは、オペレータ・バージョン4.1.0では非推奨です。かわりに、Domain on PVドメイン・ホーム・ソース・タイプを使用してください。
WDTがモデル・ファイルのロードに使用する順序を制御できます。「モデル・ファイルの命名およびロード順序」を参照してください。
モデル・ファイルのロード順序を制御する必要がある場合は、この項を参照してください。 最後にロードされたモデルの優先順位が最も高いため、複数のモデル・ファイルが同じ構成を参照する場合は順序が重要です。
ドメイン・ホームの作成中に、モデル・ファイルおよびプロパティ・ファイルは、最初にポッド内のconfiguration.models.modelHome
ディレクトリからロードされます。 modelHome
ファイルがすべてロードされると、ドメイン・ホームの作成によって、「WDTモデルConfigMap(オプション)」で説明されているオプションのWDT ConfigMapからファイルがロードされます。 modelHome
ファイルとConfigMapファイルの両方が同じ名前の場合、両方のファイルがロードされます。
これらの各ロケーション内のロード順序は、最初にfilename.##.yaml
およびfilename.##.properties
という規則を使用して決定されます。ここで、##
は、数値でソートする際の順序を指定する数字です。 追加詳細:
.##.
の埋込みはオプションです。
properties
またはyaml
拡張機能の直前に配置する必要があります。.##.
を含むファイル名の優先順位は未定義です。.##.
を含まないファイル名は、他のファイルの「前に」、可能なかぎり.##.
が暗黙的に最小であるかのようにソートされますノート: configuration.models.modelHome
ファイルが複数の補助イメージを組み合わせて指定されている場合、ロード順序が決定される前に、このディレクトリ内のファイルが補助イメージのマージ順序に従って移入されます。
たとえば、モデル・ホーム・ディレクトリに次のファイルがある場合:
jdbc.20.yaml
main-model.10.yaml
my-model.10.yaml
y.yaml
また、ConfigMapに次のファイルがあります:
jdbc-dev-urlprops.10.yaml
z.yaml
結合されたモデル・ファイル・リストは、次のようにWebLogic Deploy Toolingに渡されます:
y.yaml,main-model.10.yaml,my-model.10.yaml,jdbc.20.yaml,z.yaml,jdbc-dev-urlprops.10.yaml
プロパティ・ファイル(.properties
で終わる)は、同じソート・アルゴリズムを使用しますが、WebLogic Deploy Toolingに渡す前に1つのファイルにまとめて追加されます。
WDTモデルには、シークレットまたは環境変数を参照するマクロを含めることができます。
WDTモデルの@@SECRET
マクロを使用して、Kubernetes Secretに格納されているWebLogic管理者のusername
およびpassword
キーを参照し、オプションで追加のシークレットを参照できます。 次に、これらのシークレットにアクセスするためのマクロ・パターンを示します:
ドメイン・リソース属性 | 対応するWDTモデル@@SECRET マクロ |
---|---|
webLogicCredentialsSecret |
@@SECRET:__weblogic-credentials__:username@@ および@@SECRET:__weblogic-credentials__:password@@ |
configuration.secrets |
@@SECRET:mysecret:mykey@@ |
たとえば、@@SECRET:__weblogic-credentials__:username@@
を使用してWebLogic資格証明ユーザー名を参照し、@@SECRET:mysecret:mykey@@
を使用してキーmykey
でカスタム・シークレットmysecret
を参照できます。
@@SECRET
マクロによって参照されるシークレットは、ドメインと同じネームスペースにデプロイし、weblogicCredentialsSecret
およびconfiguration.secrets
フィールドを使用してドメインYAMLファイルで参照する必要があります。
次に、webLogicCredentialsSecret
および2つのカスタム・シークレットmy-custom-secret1
とmy-custom-secret2
を設定するドメインYAMLファイルのサンプル・スニペットを示します。
...
spec:
webLogicCredentialsSecret:
name: my-weblogic-credentials-secret
configuration:
secrets: [ my-custom-secret1,my-custom-secret2 ]
...
モデル・ファイルでオペレータ環境変数を参照できます。 これには、domain.spec.serverPod.env
またはdomain.spec.adminServer.serverPod.env
を使用してドメインYAMLファイルに自分を定義すること、または組込みのDOMAIN_UID
環境変数が含まれます。
たとえば、@@ENV:DOMAIN_UID@@
マクロは、現在のドメインのドメインUIDに解決されます。
シークレット・マクロに環境変数マクロを埋め込むことができます。 これは、ドメインのdomainUID
に基づいて指定したシークレットを参照する場合に便利です。
たとえば、domainUID
がdomain1
の場合、マクロ@@SECRET:@@ENV:DOMAIN_UID@@-super-double-secret:mykey@@
は、シークレットdomain1-super-double-secret
のmykey
に格納されている値に解決されます。