8.4. 资产生成示例
以下是生成 Cloud Foundry (CF) Node.js 应用程序的发现和部署清单的示例。
在本例中,使用以下文件和目录:
-
CF Node.js 应用程序清单名称:
cf-nodejs-app.yaml -
Discovery manifest name:
discover.yaml -
应用程序 Helm Chart 的位置:
helm_sample - 部署清单:ConfigMap 和 Dockerfile
-
部署清单的输出位置:
newDir
假设 cf-nodejs-app.yaml 位于与 MTA CLI 二进制文件相同的目录中。如果 CF 应用清单位置不同,您也可以输入清单的位置路径 作为输入。
先决条件
- 已安装 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: 1使用
discover.yaml文件在newDir目录中生成部署清单:$ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --output-dir newDir检查
newDir目录中 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 中,将
名称改为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"