[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

RE: Follow up on OKD 4

Ah, this raises an interesting discussion I've been wanting to have for a while.

There are potentially lots of things you could call a distro.

Most linux distro's are made up of several layers:
1. boot loader - components to get the kernel running
2. kernel - provides a place to run higher level software
3. os level services - singletons needed to really call the os an os. (dhcp, systemd, dbus, etc)
4. prebuilt/tested, generic software/services - workload (mysql, apache, firefox, gnome, etc)

For sake of discussion, lets map these layers a bit, and assume that the openshift specific components can be added to a vanilla kubernetes. We then have

1. linux distro (could be k8s specific and micro)
2. kubernetes control plane & kubelets
3. openshift components (auth, ingress, cicd/etc)
4. ?  (operators + containers, helm + containers, etc)

openshift use to be defined as being 1-3.

As things like ake/eks/gke make it easy to deploy 1-2, maybe openshift should really become modular so it focuses more on 3 and 4.

As for having something that provides a #1 that is super tiny/easy to maintain so that you can do #2 on top easily, I'm for that as well, but should be decoupled from 3-4 I think. Should you be able to switch out your #1 for someone elses #1 while keeping the rest? That's the question from previous in the thread.

#4 I think is very important and while the operator framework is starting to make some inroads on it, there is still a lot of work to do to make an equivalent of the 'redhat' distro of software that runs on k8s.

A lot of focus has been on making a distro out of k8s. but its really mostly been at the level of, how do I get a kernel booted/upgraded. I think the more important distro thing #4 is how do you make a distribution of prebuilt, easy to install software to run on top of k8s. Redhat's distro is really 99% userspace and a bit of getting the thing booted. Its value is in having a suite of prebuilt, tested, stable, and easily installable/upgradable software  with a team of humans that can provide support for it. The kernel/bootloader part is really just a means to enable #4. No one installs a kernel/os just to get a kernel. This part is currently lacking. Where is the equivalent of Redhat/Centos/Fedora for #4.

In the context of OKD, which of these layers is OKD focused on?


From: dev-bounces lists openshift redhat com [dev-bounces lists openshift redhat com] on behalf of Clayton Coleman [ccoleman redhat com]
Sent: Wednesday, July 24, 2019 9:04 AM
To: Michael Gugino
Cc: users; dev
Subject: Re: Follow up on OKD 4

On Wed, Jul 24, 2019 at 10:40 AM Michael Gugino <mgugino redhat com> wrote:
I tried FCoS prior to the release by using the assembler on github.
Too much secret sauce in how to actually construct an image.  I
thought atomic was much more polished, not really sure what the
value-add of ignition is in this usecase.  Just give me a way to build
simple image pipelines and I don't need ignition.  To that end, there
should be an okd 'spin' of FCoS IMO.  Atomic was dead simple to build
ostree repos for.  I'd prefer to have ignition be opt-in.  Since we're
supporting the mcd-once-from to parse ignition on RHEL, we don't need
ignition to actually install okd.  To me, it seems FCoS was created
just to have a more open version of RHEL CoreOS, and I'm not sure FCoS
actually solves anyone's needs relative to atomic.  It feels like we
jumped the shark on this one.

That’s feedback that’s probably something you should share in the fcos forums as well.  I will say that I find the OCP + RHEL experience unsatisfying and doesn't truly live up to what RHCOS+OCP can do (since it lacks the key features like ignition and immutable hosts).  Are you saying you'd prefer to have more of a "DIY kube bistro" than the "highly opinionated, totally integrated OKD" proposal?  I think that's a good question the community should get a chance to weigh in on (in my original email that was the implicit question - do you want something that looks like OCP4, or something that is completely different).

I'd like to see OKD be distro-independent.  Obviously Fedora should be
our primary target (I'd argue Fedora over FCoS), but I think it should
be true upstream software in the sense that apache2 http server is
upstream and not distro specific.  To this end, perhaps it makes sense
to consume k/k instead of openshift/origin for okd.  OKD should be
free to do wild and crazy things independently of the enterprise
product.  Perhaps there's a usecase for treating k/k vs
openshift/origin as a swappable base layer.

That’s even more dramatic a change from OKD even as it was in 3.x.  I’d be happy to see people excited about reusing cvo / mcd and be able to mix and match, but most of the things here would be a huge investment to build.  In my original email I might call this the “I want to build my own distro" - if that's what people want to build, I think we can do things to enable it.  But it would probably not be "openshift" in the same way.

It would be nice to have a more native kubernetes place to develop our
components against so we can upstream them, or otherwise just build a
solid community around how we think kubernetes should be deployed and
consumed.  Similar to how Fedora has a package repository, we should
have a Kubernetes component repository (I realize operatorhub fulfulls
some of this, but I'm talking about a place for OLM and things like
MCD to live).

MCD is really tied to the OS.  The idea of a generic MCD seems like it loses the value of MCD being specific to an OS.

I do think there are two types of components we have - things designed to work well with kube, and things designed to work well with "openshift the distro".  The former can be developed against Kube (like operator hub / olm) but the latter doesn't really make sense to develop against unless it matches what is being built.  In that vein, OKD4 looking not like OCP4 wouldn't benefit you or the components.

I think we could integrate with existing package managers via a
'repo-in-a-container' type strategy for those not using ostree.

A big part of openshift 4 is "we're tired of managing machines".  It sounds like you are arguing for "let people do whatever", which is definitely valid (but doesn't sound like openshift 4).

As far as slack vs IRC, I vote IRC or any free software solution (but
my preference is IRC because it's simple and I like it).

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]