У меня есть развертывание, включающее группу управляемых экземпляров и два шаблона экземпляров (A и B).Первоначально развертывание было создано с использованием группы экземпляров, ссылающейся на шаблон экземпляра A.
Я попытался обновить sourceImage в шаблоне экземпляра B с помощью диспетчера развертывания ( gcloud beta - развертывания развертываний - менеджер обновлений my-deploying --template... ), но получил следующую ошибку:
ERROR: (gcloud.beta.deployment-manager.deployments.update) Error in
Operation [operation-1538798895713-57787898f4ae9-8b478716-0bb72a09]:
errors:
- code: NO_METHOD_TO_UPDATE_FIELD
message: No method found to update field 'properties' on
resource 'fwp-app-preprod-instance-template-a' of type
'compute.v1.instanceTemplate'. The resource may need to be
recreated with the new field.
Я должен пояснить, что единственное изменение, которое я сделал в исходном развертывании, - это sourceImage шаблона экземпляра.
Isможно выполнить обновление шаблона экземпляра через менеджер развертывания, чтобы он ссылался на обновленный sourceImage?
Ошибка ясно указывает на то, что ресурс (шаблон экземпляра) может потребоваться воссоздать, и я рад заДиспетчер развертывания, чтобы сделать это.Но я не знаю, как инструктировать / заставить администратора развертывания выполнить это действие.
Я не сомневаюсь, что это можно сделать вне администратора развертывания, но я хочу избежать отклонения конфигурации.
Мой app.jinja.schema:
imports:
- path: instance-group.jinja
- path: instance-template.jinja
Мой app.jinja:
resources:
- name: instance-template-a
type: instance-template.jinja
properties:
name: {{ env["deployment"] }}-instance-template-a
machineType: g1-small
sourceImage: "projects/my-project/global/images/my-image"
diskSizeGb: '30'
- name: instance-template-b
type: instance-template.jinja
properties:
name: {{ env["deployment"] }}-instance-template-b
machineType: g1-small
sourceImage: "projects/my-project/global/images/my-image"
diskSizeGb: '30'
- name: fwp-instance-group
type: instance-group.jinja
Мой экземпляр-group.jinja:
resources:
- name: 'instance-group-{{ env["deployment"] }}'
type: compute.v1.regionInstanceGroupManager
properties:
baseInstanceName: ig-instance-{{ env["deployment"] }}
instanceTemplate: '$(ref.{{ env["deployment"] }}-instance-template-a.selfLink)'
targetSize: 1
region: australia-southeast1
- name: 'autoscaler-{{ env["deployment"] }}'
type: compute.v1.regionAutoscalers
properties:
autoscalingPolicy:
coolDownPeriodSec: 60
loadBalancingUtilization:
utilizationTarget: 0.9
maxNumReplicas: 10
minNumReplicas: 2
target: $(ref.instance-group-{{ env["deployment"] }}.selfLink)
region: australia-southeast1
И мой экземпляр-template.jinja
resources:
- name: {{ properties["name"] }}
type: compute.v1.instanceTemplate
properties:
name: {{ properties["name"] }}
description: ''
properties:
machineType: {{ properties["machineType"] }}
tags:
items:
- no-ip
- web-server
- http-server
- https-server
disks:
- type: 'PERSISTENT'
boot: true
mode: 'READ_WRITE'
autoDelete: true
deviceName: instance-device
initializeParams:
sourceImage: {{ properties["sourceImage"] }}
diskType: 'pd-standard'
diskSizeGb: {{ properties["diskSizeGb"] }}
canIpForward: false
networkInterfaces:
- network: projects/my-project/global/networks/vpc-fwp-nonprod
subnetwork: projects/my-project/regions/australia-southeast1/subnetworks/subnet-private-fwp-nonprod
aliasIpRanges: []
labels: { environment: {{ env["deployment"] }}, tenancy: "fwp-nonprod" }
scheduling:
preemptible: false
onHostMaintenance: MIGRATE
automaticRestart: true
nodeAffinities: []
serviceAccounts:
- email: some-service-account@developer.gserviceaccount.com
scopes:
- https://www.googleapis.com/auth/cloud-platform