Spinal Stack aims to provide continuous integration and continuous delivery. Upgrades are fully automated and ensure the minimum of service downtime.
Warning
Spinal Stack upgrades only work from n to n+1. It's not possible to skip a release.
The upgrade is orchestred by 3 steps:
Generate the new configuration on the install-server. Example with J.1.0.0 (release that we want) on 3 nodes:
$ git clone git@github.com:enovance/config-tools.git $ cd config-tools $ ./provision.sh -i J.1.1.0 git@my-env-git-repo:spinalstack-env/env-joe.yaml version=RH7.0-J.1.1.0 stable=J.1.0.0
- Run upgrade Jenkins job to perform Spinal Stack upgrade. It will automatically:
- Prepare OpenStack nodes to be upgraded by running the ansible playbooks with before_config tag.
- Run Puppet on all the nodes and re-validate all the steps.
- Run some actions on OpenStack nodes by running the ansible playbooks with after_config tag.
- Run sanity Jenkins job to ensure that we still have Spinal Stack working as expected.
If you want to know how upgrades work under the hood, look upgrade-dev
page.