Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Feature: Kubernetes: Deploy application
Deploy an application to a Kubernetes cluster.
- Once running on a cluster, there is no logical entity called "Application" in Kubernetes. However in the user's mind, they are "deploying an application".
Phillip J. Fry leads a small IT at a moderately sized firm. His company has a modest data center.
Phillip wants to run application 'Poppler.io'. In order to meet regulatory requirements he needs to run the application 'in house'. Kubernetes has become the primary mechanism with which to deploy these new containerized applications like 'Poppler.io'. Phillip already has a Kubernetes cluster running with spare capacity. Next he wants to deploy 'Poppler.io'.
Hermes Conrad is the VP of engineering at a large corporation.
Hermes is exploring Kubernetes as a way to orchestrate containers. He has just setup a Kubernetes master, and wants to add further machines. Hermes has no deep knowledge of Kubernetes, but Docker was seemed easy to discover hands-on, and wants to do the same here. Hermes engineering team has built several using Openshift online. Hermes wants to export one of those, and run it locally.
- Opens the Kubernetes dashboard in Cockpit
- Sees list of Kubernetes services running on cluster
- Clicks the 'Deploy' button to add a new node to the list.
- Prompted for an application definition file.
- Philip selects the file from disk.
- Philip sees a list of the existing namespaces/projects running in the cluster, in which he could place the application.
- Philip types a new namespace name for the application to run in.
- He finishes the prompt.
- He sees the new services from this application listed on the dashboard, and indications of them starting up.
- Work flow as above.
- Hermes however just uses the default listed namespace, without creating a new one.
Implementation Notes and Technical Limitations
- Assumption, definitions for applications are available.
- Currently this is a JSON 'Items' format containing all the services and replication controllers involved.
- Out of scope: Browsing for applications or searching for names in a registry. Later work.
- In kube version 12 or 13, namespaces much be created as objects, just like pods/service/rc before they can be used.
Design wireframes go here. Usually these live in the cockpit-design repo, and are linked here.
- The 'Deploy' button is visible here: https://raw.githubusercontent.com/cockpit-project/cockpit-design/master/kubernetes/dashboard.png
Links to screenshots or documentation of other places this problem has been solved.
- Fabric8 has something like this ...
- Research incomplete
Please give feedback on the above! This is the place where those not working on the feature can provide insight, questions, limitations, notes etc.
- Note: in kube version 12 or 13, namespaces much be created as objects, just like pods/service/rc before they can be used. (Eric Paris)
- Thanks, added. (Stef)
- ... (sign name)