11.1 Cloud Native CI/CD Pipelines & Build Tooling

Key Takeaways

  • Continuous integration builds and tests every commit, continuous delivery keeps every build releasable behind a manual approval, and continuous deployment releases automatically with no human gate.
  • Tekton and Argo Workflows are CNCF pipeline engines that model pipeline steps as Kubernetes custom resources executed in Pods.
  • Building images inside a cluster without a privileged Docker daemon uses daemonless builders such as Kaniko, Buildah, or BuildKit in rootless mode.
  • Cloud Native Buildpacks turn source code into an OCI image without a Dockerfile and can rebase a base-image security patch without a full rebuild.
  • A CI system holding cluster credentials is a high-value target, which is why pull-based GitOps and short-lived OIDC federation have replaced long-lived kubeconfig secrets.
Last updated: August 2026

11.1 Cloud Native CI/CD Pipelines & Build Tooling

Quick Answer: Continuous Integration builds and tests every commit. Continuous Delivery keeps every successful build deployable, releasing on a human decision. Continuous Deployment removes that decision and ships automatically. In Kubernetes, pipelines increasingly run as Kubernetes objects — Tekton Task/Pipeline and Argo Workflows — and images are built without a privileged Docker daemon using Kaniko, Buildah, BuildKit, or Cloud Native Buildpacks.

The official curriculum lists Application Delivery as a competency in its own right. This section covers the build-and-promote half; section 11.2 covers the GitOps half that puts the result into a cluster.


1. CI, CD, and CD — Three Different Things

 commit ──► BUILD ──► TEST ──► PACKAGE ──► [approval] ──► DEPLOY
           └──────── Continuous Integration ────────┘
           └───────────── Continuous Delivery ──────────────────┘
                          (approval gate present)
           └───────────── Continuous Deployment ────────────────┘
                          (no approval gate)
TermWhat is automatedWhere it stops
Continuous IntegrationMerge, build, unit and integration tests, static analysis, artifact creationAt a tested artifact
Continuous DeliveryEverything above, plus deployment machinery that is proven to workAt a human approval before production
Continuous DeploymentEverything, including the production releaseNowhere — every green commit reaches production

Both CD variants abbreviate to "CD", which is why the exam-relevant discriminator is always the presence or absence of the manual gate.


2. A Cloud Native Pipeline End to End

[1] Commit to the application repository
[2] CI triggers:
      • unit tests, linting, static analysis (SAST)
      • dependency vulnerability scan
      • build an OCI image (reproducible, multi-arch)
      • generate an SBOM (Syft / Trivy)
      • scan the image for CVEs (Trivy / Grype)
      • sign the image digest (Cosign) + attach provenance
      • push to the registry
[3] CI updates the image digest in the CONFIG repository
[4] An in-cluster GitOps controller notices the change
[5] Admission verifies the signature, then the rollout proceeds

The deliberate split between an application repository (source) and a configuration repository (manifests) is what allows CI to hold no cluster credentials at all — it writes a commit, and the cluster pulls. That is the security argument for GitOps as much as the workflow argument.


3. Kubernetes-Native Pipeline Engines

Traditional CI servers run pipelines on their own agents. Kubernetes-native engines model the pipeline itself as custom resources reconciled by a controller (the CRD pattern from section 5.3), so every step runs in a Pod with the cluster's own RBAC, quotas, scheduling, and autoscaling.

EngineModelNotes
TektonTask, TaskRun, Pipeline, PipelineRun CRDs; each Step is a containerA CD Foundation project. Reusable Tasks are shared via Tekton Hub.
Argo WorkflowsWorkflow CRD expressing a DAG or step sequenceCNCF graduated, part of the Argo project. Strong for data, ML, and batch pipelines as well as CI.
Jenkins X / Jenkins Kubernetes pluginDynamic agents scheduled as PodsBridges an existing Jenkins estate onto Kubernetes
GitHub Actions / GitLab CIHosted runners, optionally self-hosted in-clusterThe most common starting point; not Kubernetes-native by default
apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: build-and-push
spec:
  params:
  - name: image
  steps:
  - name: build
    image: gcr.io/kaniko-project/executor:latest
    args:
    - --dockerfile=Dockerfile
    - --destination=$(params.image)

The advantage is uniformity: pipeline capacity autoscales like any other workload, secrets come from the same Secret objects, and there is no second permission model to maintain.


4. Building Images Without a Docker Daemon

Building an image inside a cluster used to mean mounting the node's Docker socket into a build Pod — effectively granting root on that node, since anything that can talk to the daemon can start a privileged container. Daemonless builders exist precisely to remove that:

ToolHow it works
KanikoExecutes Dockerfile instructions entirely in userspace inside a container; no daemon, no privileged mode
BuildahDaemonless, rootless-capable builder from the Podman ecosystem; can build with or without a Dockerfile
BuildKit (rootless)The modern Docker build engine, runnable standalone with parallel stage execution and better caching
Cloud Native BuildpacksNo Dockerfile at all — detects the language, applies a build image and a run image, and outputs an OCI image

Why Buildpacks Matter

Buildpacks (a CNCF project, driven by the pack CLI and used by Heroku, Google Cloud, and Paketo) invert the responsibility model. Developers stop writing and maintaining Dockerfiles; the platform team maintains the base images. The killer feature is rebase: when a CVE lands in the base OS layer, buildpacks swap the run image underneath thousands of applications without rebuilding or re-testing any of them, because the application layer is unchanged.


5. Testing Stages

StageRuns againstTypical tooling
UnitIndividual functions, no dependenciesLanguage test frameworks
IntegrationReal dependencies in throwaway containersTestcontainers, kind clusters in CI
ContractThe agreed interface between two servicesPact and similar
End-to-endA deployed environmentCypress, Playwright, k6
Policy / manifestThe YAML itself, before it ever reaches a clusterkubeconform, conftest, Kyverno CLI
SecuritySource, dependencies, and the built imageSAST, SCA, Trivy, Grype

Validating manifests in CI is disproportionately valuable: a schema error or a policy violation caught in a pull request costs seconds, while the same error caught at admission costs a failed rollout.


6. Securing the Pipeline

CI is a privileged system that writes the artifacts your cluster runs. Treat it as production:

RiskControl
Long-lived cluster credentials in CIUse pull-based GitOps so CI never touches the cluster, or OIDC federation for short-lived tokens
Compromised dependency injected at buildPin versions with lockfiles, verify checksums, use a curated internal proxy
Tampering between build and deploySign the digest with Cosign and verify at admission
"Which pipeline built this?"Emit SLSA provenance / in-toto attestations
Secrets leaking into logs or layersUse build secrets that are never committed to a layer; scan for leaked credentials
A malicious pull request running privileged CIRequire approval before running workflows from forks; isolate build runners

The recurring theme is that the pipeline is part of the attack surface. An attacker who can modify a pipeline definition does not need to break into the cluster at all — the cluster will happily deploy whatever the pipeline produces, which is exactly why signature verification at admission is the control that matters.

Test Your Knowledge

What distinguishes continuous deployment from continuous delivery?

A
B
C
D
Test Your Knowledge

Why do cloud native pipelines use Kaniko or Buildah instead of mounting the node's Docker socket into a build Pod?

A
B
C
D
Test Your Knowledge

What advantage do Cloud Native Buildpacks offer over hand-written Dockerfiles when a CVE is found in the base operating system layer?

A
B
C
D