Ansible based composable minor update workflow in Pike

Bug #1715557 reported by Marios Andreou on 2017-09-07
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tripleo
Critical
mathieu bultel

Bug Description

The minor update workflow has significantly changed for the O..P cycle

As discussed in https://bugzilla.redhat.com/show_bug.cgi?id=1419749, the minor update workflow for the P release has significantly changed. The approach at a high level is:

    * use an initial heat stack update to collect "update_tasks" defined in each of the service manifests (e.g. https://github.com/openstack/tripleo-heat-templates/blob/60f3f10442f3b4cedb40def22cf7b6938a39b391/puppet/services/tripleo-packages.yaml#L59 ). The PostDeploymentSteps are set to OS::Heat::None at this stage making the stack update shorter (and skipping config at this stage).
    * The update_tasks are written to the stack outputs as ansible playbooks, as are the "normal" deployment steps (docker/puppet config) at https://github.com/openstack/tripleo-heat-templates/blob/60f3f10442f3b4cedb40def22cf7b6938a39b391/common/deploy-steps.j2#L317-L344
    * The resulting update playbooks can then be downloaded from the stack outputs using the "openstack overcloud config download" and executed to deliver the minor update and deployment config.

There have been a number of patches already most of which are merged:

    https://review.openstack.org/#/c/485250
    https://review.openstack.org/#/c/479254
    https://review.openstack.org/#/c/485685/
    https://review.openstack.org/#/c/483293/
    https://review.openstack.org/#/c/485686
    https://review.openstack.org/#/c/486103
    https://review.openstack.org/485731
    https://review.openstack.org/#/c/486104/
    https://review.openstack.org/#/c/486180/
    https://review.openstack.org/#/c/483929/
    https://review.openstack.org/#/c/485732/
    https://review.openstack.org/#/c/483943/
    https://review.openstack.org/#/c/486140/

This bug will be used to track any remaining work required, including

    https://review.openstack.org/#/c/486567/
    https://review.openstack.org/#/c/496449/
    https://review.openstack.org/#/c/495658/

Emilien Macchi (emilienm) wrote :

Marios, the amount of patches and code not merged is really big, and we're about to release Pike.
Of course we'll backport this code if needed, but do you think we need to wait for this code to merge before releasing final pike?

tags: added: pike-backport-potential
Marios Andreou (marios-b) wrote :

ack Emilien, my apologies I had meant to catch you about this last night as I knew this bug could concern you! Yeah, I don't think we can block the release for this, it is the same every cycle, the upgrade/update final code trails the release.

While this is certainly not ideal, I don't think its a huge problem, especially for the minor update since it is more likely someone would want to try the upgrade to P first (you'd have to already be on P to try the minor update being tracked here, and at the moment if you deployed P there isn't much incentive to update since there isn't something new, yet).

Changed in tripleo:
milestone: pike-rc2 → queens-1
Changed in tripleo:
assignee: Marios Andreou (marios-b) → mathieu bultel (mat-bultel)
tags: added: upgrade

Reviewed: https://review.openstack.org/487496
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=e9a4156dddd389d8f61183e75eac6b68571475ff
Submitter: Jenkins
Branch: master

commit e9a4156dddd389d8f61183e75eac6b68571475ff
Author: Mathieu Bultel <email address hidden>
Date: Wed Jul 26 18:01:56 2017 +0200

    Execute minor update via ansible on mistral

    This review implement the minor update workflow
    which does:
    - a noop heat stack deployment to set and refresh
      the heat config output.
    - download the heat config and put them in a ansible
      playbooks
    - run the playbooks with the mistral action

    It adds actions for the config download and update
    deployment
    Adds the config download as a library for being call
    either, by the client or mistral

    Closes-Bug: #1715557
    Change-Id: I199b35f865c0e68d28c5ddd82e5b8fe61abb5f33

Changed in tripleo:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/509707
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=0a3d617590e31b5c7200203111219a45f2651b70
Submitter: Jenkins
Branch: stable/pike

commit 0a3d617590e31b5c7200203111219a45f2651b70
Author: Mathieu Bultel <email address hidden>
Date: Wed Jul 26 18:01:56 2017 +0200

    Execute minor update via ansible on mistral

    This review implement the minor update workflow
    which does:
    - a noop heat stack deployment to set and refresh
      the heat config output.
    - download the heat config and put them in a ansible
      playbooks
    - run the playbooks with the mistral action

    It adds actions for the config download and update
    deployment
    Adds the config download as a library for being call
    either, by the client or mistral

    Closes-Bug: #1715557
    Change-Id: I199b35f865c0e68d28c5ddd82e5b8fe61abb5f33
    (cherry picked from commit e9a4156dddd389d8f61183e75eac6b68571475ff)

tags: added: in-stable-pike

