Heat update - replaced or not?
Hello, I would like to know, if theres way to tell, which resources will be replaced when running stack update. Mostly interested in knowing behaviour of Nova::server.
For testing ive created stack with 2 vms and immediately ran stack update
$ openstack stack update -e devci1-env.yaml --wait -t prod_ci/sandbox/tonda_test.yaml tonda_test --timeout 3600 --os-project-id d7ab62d3c3f1415ab99b2d2cb9a8de19 --show-nested --dry-run
+-----------+----------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------+----------------------------------------------------------------------------------------------------------------+
| added | [] |
| deleted | [] |
| replaced | [ |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "server_with_volume", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Nova::Server", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1", |
| | "stack_id": "None", |
| | "path": "/resources/server_with_volume" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test1", |
| | "required_by": [ |
| | "wait_condition" |
| | ], |
| | "parent_resource": "tonda-test1", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "accessIPv6": null, |
| | "name": null, |
| | "accessIPv4": null, |
| | "tags": null, |
| | "instance_name": null, |
| | "networks": null, |
| | "os_collect_config": null, |
| | "console_urls": null, |
| | "addresses": null, |
| | "first_address": null |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "wait_condition", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::WaitCondition", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1", |
| | "stack_id": "None", |
| | "path": "/resources/wait_condition" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test1", |
| | "required_by": [], |
| | "parent_resource": "tonda-test1", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "data": "{}" |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "default_init", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::SoftwareConfig", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "stack_id": "None", |
| | "path": "/resources/default_init" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "required_by": [ |
| | "cloud_init" |
| | ], |
| | "parent_resource": "cloud_init", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "config": null |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "cloud_init", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::MultipartMime", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "stack_id": "None", |
| | "path": "/resources/cloud_init" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test1-cloud_init", |
| | "required_by": [], |
| | "parent_resource": "cloud_init", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "config": null |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "server_with_volume", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Nova::Server", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2", |
| | "stack_id": "None", |
| | "path": "/resources/server_with_volume" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test2", |
| | "required_by": [ |
| | "wait_condition" |
| | ], |
| | "parent_resource": "tonda-test2", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "accessIPv6": null, |
| | "name": null, |
| | "accessIPv4": null, |
| | "tags": null, |
| | "instance_name": null, |
| | "networks": null, |
| | "os_collect_config": null, |
| | "console_urls": null, |
| | "addresses": null, |
| | "first_address": null |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "wait_condition", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::WaitCondition", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2", |
| | "stack_id": "None", |
| | "path": "/resources/wait_condition" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test2", |
| | "required_by": [], |
| | "parent_resource": "tonda-test2", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "data": "{}" |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "default_init", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::SoftwareConfig", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "stack_id": "None", |
| | "path": "/resources/default_init" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "required_by": [ |
| | "cloud_init" |
| | ], |
| | "parent_resource": "cloud_init", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "config": null |
| | } |
| | }, |
| | { |
| | "updated_time": null, |
| | "creation_time": null, |
| | "resource_name": "cloud_init", |
| | "physical_resource_id": "", |
| | "resource_action": "INIT", |
| | "resource_status": "COMPLETE", |
| | "resource_status_reason": "", |
| | "resource_type": "OS::Heat::MultipartMime", |
| | "resource_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "stack_id": "None", |
| | "path": "/resources/cloud_init" |
| | }, |
| | "stack_identity": { |
| | "tenant": "d7ab62d3c3f1415ab99b2d2cb9a8de19", |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "stack_id": "None", |
| | "path": "" |
| | }, |
| | "stack_name": "tonda_test-tonda-test2-cloud_init", |
| | "required_by": [], |
| | "parent_resource": "cloud_init", |
| | "description": "", |
| | "metadata": {}, |
| | "attributes": { |
| | "config": null |
| | } |
| | } |
| | ] |
Why are those resources marked as replaced, even though there are no changes at all? When I run stack update in this state, VMs are not replaced. Update finishes immediately.
When for example I change AZ for those servers, dry run shows the exact same ...