[Container-tools] docker container based installers for Atomic / OpenShift V3 / GKE et al (was Re: Container App Spec and Tooling

Rob Cernich rcernich at redhat.com
Thu Apr 30 19:37:39 UTC 2015


Hey all,

Sorry for leaving out the context...some comments...(adding Ben to the list too)

Based on what I've read, it sounds like there are a few distinct problems that we are trying to solve (install being a bit overloaded):

1. Provisioning of VMs for a cloud (regarding atomic)
2. Application installation (regarding templates)
3. Platform visualization (regarding logs, metrics, installed applications, services, etc.)

I'll step through these one at a time.  All of my comments have an OpenShift bias, as that is our backend cloud solution, which I believe should be a priority over other cloud implementations.

1. Provisioning
I think it would be very beneficial to create standard rhel atomic images preconfigured with an OpenShift specific ostree and cloud-init service.  This would make it much easier to provision an OpenShift cluster.  Here's what I think that might look like:

Provision master VM, which provides cloud-init service.
Provision additional node VMs, which are initialized by cloud-init service from master.

Given that, you're talking about two images: one for master+cloud-int and one for nodes.  This should be pretty easy to get up and running with libvirt (you could also include a virsh script for a setting up a simple cluster).  (Vagrant is fine too, but my work laptop is RHEL and libvirt is standard on it.)  At most, users would need to configure the master vm prior to adding nodes (domain name, certs, etc.).


2.  Application installation
I have a difficult time with this because I don't think it is that difficult to install an application on OpenShift today.  It is a bit more complicated to install certain applications which hook into OpenShift directly (e.g. router, registry, fabric8), but I think that is specific to these applications rather than OpenShift in general.  Each of the listed applications require specific details about OpenShift, some of which are easy to configure (e.g. Kubernetes URL), some of which are difficult (e.g. certs and keys).  Leaving those details aside, deploying an application to OpenShift is trivially easy.  The most difficult part is creating the JSON, most of which is boiler plate.  This is where templates come to the fore, simplifying JSON creation.  If you look at the applications provided through Fabric8, they are simply JSON files that can be installed through the command line or through the Fabric8 console.  Quite honestly, I've not used much of the app-library functionality in Fabric8 because I've been testing deployment of my own applications.  While I think it's neat that you can deploy a Keycloak instance on OpenShift through the app-library (and that demo's well), I don't see how it's advantageous from a customer perspective to be able to create applications from a library.  I would suspect operations would have a well defined process for moving app's into production, which would probably be based upon something like image triggers in a deployment or build config.

2.1 Fabric8 installation
This is much more difficult than deploying a simple application.  What I inferred from this thread is that it would be nice if it were easier to get Fabric8 up and running and to that end we need some sort of docker based installer that will setup an OpenShift, Kubernetes, GKE, etc. environment to which Fabric8 can be installed.  I may be missing something here, but I think these are two separate problems: 1. Setup a cloud.  2. Install Fabric8 on that cloud.  The first item refers to general provisioning of the cloud (earlier item 1), while the second is application installation, specifically Fabric8 (earlier item 2).


3. Platform visualization
For me, this cuts to the core of what Fabric8 can provide to OpenShift.  The OpenShift console provides a basic view of what's running on the system and allows for deployment of applications based on STI or (installed) application templates, but is rather limited beyond that.  Integrating log viewing, performance metrics, replication controller configuration, build triggers, deployment triggers, etc. provided by Fabric8 would be a huge win.


Just my two cents.

Best,
Rob




More information about the Container-tools mailing list