我开始根据客户的要求使用 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 参考以获取您可以在用例中使用的属性列表。