- Home
- GitOps Tools
- Carvel kapp-controller
Carvel kapp-controller
What it is
Carvel kapp-controller provides declarative APIs for customizing, installing, and updating Kubernetes applications and packages. Its App resource describes application installation, management, and upgrades on a cluster. Package, PackageMetadata, PackageRepository, and PackageInstall resources support authoring and consuming software packages. kapp-controller can fetch configuration and OCI images from Git repositories, ConfigMaps, Helm charts, and OCI registries. Customization can use ytt templates, Helm templates, or other tools. For GitOps, Carvel describes using a Git repository as the source of truth for Kubernetes package management. The kctrl CLI helps users observe and interact with kapp-controller resources and assists package consumers getting started. Integration with Mozilla SOPS allows decryption of secret material in fetched configuration, with GPG and age encryption support. Each App must specify a service account or kubeconfig Secret, and references must come from the same namespace. Packages and repositories can be relocated for air-gapped environments. The software is free under the Apache 2.0 license and is identified by Carvel as a CNCF sandbox project. Community support is available through GitHub issues and a Kubernetes Slack channel.
For and against
For
- Supports declarative application installation and upgrades.
- Fetches configuration from several source types.
- Works with ytt and Helm templates.
- Supports SOPS with GPG and age encryption.
- Packages can be relocated for air-gapped environments.
Against
- Requires Kubernetes for deployment.
- Versions at or below v0.36.1 have a Kubernetes v1.24 limitation.
The verdict
kapp-controller covers application lifecycle and package management through Kubernetes resources, with GitOps and air-gapped use among its supported workflows. It is free under the Apache 2.0 license.
Who it suits
kapp-controller suits teams managing application deployment and packages on Kubernetes through declarative resources. Its explicit namespace-scoped credentials and relocation support may matter to multi-tenant or air-gapped environments.
Plans and prices
kapp-controller
Open source · Apache 2.0 license
Read 4 Oct 2026 · carvel.dev
On the record
- Air-gapped use
- Package repositories and packages can be relocated and run in air-gapped environments.carvel.dev · read 4 Oct 2026
- CLI
- The kctrl CLI helps users observe and interact with kapp-controller custom resources and helps package consumers get started faster.carvel.dev · read 4 Oct 2026
- Continuous delivery
- Its App custom resource supports declarative installation, management, and upgrades of applications on a Kubernetes cluster.carvel.dev · read 4 Oct 2026
- Fetch sources
- It can fetch configuration and OCI images from Git repositories, ConfigMaps, Helm charts, and OCI registries.carvel.dev · read 4 Oct 2026
- GitOps
- Carvel describes kapp-controller as supporting GitOps, including using a Git repository as the single source of truth for Kubernetes package management.github.com · read 4 Oct 2026
- Integrations
- kapp-controller integrates with Mozilla SOPS to decrypt secret material in fetched configuration, with GPG and age encryption support.carvel.dev · read 4 Oct 2026
- Kubernetes compatibility
- The install guide says versions at or below v0.36.1 cannot reconcile App and PackageInstall resources with Kubernetes v1.24's default LegacyServiceAccountTokenNoAutoGeneration feature gate.carvel.dev · read 4 Oct 2026
- Multi-tenancy
- The security documentation says App resources can reference service accounts or kubeconfig Secrets only from the same namespace, supporting use in multi-tenant environments.carvel.dev · read 4 Oct 2026
- Package management
- Package, PackageMetadata, PackageRepository, and PackageInstall custom resources support authoring and consuming software packages.github.com · read 4 Oct 2026
- Project status
- Carvel identifies kapp-controller as a Cloud Native Computing Foundation sandbox project.carvel.dev · read 4 Oct 2026
- Purpose
- kapp-controller provides declarative APIs to customize, install, and update Kubernetes applications and packages.carvel.dev · read 4 Oct 2026
- Security model
- Each App resource must specify a service account or kubeconfig Secret, making the privileges for managing app resources explicit.carvel.dev · read 4 Oct 2026
- Support
- Carvel provides community support through GitHub project issues and invites users to its Kubernetes Slack channel.carvel.dev · read 4 Oct 2026
- Templates
- It supports customizing software with ytt templates, Helm templates, and other tools.carvel.dev · read 4 Oct 2026