Porch

Porch is a Kubernetes extension apiserver that manages the lifecycle of KRM configuration packages in Git repositories. It provides package operations through Kubernetes resources, enabling GitOps workflows with approval gates, automation, and collaboration.

Install

Get started by installing Porch.

Learn

Read the Documentation.

Concepts

Understand core concepts like packages, repositories, and lifecycle.

Contribute

Porch is open source — contribute on GitHub

Key Concepts

GitOps Native

All package changes are committed to Git with full history. Works seamlessly with Config Sync, Flux, and other GitOps tools.

Approval Workflows

Packages move through lifecycle stages (Draft → Proposed → Published → DeletionProposed) with explicit approval gates.

Standard kpt Packages

Manages standard kpt packages with no vendor lock-in. Packages can be edited through Porch or directly in Git.

Package Cloning & Upgrades

Clone packages from upstream sources and automatically upgrade when new versions are published. Three-way merge handles local customizations.

Function Execution

Apply KRM functions to transform and validate packages. Functions run in isolated containers with results tracked in package history.

Multi-Repository

Manage packages across multiple Git repositories from a single control plane. Controllers automate cross-repository operations.

Part of the kpt Project

Porch is maintained by the kpt community and continues to evolve as a key component for configuration-as-data workflows.

Communication

Slack

Join us in the #kpt channel in the Kubernetes Slack!

Discussions

Join the discussions in the kptdev/kpt repo.

Community Meeting

Participate in our community meetings