elastic/cloud-sdk-go

add missing components when updating deployment using another template

Closed this issue · 2 comments

Overview

At the moment when I want to change the template I get error messages about missing instance configuration

Possible Implementation

Now the template to be used knows about the resources that will be needed.
Can we please add this feature that the missing part will be merged into the provideded template?

Testing

Context

I did following steps to change a deployment:

> ecctl init
> ecctl deployment list
> ecctl deployment template list --region gcp-europe-west1
> ecctl deployment show ....
check used template of deployment:
> ecctl deployment show ... --generate-update-payload | jq -r '.resources.elasticsearch[].plan.deployment_template.id'
generate payload for updating the deployment
> ecctl deployment show ... --generate-update-payload > test.json
> vi test.json
---> changed template gcp-io-optimized to gcp-hot-warm
> ecctl deployment update ... -f test.json --track

--> results in error message

  cluster.invalid_instance_config: For template [Hot-Warm Architecture] the plan definition should contain instance configuration [gcp.data.highio.1,gcp.data.highstorage.1]. Only [gcp.data.highio.1] was supplied (resources.elasticsearch[0])

Your Environment

My test cloud.elastic.co tested

Hi Andre, like the error states, there's only a single topology element in your plan definition, where it should be two.

We're pretty close to releasing the terraform provider for Elastic Cloud, which should be a nicer interface to create and modify deployments instead of having to handle JSON transformations on your own.

Since the terraform provider has been released, I'm closing this.