1111 weight : 90
1212---
1313
14- <!--
15- ## Table of contents
16-
17- 1. Overview: Using kpt in CI/CD
18- 2. CI responsibilities vs developer responsibilities
19- 3. Typical kpt CI workflow (conceptual)
20- 4. Rendering in CI
21- 5. Applying configuration in CI (optional and gated)
22- 6. Handling secrets in CI
23- 7. Example: Using kpt in a Cloud Build pipeline
24- 8. Common mistakes and anti-patterns -->
25-
2614## Overview: Using kpt in CI/CD
2715
2816Continuous integration (CI) is the practice of running automated checks on every change so that teams can validate
@@ -73,7 +61,7 @@ At a high level, a CI run follows this sequence:
73614 . Observe results and fail fast if any checks fail.
74625 . Optionally apply the rendered resources when explicit deployment gates are satisfied.
7563
76- ![ img] ( /images/ci-kpt-workflow.png )
64+ ![ img] ( /images/ci-kpt-workflow.svg )
7765
7866This flow emphasizes determinism and no hidden state: the repository is the source of truth, the rendered output is
7967derived entirely from the checked-out files, and the results should be consistent across developer machines and CI
@@ -88,9 +76,12 @@ configuration that CI can use for downstream steps.
8876### Prerequisites
8977
9078Since kpt functions run as containers, your CI environment must have access to a container runtime (for example,
91- Docker).
79+ Podman).
80+
81+ Podman is preferred in CI because it supports rootless operation and does not require a daemon.
9282
93- - Docker socket: Ensure your CI step mounts the Docker socket (for example, ` /var/run/docker.sock ` ).
83+ - Podman socket: Ensure your CI step can access the Podman socket (for example, ` /run/podman/podman.sock ` or rootless
84+ ` $XDG_RUNTIME_DIR/podman/podman.sock ` ).
9485- Privileges: The CI runner requires permissions to pull images and run containers.
9586
9687### Why render (including validation)
0 commit comments