Как обновить свойство типа компьютера с помощью диспетчера развертывания GCP - PullRequest
0 голосов
/ 04 мая 2018

У меня есть шаблон python, как показано ниже для типа экземпляра вычислений, вместе с другим необходимым файлом config.yaml.

... CONTROLLER_MACHINE_TYPE='n1-standard-8' controller_template = { 'name': 'controller-it', 'type': 'it_template.py', 'properties': { 'machineType': CONTROLLER_MACHINE_TYPE, 'dockerImage': CONTROLLER_IMAGE, 'dockerEnv': { 'ADC_LISTEN_QUEUE': 'controller-subscriber' }, 'zone': ZONE, 'network': NETWORK_NAME, 'saEmail': SA_EMAIL } }

содержимое it_template.py

def GenerateConfig(context):
    resources = [{
        'name': context.env['name'],
        'type': 'compute.v1.instanceTemplate',
        'properties': {
            'zone': context.properties['zone'],
            'properties': {
                "machineType": context.properties['machineType'],
                "metadata": {
                    "items": [{
                        "key": 'gce-container-declaration',
                        "value": GenerateManifest(context)
                    }]
                }, ...

Я развернул его в среде с именем qa. Теперь через некоторое время я понял, что мне нужно изменить тип машины этого экземпляра. Например, вместо n1-standard-8 я хочу, чтобы моя среда qa обновляла тип компьютера для этого ресурса.

Однако я не вижу ни одного примера, который бы упоминал об обновлении свойства какого-либо ресурса.

Можем ли мы обновить свойство ресурса в среде, используя менеджер развертывания gcp? Или мне нужно добавить новый ресурс с другим именем и желаемым свойством типа машины?

Обновление

В соответствии с предложением @jordi Miralles, я изменил свой шаблон так, чтобы machineType был n1-standard-16, и попытался обновить развертывание.

но я получил ошибку ниже

cloud deployment-manager deployments update qa --config dm_config.yaml The fingerprint of the deployment is KkD38j9KYiBTiaIW8SltbA== Waiting for update [operation-1525444590548-56b623ef1b421-b4733efd-53174d1b]...failed.<br> ERROR: (gcloud.deployment-manager.deployments.update) Error in Operation [operation-1525444590548-56b623ef1b421-b4733efd-53174d1b]: errors: - code: NO_METHOD_TO_UPDATE_FIELD message: No method found to update field 'properties' on resource 'controller-it' of type 'compute.v1.instanceTemplate'. The resource may need to be recreated with the new field.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 мая 2018

Вы можете обновить ресурсы в вашем администраторе развертывания, нет необходимости создавать новый с другим именем, если вы хотите изменить ресурс. См. Обновление развертывания

Вы можете использовать существующий файл yaml развертывания с изменениями, которые вы хотите применить, а затем обновить существующее развертывание:

gcloud deployment-manager deployments update [EXISTING DEPLOYMENT] --config [UPDATED YAML]

Примите во внимание, что ваш экземпляр должен быть остановлен . Все остальные последствия для изменения типа машины применяются. Кроме того, никакие данные ни на одном из ваших постоянных дисков не будут потеряны.

Не забудьте включить экземпляры после завершения обновления!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...