Stretch upgrade
There's some work to get the platform onto Stretch. Ideas, to-do lists.
ci building > switch to stretch, create 1 extra pipeline for stretch
Puppet code will need to be reorganized due to new builtin env requirements (implicit environments) -> determined on directory structure. Typical layout:
puppet/hieradata/
puppet/code/
code/environments/production|environment
code/environments/production/manifests
code/environments/production/hieradata
code/environments/development/...
code/modules/apache|apt|sshd|tor <--- shared across environments, but can be overridden by environment specific modules
code/environments/prduction/modules/tor
code/environments/productions/apache
code/environments/development/modules/apache
code/environments/development/manifests/site.pp
.../development/manifests/site.pp
node foo {
include apache <-- come from development/modules/apache
include tor <--- come from code/modules/tor
}
../production/manifests/site.pp
node foo {
include apache <-- come from production/modules/apache
include sshd <-- come from production/modules/sshd
}
foo# puppet agent apply -t --environment=development
environment-specific module directories override common module directories
General steps:
-
find an amazon image that is stretch -> #8920 (closed) -
update our ci-build.sh cloud.json generation (line 134) to specify the image in -1 when deploy_test:stretch is being run -
Update stretch ruby docker image in leap/docker/ruby:stretch_amd64 -
Update ci configuration, specific deploy_test for stretch: Don't get confused by the different masters, 'deploy_test:jessie:master' will deploy to jessie, the packages that are in the 'master' debian repository (stable), the 'except master, stretch' will tell it to not deploy when something to these branches is pushed.
.gitlab-ci.yml
deploy_test:jessie:master:
stage: deploy
except:
- master
- stretch
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:jessie:staging:
stage: deploy
except:
- stretch
variables:
COMPONENT: "staging"
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:stretch:master:
image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64
stage: deploy
only:
- stretch
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:stretch:staging:
image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64
stage: deploy
only:
- stretch
variables:
COMPONENT: "staging"
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
-
update ci-build.sh for stretch?
tests/platform-ci/ci-build.sh
...
deploy_test*)
build_from_scratch <--- seems like it can stay how it is for now, might need to have a look at components of deb
deploy <-- can stay the same
leap_info <-- can stay the same
test <- can stay the same
cleanup <- can stay the same
;;
-
create branch in platform, -
change bin/node_init to support stretch !149 (merged) -
fix the broken things.