[openstack-dev] [Fuel] CentOS-7 Transition Plan

Dmitry Teselkin dteselkin at mirantis.com
Mon Nov 23 21:25:03 UTC 2015


Hello,

We've been working for some time on bringing CentOS-7 to master node,
and now is the time to share and discuss the transition plan.

First of all, what have been changed:
* Master node itself runs on CentOS-7. Since all the containers share
  the same repo as master node they all have been migrated to CentOS-7
  too. Every container runs systemd as PID 1 process instead of
  supervisord or application / daemon.
* Every service inside a container is a systemd unit. Container build
  procedure was modified, scripts setup.sh and start.sh were introduced
  to be running during building and configuring phases respectively.
  The main reason for this was the fact that many puppet manifests use
  service management commands that require systemd daemon running. This
  also allowed to simplify Dockerfiles by removing all actions to
  setup.sh file. 
* We managed to find some bugs in various parts that were fixed too.
* Bootstrap image is also CentOS-7 based. It was updated to better
  support it - some services converted to systemd units and fixes to
  support new network naming schema were made.
* ISO build procedure was updated to reflect changes in CentOS-7
  distribution and to support changes in docker build procedure.
* Many applications was updated (puppet, docker, openstack
  components).
* Docker containers moved to LVM volume to improve performance and get
  rid of annoying warning messages during master node deployment.
  bootstrap_admin_node.sh script was updated to fix some deployment
  issues (e.g. dracut behavior when there are multiple network
  interfaces available) and simplified by removing outdated
  functionality. It was also converted to a "run once" logon script
  instead of being run as a service, primarily because of a way it's
  used.

As you can see there are a lot of changes were made. Some of them might
be merged into current master if surrounded by conditionals to be
compatible with current master node, but some of them simply can't.

To simplify the code review process we've splitted CRs that we were
using during active development to  a set of smaller CRs and assigned
the same topic centos7-master-nod to all of them [0].

So, here is the plan:
* We will put a mark 'Breaks' in every commit message indicating if the
  CR is compatible with current master node. E.g. 'Breaks: centos-6'
  means it can't be merged without breaking things, but 'Breaks:
  nothing' means it OK to merge.
* All the CRs should be reviewed, regardless of their 'breaks' label,
  and voted. We will not merge breaking CRs accidentally, only those
  that are safe will be merged.
* While code review is in progress we will work on passing our custom
  ISO BVT and scale lab tests. When these tests pass - we will run
  swarm on top of this custom ISO. 
* In the meantime our QA infrastructure will be updated to support
  CentOS-7 master node - it should be compatible in most cases,
  however, there are some places that are not. We plan to make changes
  compatible with current ISO.
* As soon as ISO becomes good enough we should take a deep breath and
  turn the switch by merging all the changes that will bring CentOS-7
  to master branch (and break CentOS-6 version). This step requires
  all repositories involved to be frozen for small period of time, and
  that's why a merge freeze might be called. Immediately after all the
  changes are merged we will build new ISO and run reduced set of swarm
  tests. If the results are acceptable we will go on with CentOS-7. If
  not - we will revert breaking changes.


[0]
https://review.openstack.org/#/q/status:open+topic:centos7-master-node,n,z


-- 
Thanks,
Dmitry Teselkin




More information about the OpenStack-dev mailing list