Updating a Heat stack

Our running Stack is based on templates, so this allows us to modify our application stack by altering the inputs. If we wanted to change the size of a flavor, or the key used, you can trigger a rebuild of the instances in the stack by altering the inputs and issuing the stack update command.

Getting ready

Ensure that you are logged on to a correctly configured OpenStack client and can access the OpenStack environment. Refer to Chapter 2, The OpenStack Client, for details of setting up your environment to use OpenStack.

How to do it...

In this section, we'll modify the environment file to change a flavor from m1.tiny to m1.large. (Ensure that you have a valid flavor with this name before continuing!)

  1. We first edit the environment file, called cookbook-env.yaml, to show the changes we want to make to our running stack:
    parameters:
      key_name: demokey
      image: xenial-image
      flavor: m1.large
      public_net_id: 2da8979e-dcf8-4eb8-b207-f33bfce4a15a
      private_net_id: 78a5a119-c27a-41c4-8310-5c04d3a6bc31
      private_subnet_id: 3cee2bb9-5673-4a6e-bb1e-8cb66be066b2
  2. Ensure that the stack is running without issues by viewing the resources:
    openstack stack show myStack
    

    This will bring back an output like the following:

    How to do it...
  3. We will now use the updated environment file to modify the running stack:
    openstack stack update myStack --existing
    

    Tip

    Tip: We're using the parameter --existing to avoid specifying the template and environment file again.

    This will bring back an output like the following, showing the update has started:

    How to do it...
  4. Also we can view the state of the stack once this has been completed, to show the reflected change:
    openstack stack show myStack
    

    This will bring back an output like the following (note that the flavor has changed from m1.tiny to m1.large). Also note that the IP addresses have not changed:

    How to do it...

How it works...

The OpenStack Orchestration service, Heat, is designed to follow a template to provide a running service to end users. Everything is automated from start to finish. This crucial feature allows us to update a running stack, effectively redeploying the stack with updates, which runs through the fully automated routine to restore the service, on the same IP addresses, but with the required changes.

The syntax for updating the stack is as follows:

openstack stack update nameOfStack
    --environment updatedEnvironmentFile.yaml
    --template originalStackTemplate.yml

In our example, we omitted the --environment and --template parameters as we made the required change to our stack directly in the environment file used originally. This allowed for a simpler syntax:

openstack stack update nameOfStack --existing
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.111.195