Extract Domain Resource Toolを使用して、WebLogic Kubernetes OperatorまたはVerrazzanoで使用するリソース・ファイルを作成できます。 これにより、Kubernetesリソース定義をモデル・ファイルから生成できます。 これは、リソース・ファイルに反映する必要があるドメインの構成変更を行う場合に特に便利です。 たとえば、クラスタをドメインに追加するには、そのクラスタをWDTモデルのtopology
セクションに追加するだけで、新しいクラスタに関する情報を含む新しいリソース定義ファイルを生成して、Kubernetesに適用できます。
Verrazzanoサポートは、WDT 4.0.0で非推奨になり、将来のリリースで削除されます。
デフォルトでは、生成されるリソース・ファイルは非常にミニマリズム的で、常に編集が必要です。 たとえば、Extract Domain Resource Toolは、管理サーバーのみを含む単純なモデルに対して実行すると、ここに示すようなものが生成されます。 .spec.domainHome
属性値は、-domain_home
コマンドライン引数を使用して移入されたことに注意してください。
apiVersion: weblogic.oracle/v9
kind: Domain
metadata:
name: mydomain
namespace: mydomain
labels:
weblogic.domainUID: mydomain
spec:
domainHome: /u01/domains/mydomain
domainHomeSourceType: FromModel
image: '{{{imageName}}}'
# Add any credential secrets that are required to pull the image
imagePullSecrets: []
webLogicCredentialsSecret:
name: mydomain-weblogic-credentials
serverPod:
env:
- name: JAVA_OPTIONS
value: -Dweblogic.StdoutDebugEnabled=false
- name: USER_MEM_ARGS
value: '-Djava.security.egd=file:/dev/./urandom -Xms64m -Xmx256m '
configuration:
introspectorJobActiveDeadlineSeconds: 900
model:
domainType: WLS
modelHome: '{{{modelHome}}}'
runtimeEncryptionSecret: mydomain-runtime-encryption-secret
このツールをより便利にする(さらに自動化する)ために、モデルには、生成されたドメイン・リソースにフィードするオプションのトップレベルのkubernetes
およびverrazzano
セクションが含まれます。 前の出力例を見ると、.spec.image
属性と.spec.configuration.model.modelHome
属性が次のようになっていることがわかります
WebLogic Kubernetes Operatorの詳細は、「こちら」を参照してください。
Verrazzanoの詳細については、「こちら」を参照してください。
Extract Domain Resource Toolのコマンドラインの例を次に示します:
$ weblogic-deploy/bin/extractDomainResource.sh -model_file /tmp/mymodel.yaml -variable_file /tmp/my.properties -output_dir /tmp/resource -target wko -oracle_home /tmp/oracle -domain_home /u01/mydomain
最も単純なケースでは、Extract Domain Resource Toolは、target
引数に対応するテンプレートに基づいて、モデルのコマンドラインおよびドメイン・セクションの情報を使用してリソース・ファイルを作成します。 ターゲット・タイプおよびテンプレートに関する情報は、「ターゲット環境」ページを参照してください。
オプションの-domain_home
引数の値は、テンプレート出力の対応するフィールドに適用されます(指定されている場合)。 別の方法として、WDTモデルの関連セクションにドメイン・ホームの値を指定できます。
テンプレートのドメイン名とUIDフィールドには、モデルのトポロジ・セクションにあるドメイン名、またはデフォルトのbase_domain
が使用されます。 クラスタ・エントリはモデルのトポロジ・セクションからプルされます。そのレプリカ数は、各クラスタのサーバー数から導出されます。
ユーザーは、リソース出力で--FIX ME--
によって識別されるイメージおよびシークレット情報を入力する必要があります。
--FIX ME--
値の事前移入など、より高度な構成の場合、ユーザーは、WDTモデルの関連セクションを移入でき、それらの値は結果のカスタム・リソース定義(CRD)リソース・ファイルに表示されます。 この例では、モデルのkubernetes
セクションがオーバーライドされ、WebLogic Kubernetes Operatorに対して生成されたCRDに値が追加されます。
kubernetes:
metadata:
name: myName
namespace: myNamespace
spec:
image: 'my.repo/my-image:2.0'
imagePullSecrets:
- name: WEBLOGIC_IMAGE_PULL_SECRET_NAME
webLogicCredentialsSecret:
name: '@@PROP:mySecret@@'
configuration:
model:
domainType: 'WLS'
secrets:
- secret1
- secret2
serverPod:
env:
- name: USER_MEM_ARGS
value: '-XX:+UseContainerSupport -Djava.security.egd=file:/dev/./urandom'
- name: JAVA_OPTIONS
value: '-Dmydir=/home/me'
この例では、@@PROP:mySecret@@
を使用して、コマンドラインで指定された変数ファイルからwebLogicCredentialsSecret
の値を取得します。 これは、モデルのCRDセクションのいずれかの値を使用して実行できます。 モデル変数の使用の詳細は、「こちら」を参照してください。
この例でwko
ターゲットを使用すると、結果のドメイン・リソース・ファイルに次が含まれます:
apiVersion: weblogic.oracle/v8
kind: Domain
metadata:
name: myName
namespace: myNamespace
spec:
image: 'my.repo/my-image:2.0'
imagePullSecrets:
- name: WEBLOGIC_IMAGE_PULL_SECRET_NAME
webLogicCredentialsSecret:
name: WEBLOGIC_CREDENTIALS_SECRET_NAME
serverPod:
env:
- name: USER_MEM_ARGS
value: '-XX:+UseContainerSupport -Djava.security.egd=file:/dev/./urandom'
- name: JAVA_OPTIONS
value: '-Dmydir=/home/me'
domainHome: /u01/mine/domain
configuration:
model:
domainType: WLS
secrets:
- secret1
- secret2
clusters:
- clusterName: mycluster
replicas: 2
- clusterName: mycluster3
replicas: 4
クラスタがモデルのkubernetes/spec
セクションで指定されている場合、そのクラスタはモデルのtopology
セクションにあるすべてのクラスタと結合されます。
WDTモデルのspec/imagePullPolicy
の値がNever
の場合、imagePullSecrets
のデフォルト値は追加されません。
WebLogic Kubernetes Operatorでサポートされているセクションおよび変数の完全なリストは、「こちら」です。 Extract Domain Resource Toolは、metadata
、serverPod
およびspec
を含むこれらのセクションのサブセットをサポートします。
WDTモデルのverrazzano
セクションを使用して、vz
やvz-dii
などのVerrazzanoターゲット用に生成されたCRDを更新できます。 このモデル・セクションの詳細は、「こちら」を参照してください。
Model Help Toolを使用して、モデルのCRDセクションで使用できるフォルダおよび属性を決定できます。 たとえば、次のコマンドは、kubernetes
セクションのspec
フォルダ内のフォルダおよび属性をリストします:
<wls-deploy-home>/bin/modelHelp.sh -oracle_home /tmp/oracle kubernetes:/spec
このコマンドは、verrazzano
セクションのapplication/spec
フォルダ内のフォルダおよび属性をリストします:
<wls-deploy-home>/bin/modelHelp.sh -oracle_home /tmp/oracle -target vz verrazzano:/application/spec
Discover Domain Toolでモデルが検出された場合、CRDセクションのコンテンツは生成されません。
extractDomainResource
のパラメータ表パラメータ | 定義 | デフォルト |
---|---|---|
-archive_file |
アーカイブ・ファイルへのパス。 これは、アーカイブ・ファイルのカンマ区切りリストとして指定することもできます。 各アーカイブ内の内容が、リストの前のアーカイブより優先されます。 | |
-domain_home |
出力ファイルで使用されるドメイン・ホーム・ディレクトリ。 これにより、モデルのすべての値が上書きされます。 | |
-model_file |
モデル・ファイルのロケーション。 これは、モデル・ロケーションのコンマ区切りリストとして指定することもできます。このリストでは、前のモデル・ロケーションの上に続く各モデル層が配置されます。 | |
-oracle_home |
Oracle WebLogicインストールのホーム・ディレクトリ。 ORACLE_HOME 環境変数が設定されていない場合は必須です。 |
|
-output_dir |
ターゲット出力ファイルのロケーション。 | |
-target |
ターゲット出力タイプ。 デフォルトはwko です。 ターゲット・タイプの詳細は、「ターゲット環境」を参照してください。 |
|
-variable_file |
モデルで使用される変数の値を含むプロパティ・ファイルのロケーション。 これは、プロパティ・ファイルのカンマ区切りリストとして指定することもできます。このリストでは、前述のプロパティ・レイヤーの先頭に続く各プロパティ・レイヤーのセットがあります。 |