Reviewed: https://review.openstack.org/486567
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=a953bda0ae615dc44d3e8a70aa7ab0160e26f3af
Submitter: Jenkins
Branch: master

commit a953bda0ae615dc44d3e8a70aa7ab0160e26f3af
Author: marios <email address hidden>
Date: Mon Jul 24 14:01:06 2017 +0300

    Adds pacemaker update_tasks for Pike minor update workflow

    Adds update_tasks for the minor update workflow. These will be
    collected into playbooks during an initial 'update init' heat
    stack update and then invoked later by the operator as ansible
    playbooks.

    Current understanding/workflow:
     Step=1: stop the cluster on the updated node
     Step=2: Pull the latest image and retag the it pcmklatest
     Step=3: yum upgrade happens on the host
     Step=4: Restart the cluster on the node
     Step=5: Verification: test pacemaker services are running.

    https://etherpad.openstack.org/p/tripleo-pike-updates-upgrades

    Related-Bug: 1715557
    Co-Authored-By: Damien Ciabrini <email address hidden>
    Co-Authored-By: Sofer Athlan-Guyot <email address hidden>
    Change-Id: I101e0f5d221045fbf94fb9dc11a2f30706843806

This issue was fixed in the openstack/tripleo-common 8.0.0 release.

Reviewed: https://review.openstack.org/510408
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=911edab71e435736dc094c9633520315d310f60c
Submitter: Jenkins
Branch: stable/pike

commit 911edab71e435736dc094c9633520315d310f60c
Author: marios <email address hidden>
Date: Mon Jul 24 14:01:06 2017 +0300

    Adds pacemaker update_tasks for Pike minor update workflow

    Adds update_tasks for the minor update workflow. These will be
    collected into playbooks during an initial 'update init' heat
    stack update and then invoked later by the operator as ansible
    playbooks.

    Current understanding/workflow:
     Step=1: stop the cluster on the updated node
     Step=2: Pull the latest image and retag the it pcmklatest
     Step=3: yum upgrade happens on the host
     Step=4: Restart the cluster on the node
     Step=5: Verification: test pacemaker services are running.

    https://etherpad.openstack.org/p/tripleo-pike-updates-upgrades

    Related-Bug: 1715557
    Co-Authored-By: Damien Ciabrini <email address hidden>
    Co-Authored-By: Sofer Athlan-Guyot <email address hidden>
    Change-Id: I101e0f5d221045fbf94fb9dc11a2f30706843806
    (cherry picked from commit a953bda0ae615dc44d3e8a70aa7ab0160e26f3af)

This issue was fixed in the openstack/tripleo-common 7.6.2 release.

Reviewed: https://review.openstack.org/487488
Committed: https://git.openstack.org/cgit/openstack/python-tripleoclient/commit/?id=8a7da9fe26e8b8db6ee26dfdae940f36c9b55488
Submitter: Zuul
Branch: master

commit 8a7da9fe26e8b8db6ee26dfdae940f36c9b55488
Author: Mathieu Bultel <email address hidden>
Date: Wed Jul 26 17:40:46 2017 +0200

    Implement minor update workflow with config download

    This change aim to refactor the way of doing the minor upgrade
    via ansible playbook download by the config download
    It will depend on a mistral change which will get the
    ansible update_task and run it via mistral
    The user will have two ways for performing the minor update:
      - the stack update command which will make an automatic minor
        upgrade (or just upgrade a given set of nodes)
      - running it manually via ansible on the undercloud

    Closes-Bug: #1715557
    Closes-Bug: #1723108
    Change-Id: I4fcd443d975894a1da0286b19506d00682c5768c

Reviewed: https://review.openstack.org/512991
Committed: https://git.openstack.org/cgit/openstack/python-tripleoclient/commit/?id=153bc4fab3ff74d346248c34399022891a0aa8c5
Submitter: Zuul
Branch: stable/pike

commit 153bc4fab3ff74d346248c34399022891a0aa8c5
Author: Mathieu Bultel <email address hidden>
Date: Wed Jul 26 17:40:46 2017 +0200

    Implement minor update workflow with config download

    This change aim to refactor the way of doing the minor upgrade
    via ansible playbook download by the config download
    It will depend on a mistral change which will get the
    ansible update_task and run it via mistral
    The user will have two ways for performing the minor update:
      - the stack update command which will make an automatic minor
        upgrade (or just upgrade a given set of nodes)
      - running it manually via ansible on the undercloud

    Closes-Bug: #1715557
    Closes-Bug: #1723108
    Change-Id: I4fcd443d975894a1da0286b19506d00682c5768c

This issue was fixed in the openstack/python-tripleoclient 8.0.0 release.

This issue was fixed in the openstack/python-tripleoclient 7.3.3 release.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers