Skip to content

Commit

Permalink
Merge pull request #107 from StackStorm/version_specific_deps_upgrade
Browse files Browse the repository at this point in the history
Refactor the upgrade workflow to abstract the handling of dependencies upgrade
  • Loading branch information
m4dcoder authored Sep 12, 2017
2 parents bbc5ba5 + a1960ad commit 3fa73bc
Show file tree
Hide file tree
Showing 13 changed files with 255 additions and 6 deletions.
9 changes: 9 additions & 0 deletions actions/st2_pkg_upgrade_deb.meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ parameters:
type: string
default: ''
description: "Version to upgrade to"
distro:
type: string
required: true
enum:
- UBUNTU14
- UBUNTU16
enterprise:
type: boolean
default: false
workflow:
default: st2ci.st2_pkg_upgrade_deb.main
immutable: true
Expand Down
29 changes: 29 additions & 0 deletions actions/st2_pkg_upgrade_deps_el6.meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: st2_pkg_upgrade_deps_el6
pack: st2ci
description: Upgrade dependencies on el6
enabled: true
runner_type: remote-shell-script
entry_point: st2_pkg_upgrade_deps_el6.sh
parameters:
version:
type: string
default: ''
description: Version to upgrade to
position: 0
enterprise:
type: boolean
default: false
position: 1
dir:
immutable: true
default: /home/stanley/
sudo:
immutable: true
default: false
cmd:
immutable: true
default: ""
kwarg_op:
immutable: true
default: "--"
22 changes: 22 additions & 0 deletions actions/st2_pkg_upgrade_deps_el6.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash
set -e

VERSION=$1
ENTERPRISE=$2
SHORT_VERSION=`echo ${VERSION} | cut -d "." -f1-2`

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 0 ]; then
echo "Upgrading dependencies for 2.4 community"
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
sudo yum clean all
sudo yum update -y nodejs
exit 0
fi

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 1 ]; then
echo "Upgrading dependencies for 2.4 enterprise"
sudo /opt/stackstorm/st2/bin/pip install \
--find-links /opt/stackstorm/share/wheels --no-index --quiet \
--upgrade st2-enterprise-auth-backend-ldap
exit 0
fi
29 changes: 29 additions & 0 deletions actions/st2_pkg_upgrade_deps_el7.meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: st2_pkg_upgrade_deps_el7
pack: st2ci
description: Upgrade dependencies on el7
enabled: true
runner_type: remote-shell-script
entry_point: st2_pkg_upgrade_deps_el7.sh
parameters:
version:
type: string
default: ''
description: Version to upgrade to
position: 0
enterprise:
type: boolean
default: false
position: 1
dir:
immutable: true
default: /home/stanley/
sudo:
immutable: true
default: false
cmd:
immutable: true
default: ""
kwarg_op:
immutable: true
default: "--"
23 changes: 23 additions & 0 deletions actions/st2_pkg_upgrade_deps_el7.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash
set -e

VERSION=$1
ENTERPRISE=$2
SHORT_VERSION=`echo ${VERSION} | cut -d "." -f1-2`

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 0 ]; then
echo "Upgrading dependencies for 2.4 community"
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
sudo yum clean all
sudo rpm -e --nodeps npm
sudo yum update -y nodejs
exit 0
fi

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 1 ]; then
echo "Upgrading dependencies for 2.4 enterprise"
sudo /opt/stackstorm/st2/bin/pip install \
--find-links /opt/stackstorm/share/wheels --no-index --quiet \
--upgrade st2-enterprise-auth-backend-ldap
exit 0
fi
29 changes: 29 additions & 0 deletions actions/st2_pkg_upgrade_deps_u14.meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: st2_pkg_upgrade_deps_u14
pack: st2ci
description: Upgrade dependencies on u14
enabled: true
runner_type: remote-shell-script
entry_point: st2_pkg_upgrade_deps_u14.sh
parameters:
version:
type: string
default: ''
description: Version to upgrade to
position: 0
enterprise:
type: boolean
default: false
position: 1
dir:
immutable: true
default: /home/stanley/
sudo:
immutable: true
default: false
cmd:
immutable: true
default: ""
kwarg_op:
immutable: true
default: "--"
12 changes: 12 additions & 0 deletions actions/st2_pkg_upgrade_deps_u14.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
set -e

VERSION=$1
ENTERPRISE=$2
SHORT_VERSION=`echo ${VERSION} | cut -d "." -f1-2`

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 0 ]; then
echo "Upgrading dependencies for 2.4 community"
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
exit 0
fi
29 changes: 29 additions & 0 deletions actions/st2_pkg_upgrade_deps_u16.meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: st2_pkg_upgrade_deps_u16
pack: st2ci
description: Upgrade dependencies on u16
enabled: true
runner_type: remote-shell-script
entry_point: st2_pkg_upgrade_deps_u16.sh
parameters:
version:
type: string
default: ''
description: Version to upgrade to
position: 0
enterprise:
type: boolean
default: false
position: 1
dir:
immutable: true
default: /home/stanley/
sudo:
immutable: true
default: false
cmd:
immutable: true
default: ""
kwarg_op:
immutable: true
default: "--"
12 changes: 12 additions & 0 deletions actions/st2_pkg_upgrade_deps_u16.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
set -e

VERSION=$1
ENTERPRISE=$2
SHORT_VERSION=`echo ${VERSION} | cut -d "." -f1-2`

if [ ${SHORT_VERSION} = "2.4" ] && [ ${ENTERPRISE} -eq 0 ]; then
echo "Upgrading dependencies for 2.4 community"
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
exit 0
fi
11 changes: 11 additions & 0 deletions actions/st2_pkg_upgrade_rpm.meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ parameters:
type: string
default: ''
description: "Version to upgrade to"
distro:
type: string
required: true
enum:
- CENTOS6
- CENTOS7
- RHEL6
- RHEL7
enterprise:
type: boolean
default: false
workflow:
default: st2ci.st2_pkg_upgrade_rpm.main
immutable: true
Expand Down
25 changes: 22 additions & 3 deletions actions/workflows/st2_pkg_upgrade_deb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,35 @@ workflows:
- host # Host on which upgrade should be run
- pkg_list # List of packages to upgrade
- version # Version to upgrade to
- distro
- enterprise

tasks:
upgrade_nodejs:
action: core.remote
init:
action: std.noop
on-complete:
- upgrade_deps_u16: <% $.distro = 'UBUNTU16' %>
- upgrade_deps_u14: <% $.distro = 'UBUNTU14' %>

upgrade_deps_u16:
action: st2ci.st2_pkg_upgrade_deps_u16
input:
hosts: <% $.host %>
cmd: "curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -"
version: <% $.version %>
enterprise: <% $.enterprise %>
timeout: 180
on-success:
- install_pkg
upgrade_deps_u14:
action: st2ci.st2_pkg_upgrade_deps_u14
input:
hosts: <% $.host %>
version: <% $.version %>
enterprise: <% $.enterprise %>
timeout: 180
on-success:
- install_pkg

install_pkg:
with-items: pkg in <% $.pkg_list %>
workflow: install_latest_revision_of_pkg
Expand Down
6 changes: 6 additions & 0 deletions actions/workflows/st2_pkg_upgrade_e2e_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ st2ci.st2_pkg_upgrade_e2e_test:
- st2chatops
- st2web
version: <% $.upgrade_to_version %>
distro: <% $.distro %>
on-success:
- upgrade_enterprise_packages_rpm: <% $.enterprise %>
- migrate_models: <% not $.enterprise %>
Expand All @@ -175,6 +176,7 @@ st2ci.st2_pkg_upgrade_e2e_test:
- st2chatops
- st2web
version: <% $.upgrade_to_version %>
distro: <% $.distro %>
on-success:
- upgrade_enterprise_packages_deb: <% $.enterprise %>
- migrate_models: <% not $.enterprise %>
Expand All @@ -187,6 +189,8 @@ st2ci.st2_pkg_upgrade_e2e_test:
- st2flow
- st2-auth-ldap
version: <% $.upgrade_to_version %>
distro: <% $.distro %>
enterprise: true
on-success:
- migrate_models

Expand All @@ -198,6 +202,8 @@ st2ci.st2_pkg_upgrade_e2e_test:
- st2flow
- st2-auth-ldap
version: <% $.upgrade_to_version %>
distro: <% $.distro %>
enterprise: true
on-success:
- migrate_models

Expand Down
25 changes: 22 additions & 3 deletions actions/workflows/st2_pkg_upgrade_rpm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,35 @@ workflows:
- host # Host on which upgrade should be run
- pkg_list # List of packages to upgrade
- version # Version to upgrade to
- distro
- enterprise

tasks:
upgrade_nodejs:
action: core.remote
init:
action: std.noop
on-complete:
- upgrade_deps_el7: <% $.distro = 'CENTOS7' or $.distro = 'RHEL7' %>
- upgrade_deps_el6: <% $.distro = 'CENTOS6' or $.distro = 'RHEL6' %>

upgrade_deps_el7:
action: st2ci.st2_pkg_upgrade_deps_el7
input:
hosts: <% $.host %>
cmd: "curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -; sudo yum clean all; sudo rpm -e --nodeps npm; sudo yum update -y nodejs || true"
version: <% $.version %>
enterprise: <% $.enterprise %>
timeout: 180
on-success:
- install_pkg
upgrade_deps_el6:
action: st2ci.st2_pkg_upgrade_deps_el6
input:
hosts: <% $.host %>
version: <% $.version %>
enterprise: <% $.enterprise %>
timeout: 180
on-success:
- install_pkg

install_pkg:
with-items: pkg in <% $.pkg_list %>
workflow: install_latest_revision_of_pkg
Expand Down

0 comments on commit 3fa73bc

Please sign in to comment.