Feature: Kubernetes: Application Entities
Deploy an app entity to a Kubernetes cluster.
- The application entity specification is a way to describe an application that needs to be deployed, including images used, required configuration "answers", various Kubernetes objects, and so on.
- Applications delivered like this have a meta container that contains the logic to deploy the application.
- This is built on the Deploy Application feature done previously.
- All of this is prototype work, and the underlying tech is not final.
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'. 'Poppler.io' is delivered and distributed using the Container Application Specification Phillip already has a Kubernetes cluster running with spare capacity. Next he wants to deploy 'Poppler.io'.
- 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.
- Chooses to deploy an application from a specification image.
- Types the image name 'poppler.io'
- 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.
- The specification image is downloaded, and Phillip sees progress.
- Further input is required, including an admin password for initial access to the deployed application.
- Phillip provides answers to the input.
- He clicks on 'Deploy' to complete the dialog.
- He sees the new services from this application listed on the dashboard, and indications of them starting up.
Implementation Notes and Technical Limitations
- Specification: https://github.com/projectatomic/nulecule
- Likely we'll use the 'atomic' command-line tool directly to implement this feature. The code being worked on is here: https://github.com/vpavlin/atomicapp-run
- We should pull the image from docker via the docker REST API, so we can provide intelligent data.
- This means refactoring code to do this into the cockpit docker package.
- Out of scope: Browsing for applications or searching for names in a registry. Later work.
- Question: How do we get information about what the answer file should look like?
- Question: Where do we find a reliable test case for this.
- The 'Deploy' button is visible here: https://raw.githubusercontent.com/cockpit-project/cockpit-design/master/kubernetes/dashboard.png
- Based on previous work: https://raw.githubusercontent.com/cockpit-project/cockpit-design/98ef0e3476a5e1b4496f952a03a9ec557a37d646/kubernetes/deploy.png
Links to screenshots or documentation of other places this problem has been solved.
- 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.
- ... (sign name)
- ... (sign name)