Stackapps Guide

StackApps

Critical Stack Applications- StackApps represent the premier, officially supported mechanism for deploying a Kubernetes application into a Critical Stack cluster. The StackApp is intended to be the main representation of a deployment/release of an application, at a particular version, running in the cluster. StackApps are built of kubernetes native resources and kubernetes custom defined resources. They can be interacted with via the Critical Stack UI or the Kubectl command line tool.

StackApps provide the user with a means of representing an entire running application with a single cryptographically signed artifact. This provides a developer friendly means for an application to be moved between environments in a repeatable, verifiable, and auditable fashion.

Once the StackApp has been deployed all interaction with the application is handled via the StackApp, resource ownership insures the state of the application matches the state defined in the StackApp at all times. Any change to the application is achieved by building and modifying the application in a development environment and packaging a new revision. When this new revision is deployed in a QA or Production environment the underlying application is updated to match the state defined in the new revision. This can be accomplished via standard Kubernetes rolling update or our stand alone Canary deployment StackRelease.

Packaging

StackApps are build from applications running inside a cluster. Currently the premier packaging mechanism is built into the Critical Stack UI; however there is a cli on the roadmap and a StackApp can be built and signed manually via yaml StackApp manifest and the exporting of included resource manifests with kubectl.