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 模板。

流程

  1. 打开终端应用程序,再进入 < MTA_HOME>/ 目录。
  2. 验证 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
    Copy to Clipboard Toggle word wrap
  3. 生成发现清单:

    $ mta-cli discover cloud-foundry \ --input cf-nodejs-app.yaml \ --output discover.yaml \
    Copy to Clipboard Toggle word wrap
  4. 验证发现清单的内容:

    $ 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
    Copy to Clipboard Toggle word wrap
  5. 使用 discover.yaml 文件在 newDir 目录中生成部署清单:

    $ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --output-dir newDir
    Copy to Clipboard Toggle word wrap
  6. 检查 newDir 目录中 Dockerfile 的内容:

    $ cat ./newDir/Dockerfile
    FROM busybox:latest
    
    RUN echo "Hello cf-nodejs!"
    Copy to Clipboard Toggle word wrap
  7. 检查 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"
    Copy to Clipboard Toggle word wrap
  8. 在 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 \
    Copy to Clipboard Toggle word wrap
  9. 再次检查 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"
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat