GCP 部署管理器:在哪里可以找到正确创建 YAML 配置和模板文件的参考指南?

GCP 部署管理器:在哪里可以找到正确创建 YAML 配置和模板文件的参考指南?

我开始根据客户的要求使用 Google Cloud Deployment Manager,使用 YAML 配置文件,但我找不到如何映射https://cloud.google.com/deployment-manager/docs/configuration/supported-resource-types我实际正在使用的内容。

具体来说,我需要在创建时将一个现有的外部弹性 IP 附加到实例,但我找不到任何地方可以执行此操作的配置文件模式(例如,eksctl在以下位置找到的配置文件模式文档)https://eksctl.io/usage/schema/):

resources:
- type: compute.v1.instance
  name: nextcloud-vm
  properties:
    natIP: nextcloud-vm
    # The properties of the resource depend on the type of resource. For a list
    # of properties, see the API reference for the resource.
    zone: us-west1-a
    # Replace martin-dev-391362 with your project ID
    machineType: https://www.googleapis.com/compute/v1/projects/martin-dev-391362/zones/us-west1-a/machineTypes/n2-standard-4
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        # See a full list of image families at https://cloud.google.com/compute/docs/images#os-compute-support
        # The format of the sourceImage URL is: https://www.googleapis.com/compute/v1/projects/[IMAGE_PROJECT]/global/images/family/[FAMILY_NAME]
        sourceImage: https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/family/ubuntu-2004-lts
        diskSizeGb: 20
    # Replace martin-dev-391362 with your project ID
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/martin-dev-391362/global/networks/default
      # Access Config required to give the instance a public IP address
      accessConfigs:
      - name: nextcloud-vm
        type: ONE_TO_ONE_NAT

上述代码不起作用,因为它尝试创建一个具有该名称的新 IP 地址,而不是使用已经存在的弹性 IP 地址。问题是我找不到任何地方正确的符号是什么:)

如果有人能给我指明正确的方向,我将不胜感激,因为解决这个小问题只是冰山一角,因为我将大量使用部署管理器,因此我需要全面了解如何使用它。

答案1

您可以按照下面的 yaml 作为参考,只需将其替换mystatic为您在 VPC 网络上保留的外部 IP 的名称即可。但是,当您删除部署时,它也会删除您的静态IP作为部署的一部分。

resources:
- name: mystatic
  type: compute.v1.address
  properties:
    region: us-central1
  
- name: vm-created-by-deployment-manager
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-10
    networkInterfaces:
    - network: global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT
        natIP: $(ref.mystatic.address)

你可能想看看计算 API 参考以获取您可以在用例中使用的属性列表。

相关内容