8.4. アセット生成の例
以下は、Cloud Foundry (CF) Node.js アプリケーションの検出マニフェストとデプロイメントマニフェストを生成する例です。
この例では、以下のファイルとディレクトリーが使用されます。
-
CF Node.js アプリケーションマニフェスト名:
cf-nodejs-app.yaml -
検出マニフェスト名:
discover.yaml -
アプリケーションの Helm チャートの場所:
helm_sample - デプロイメントマニフェスト: ConfigMap と Dockerfile
-
デプロイメントマニフェストの出力場所:
newDir
cf-nodejs-app.yaml が MTA CLI バイナリーと同じディレクトリーにあると想定します。CF アプリケーションマニフェストの場所が異なる場合は、マニフェストへの場所のパスを input として入力することもできます。
前提条件
- MTA CLI 7.3.0 がインストールされている。
- CF アプリケーションマニフェストが YAML ファイルとして存在する。
- OCP デプロイメントに必要な設定を含む Helm テンプレートを作成した。
手順
-
ターミナルアプリケーションを開き、
<MTA_HOME>/ディレクトリーに移動します。 CF Node.js アプリケーションマニフェストの内容を確認します。
$ cat cf-nodejs-app.yaml name: cf-nodejs lifecycle: cnb buildpacks: - docker://my-registry-a.corp/nodejs - docker://my-registry-b.corp/dynatrace memory: 512M instances: 1 random-route: true検出マニフェストを生成します。
$ mta-cli discover cloud-foundry \ --input cf-nodejs-app.yaml \ --output discover.yaml \検出マニフェストの内容を確認します。
$ cat discover.yaml name: cf-nodejs randomRoute: true timeout: 60 buildPacks: - docker://my-registry-a.corp/nodejs - docker://my-registry-b.corp/dynatrace instances: 1discover.yamlファイルを使用して、newDirディレクトリーにデプロイメントマニフェストを生成します。$ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --output-dir newDirnewDirディレクトリー内の Dockerfile の内容を確認します。$ cat ./newDir/Dockerfile FROM busybox:latest RUN echo "Hello cf-nodejs!"newDirディレクトリーの ConfigMap の内容を確認します。$ cat ./newDir/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: cf-nodejs-config data: RANDOM_ROUTE: true TIMEOUT: "60" BUILD_PACKS: | - docker://my-registry-a.corp/nodejs - docker://my-registry-b.corp/dynatrace INSTANCES: "1"ConfigMap で、
nameをnodejs-appに、INSTANCESを2にオーバーライドします。$ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --set name="nodejs-app" \ --set instances=2 \ --output-dir newDir \ConfigMap の内容を再度確認します。
$ cat ./newDir/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: nodejs-app data: RANDOM_ROUTE: true TIMEOUT: "60" BUILD_PACKS: | - docker://my-registry-a.corp/nodejs - docker://my-registry-b.corp/dynatrace INSTANCES: "2"