Skip to main content
Account

Porter

Porter packages an application with its tools, credentials and deploy logic into one CNAB bundle. Learn how mixins and porter.yaml drive installs.

Status
Stable
Category
App Definition and Development
Subcategory
Application Definition & Image Build
License
Apache-2.0
Technology matrix Skip Just not for me See the matrix

Porter is a tool for packaging applications together with all the scripts, tools, and credentials they need to deploy, as a single distributable artifact called a bundle. It is the reference implementation of the CNAB (Cloud Native Application Bundle) specification and has been a CNCF sandbox project since 2020.

A Porter bundle is built from a porter.yaml that declares parameters, credentials, outputs, and a sequence of install/upgrade/uninstall actions implemented by mixins. Mixins wrap common tools โ€” Helm, Terraform, kubectl, the AWS/Azure/GCP CLIs, Docker, Exec โ€” so that a single bundle can, for example, provision an AWS RDS instance with Terraform, install a Helm chart against it, and then run a database migration with a shell script, all in one atomic operation. The bundle itself is an OCI image that can be pushed to any OCI registry alongside the invocation image that contains the mixins and logic.

Porter tracks installation state (parameters supplied, outputs produced, last action taken) so that porter upgrade and porter uninstall know exactly what to act on, which gives CNAB-style lifecycle management to stacks that would otherwise be a pile of README steps. It is primarily used by platform teams who need to ship opinionated, cross-tool deployment bundles to internal consumers without forcing them to install and configure the underlying tools themselves.

Application Definition & Image Build

Email signup loads here. You can also manage email preferences in account settings.

Build Porter? I'll show you where engineers get stuck with it โ†’ Back free content for the community โ†’