Before I am going into details about an image preparation let me explain what is Kubernetes. The long definition of Kubernetes can be found here: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md. I will just quote the first lines which defines in high level what Kubernetes is.
"Kubernetes is a system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. Its APIs are intended to serve as the foundation for an open ecosystem of tools, automation systems, and higher-level API layers."[1]
Murano does support Kubernetes as a Murano application. It is possible to quickly roll out a Kubernetes cluster on top of OpenStack, making sure that it is properly configured and integrated to OpenStack infrastructure. More detailed information can be found here: https://www.mirantis.com/blog/integrating-openstack-and-kubernetes-with-murano/.
Lets return to the topic and discuss an image preparation for Kubernetes. Image preparation is automated by using OpenStack Disk Image Builder tool. There is a DIB element provided by Murano team to build Kubernetes image on Ubuntu: https://github.com/stackforge/murano/tree/master/contrib/elements/kubernetes
File /install.d/57-kubernetes contains all necessary steps to pre-install all necessary component for Kubernetes cluster:
- ETCD - a distributed /etc service used in CoreOS and required by Kubernetes to store its configuration
- Go - Go language compiler to build Kubernetes and ETCD from sources
- Kubernetes - the latest version of Kubernetes source code
- Flannel - a GRE based overlay network service to connect Docker containers in Kubernetes VMs
Workflow with the logic and step-by-step installation flow can be found in Murano workflow definition for Kubernetes: https://github.com/stackforge/murano-apps/blob/master/kubernetes/io.murano.apps.docker.kubernetes.KubernetesCluster/Classes/KubernetesCluster.yaml
-------------------------------------------------------------------------------------------------------------------
[1] https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md