[openstack-dev] [magnum] Discussion of supporting single/multiple OS distro

Hongbin Lu hongbin.lu at huawei.com
Mon Feb 29 21:15:47 UTC 2016



From: Adrian Otto [mailto:adrian.otto at rackspace.com]
Sent: February-29-16 1:36 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [magnum] Discussion of supporting single/multiple OS distro

Consider this: Which OS runs on the bay nodes is not important to end users. What matters to users is the environments their containers execute in, which has only one thing in common with the bay
The bay nodes are under user’s tenant. That means end users can to SSH to the nodes and play with the containers. Therefore, the choice of OS is important to end users.

node OS: the kernel. The linux syscall interface is stable enough that the various linux distributions can all run concurrently in neighboring containers sharing same kernel. There is really no material reason why the bay OS choice must match what distro the container is based on. Although I’m persuaded by Hongbin’s concern to mitigate risk of future changes WRT whatever OS distro is the prevailing one for bay nodes, there are a few items of concern about duality I’d like to zero in on:

1) Participation from Magnum contributors to support the CoreOS specific template features has been weak in recent months. By comparison, participation relating to Fedora/Atomic have been much stronger.
I have been fixing the CoreOS templates recently. If other contributors are willing to work with me on this efforts, it is reasonable to expect the CoreOS contribution to be stronger.

2) Properly testing multiple bay node OS distros (would) significantly increase the run time and complexity of our functional tests.
This is not true technically. We can re-run the Atomic tests on CoreOS by changing a single field (which is the image). What needs to be done is moving common modules into a base class and let OS-specific modules inherit from them.

3) Having support for multiple bay node OS choices requires more extensive documentation, and more comprehensive troubleshooting details.
This might be true, but we could point to the troubleshooting document of specific OS. If the selected OS delivered a comprehensive troubleshooting document, this problem is resolved.

If we proceed with just one supported disto for bay nodes, and offer extensibility points to allow alternates to be used in place of it, we should be able to address the risk concern of the chosen distro by selecting an alternate when that change is needed, by using those extensibility points. These include the ability to specify your own bay image, and the ability to use your own associated Heat template.

I see value in risk mitigation, it may make sense to simplify in the short term and address that need when it becomes necessary. My point of view might be different if we had contributors willing
I think it becomes necessary now. I have been working on Magnum starting from the early stage of the project. Probably, I am the most senior active contributor. Based on my experiences, there are a lot of problems of locking in a single OS. Basically, all the issues from OS upstream are populated to Magnum (e.g. we experienced various known/unknown bugs, pain on image building, lack of documentation, lack of upstream support etc.). All these experiences remind me not relying on a single OS, because you never know what will be the next obstacle.

and ready to address the variety of drawbacks that accompany the strategy of supporting multiple bay node OS choices. In absence of such a community interest, my preference is to simplify to increase our velocity. This seems to me to be a relatively easy way to reduce complexity around heat template versioning. What do you think?

Thanks,

Adrian

On Feb 29, 2016, at 8:40 AM, Hongbin Lu <hongbin.lu at huawei.com<mailto:hongbin.lu at huawei.com>> wrote:

Hi team,

This is a continued discussion from a review [1]. Corey O'Brien suggested to have Magnum support a single OS distro (Atomic). I disagreed. I think we should bring the discussion to here to get broader set of inputs.

Corey O'Brien
From the midcycle, we decided we weren't going to continue to support 2 different versions of the k8s template. Instead, we were going to maintain the Fedora Atomic version of k8s and remove the coreos templates from the tree. I don't think we should continue to develop features for coreos k8s if that is true.
In addition, I don't think we should break the coreos template by adding the trust token as a heat parameter.

Hongbin Lu
I was on the midcycle and I don't remember any decision to remove CoreOS support. Why you want to remove CoreOS templates from the tree. Please note that this is a very big decision and please discuss it with the team thoughtfully and make sure everyone agree.

Corey O'Brien
Removing the coreos templates was a part of the COE drivers decision. Since each COE driver will only support 1 distro+version+coe we discussed which ones to support in tree. The decision was that instead of trying to support every distro and every version for every coe, the magnum tree would only have support for 1 version of 1 distro for each of the 3 COEs (swarm/docker/mesos). Since we already are going to support Atomic for swarm, removing coreos and keeping Atomic for kubernetes was the favored choice.

Hongbin Lu
Strongly disagree. It is a huge risk to support a single distro. The selected distro could die in the future. Who knows. Why make Magnum take this huge risk? Again, the decision of supporting single distro is a very big decision. Please bring it up to the team and have it discuss thoughtfully before making any decision. Also, Magnum doesn't have to support every distro and every version for every coe, but should support *more than one* popular distro for some COEs (especially for the popular COEs).

Corey O'Brien
The discussion at the midcycle started from the idea of adding support for RHEL and CentOS. We all discussed and decided that we wouldn't try to support everything in tree. Magnum would provide support in-tree for 1 per COE and the COE driver interface would allow others to add support for their preferred distro out of tree.

Hongbin Lu
I agreed the part that "we wouldn't try to support everything in tree". That doesn't imply the decision to support single distro. Again, support single distro is a huge risk. Why make Magnum take this huge risk?

[1] https://review.openstack.org/#/c/277284/

Best regards,
Hongbin
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org<mailto:OpenStack-dev-request at lists.openstack.org>?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160229/7c75940f/attachment.html>


More information about the OpenStack-dev mailing list