fabric8io / fabric8

fabric8 is an open source microservices platform based on Docker, Kubernetes and Jenkins
http://fabric8.io/
1.76k stars 504 forks source link

create an easier install UX for folks using minikube/minishift/kubectl/helm #6239

Open jstrachan opened 8 years ago

jstrachan commented 8 years ago

If folks have minikube or minishift; or an existing kubernetes cluster with kubectl, we should be able to install fabric8 along the lines of something like:

kubectl apply -f http://fabric8.io/manifests/kubernetes.yml

i.e. we should be able to create a single YAML file to install all of fabric8 for kubernetes; making things a little easier to do & grok than downloading gofabric8.

With all the security / role binding / SCC stuff; OpenShift is much harder; but for now lets ponder kubernetes and see if we can make a really easy install experience.

So I'm thinking a fabric8 build that generates a kubernetes.yml (and an openshift.yml) that folks can install in one shot.

The tricky part is parameterisation (e.g. DOMAIN). We probably wanna use a ConfigMap to configure fabric8 for things like, the DOMAIN; whether or not to use Route or Ingress when creating apps and any other global template parameters we're using on openshift right now.

When using helm we can maybe avoid the ConfigMap and use helm parameters?

For pure kubernetes; we could install the console + ConfigMap + all the templates (as ConfigMaps too) then let the Run... UI in fabric8 console customize things like the domain?

Another option is to allow parameterization via the URL:

kubectl apply -f http://fabric8.io/manifests/kubernetes.yml?domain=vagrant.f8

Not super keen on that one though ;). I guess the ConfigMap could be configured post-install - you just then have to go around bouncing stuff (like gogs for example)

jstrachan commented 8 years ago

BTW we now have a fabric8:helm goal which works great on individual quickstarts with helm: https://github.com/fabric8io/fabric8-maven-plugin/issues/246

Its a more complex proposition dealing with all of fabric8 itself with the parameterisation, composition and migration of many apps from the 2.x version of the fabric8 maven plugin but we'll hopefully get there!

jstrachan commented 8 years ago

if we used the new ConfigMap controller from @jimmidyson , we could restart any pods which need things like DOMAIN like gogs; so that folks can reconfigure at any time the 'parameters' of fabric8 like domain?

Then we can have a single YAML file for kubernetes and allow configuration later on?