Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Build trust in your CI/CD pipelines with OpenShift Pipelines

August 7, 2025
Pradipta Banerjee Ariel Adam Tatsushi Inagaki (IBM), James Magowan (IBM)
Related topics:
ContainersKubernetesRuntimesSecurity
Related products:
Red Hat OpenShift

Share:

    Red Hat OpenShift Pipelines offer a cloud-native CI/CD solution utilizing Tekton pipelines. To address concerns around running pipelines with elevated privileges, this article will discuss the usage of Red Hat OpenShift sandboxed containers, which isolate workloads using virtual machines. 

    For the case of pipelines executing in untrusted infrastructure, we will introduce OpenShift confidential containers (CoCo), which protect the pipeline data from admin users by deploying containers within isolated hardware enclaves. We will cover the various technologies, how they come together, and provide a demo. 

    An overview of OpenShift Pipelines

    OpenShift Pipelines, built on Tekton, offer a cloud-native continuous integration and delivery (CI/CD) solution. The fundamental construct is a Tekton pipeline.

    A Tekton pipeline is composed of tasks, each of which consists of multiple steps. Tasks are executed as Kubernetes pods, and each step runs as a separate container. A PipelineRun represents an instance of a pipeline, while a TaskRun is an instance of a task. Each TaskRun operates within a pod, and each step is a container within that pod that provides customization of resource requirements, runtime configuration, security policies, attached sidecar, and more.

    Figure 1 depicts the relationship between pipeline, task, and steps.

    A diagram visualizing pipelines, tasks, and steps.
    Figure 1: An illustration of the relationship between pipelines, tasks, and steps.

    Isolating pipelines with OpenShift sandboxed containers 

    Now that we have explained what pipelines are, let's look at a user requiring to run pipeline tasks with the following constraints:

    • Running a task requiring elevated privileges.
    • Running a step in the task with unsafe system call settings (i.e., kernel.msgmax) and capturing test data.

    The primary concern of the cluster administration in this case is to ensure that pipeline tasks and steps don’t impact the cluster nodes or other pipelines (either unintentionally or maliciously). To address such requirements, we will introduce OpenShift sandboxed containers. 

    OpenShift sandboxed containers 

    OpenShift sandboxed containers provide pod sandboxing capabilities based on Kata containers runtime. Pod sandboxing isolates workloads using a virtual machine (VM). Each pod runs inside a VM. This allows you to safely run workloads that require elevated privileges, custom kernel parameters, or experimental code, without compromising other workloads or the hosting cluster node.

    Essentially, sandboxed containers offer an extra layer of security and isolation for your workloads in OpenShift, which is particularly useful for workloads that require more control over the environment without impacting the broader cluster.

    Figure 2 shows the use cases OpenShift sandboxed containers protect the workload from.

    Use cases for OpenShift sandboxed contains isolation.
    Figure 2: OpenShift sandboxed contains isolation.

    As shown in the diagram, the additional VM used for isolating the pod ensures that in the event of a pod escaping its namespace, it remains contained inside the VM. This containment in a VM prevents the pod from accessing the cluster nodes or other pods running on the same node.  

    Using pipelines with sandboxed containers 

    Combining the previously described pipeline task and task steps with OpenShift sandboxed containers, we get Figure 3.

    A diagram depicting OpenShift sandboxed containers with pipeline tasks and steps.
     Figure 3: OpenShift sandboxed containers with pipeline tasks and steps.

    The tasks (pods) are now isolated, protecting the OpenShift nodes, pipelines, and tasks from each other (i.e., pipelines running by different tenants). 

    For additional details on using pipelines with OpenShift sandboxed containers, please refer to our previous article, Isolated CI/CD Pipelines With OpenShift Sandboxed Containers.

    Pod sandboxing is a great step forward in workload isolation. However, this solution assumes the underlying infrastructure (be it cloud or on-premise) is trusted. What happens when this assumption is no longer valid? For that, we move on to OpenShift confidential containers. 

    Running pipelines on untrusted infrastructure

    In many modern environments, pipelines are executed on third-party or shared infrastructure, such as public clouds, hosted CI systems, or internal multi-tenant clusters. These setups are great for scale and cost efficiency, but they come with a catch: you don’t fully control the infrastructure running your pipelines as a pipeline user.

    Even if pipelines are isolated using pod sandboxing, privileged infrastructure administrators can still:

    • View sensitive data in memory or storage.
    • Extract signing keys and other secrets.
    • Tamper with container images used for the pipelines.
    • Tamper with build outputs.

    If you’re building proprietary software, handling sensitive IP, or maintaining regulated systems, that’s a potential security risk.

    OpenShift confidential containers

    OpenShift sandboxed containers now provides the additional capability to run confidential containers (CoCo). Confidential containers brings confidential computing capabilities to the OpenShift platform. These are containers deployed within an isolated hardware enclave that help protect data and code from privileged users, such as cloud or cluster administrators. 

    The CNCF Confidential Containers project is the foundation of the OpenShift CoCo solution. It aims to standardize confidential computing at the pod level and simplify its consumption in Kubernetes environments. By standardizing confidential computing at the pod level, Kubernetes users can deploy CoCo workloads using their familiar workflows and tools without needing a deep understanding of the underlying confidential computing technologies.

    When we compare CoCo with the OpenShift sandboxed containers solution, we are adding a third isolation use case, as shown in Figure 4.

    Third isolation use case for OpenShift sandboxed containers and OpenShift confidential containers.
    Figure 4: OpenShift sandboxed containers and OpenShift confidential containers.

    As shown in the diagram (use case 3), we are now adding the ability to isolate the workload from the cluster node, ensuring that the node (and any other entity running on the same infrastructure) has no access to the workload (via protecting the pod). 

    For additional details on CoCo, we recommend reading our previous article, Exploring the OpenShift confidential containers solution. 

    Keeping admins and cluster nodes out of the loop

    Confidential containers extend the concept of pod sandboxing by running Pods in encrypted, hardware-isolated enclaves known as Trusted Execution Environments (TEE). Data and code become protected-in-use so even infrastructure admins, cloud providers, or compromised cluster nodes can’t see inside these environments. Further, with confidential containers, you can remotely verify if the container images used for the pipelines—including the commands they run—are what you expect. 

    For in-depth details on confidential containers, refer to our previous article series, Learn about Confidential Containers. 

    Figure 5 shows how OpenShift sandboxed containers and CoCo are used to protect pipeline tasks and steps.

    OpenShift sandboxed containers and CoCo for pipeline task isolation.
    Figure 5: OpenShift sandboxed containers and CoCo for pipeline task isolation.

    By integrating OpenShift pipelines with confidential containers, you gain the ability to:

    • Run your builds in trusted isolated enclaves on untrusted infrastructure.
    • Protect signing keys and build secrets from admins in shared clusters.
    • Ensure that every build task is tamper-proof and remotely verifiable.

    This is the foundation for a trusted CI/CD pipeline, secure by design, even in untrusted environments.

    With confidential containers, the TaskRuns are executed inside a hardware-isolated enclave, as shown in Figure 6.

    TaskRun executing inside TEE using confidential containers.
    Figure 6: TaskRun executing inside TEE using confidential containers.

    Figure 7 summarizes some of the threat vectors and how confidential containers address them to provide a trusted CI/CD pipeline.

    alt text
    Figure 7: Tekton pipelines threat vectors and mitigations using pod sandboxing and confidential containers.

    Note:

    The usage of confidential containers protects your pipeline from threats, but it will not address any vulnerabilities within the code you submit to the pipeline. Secure code development practices and testing are still required.

    Pipelines with CoCo architecture

    In the CoCo solution, the Trustee project (part of the CNCF Confidential Containers project) provides the capability for attestation. It’s responsible for performing the attestation operations and delivering secrets after successful attestation. For additional information on Trustee, we recommend reading our previous article Introducing Confidential Containers Trustee: Attestation Services Solution Overview and Use Cases.

    The confidential containers solution (extending OpenShift sandboxed containers) relies on two operators:

    • OpenShift sandboxed containers operator: This helps to deploy the necessary building blocks in the OpenShift cluster to support confidential containers.
    • Red Hat build of Trustee operator: This helps to deploy and manage Trustee services in a trusted OpenShift cluster (typically a separate cluster from where the CoCo workloads run).

    For additional details on these operators, we recommend reading our previous article Exploring the OpenShift confidential containers solution.

    Figure 8 shows a typical deployment of the OpenShift sandboxed containers CoCo solution in an OpenShift cluster running on public cloud/on-premise, while the confidential compute attestation (Trustee) operator is deployed in a separate trusted environment.

    Deploying confidential containers with Trustee attestation
    Figure 8: Deploying confidential containers with Trustee attestation

    Figure 9 shows how pipeline tasks (TaskRun) run inside CoCo and attested via Trustee.

    This shows the components involved when running OpenShift pipelines with CoCo
    Figure 9: This shows the components involved when running OpenShift pipelines with CoCo.

    Note the following:

    • The remote attestation services are running in your trusted environment, while the OpenShift Pipeline runs in an untrusted environment.
    • The OpenShift Pipeline TaskRun is executed in a secure enclave (TEE) using confidential containers.

    For detailed information on deployment considerations for confidential containers, refer to our previous article, Deployment considerations for Red Hat OpenShift Confidential Containers solution.

    Figure 10 shows a detailed schematic view of a sample TaskRun when deployed as a confidential container.

    A diagram depicting TaskRun executed as CoCo workload.
    Figure 10: The TaskRun is executed as a CoCo workload.

    The following are the steps performed: 

    1. The application developer signs a tag by using a signing private key.
    2. The developer pushes the signed tag into a source code repository, which triggers the creation of a secure TaskRun pod in a trusted execution environment (TEE).
    3. The secure TaskRun pod initiates a remote attestation request to the Trustee.
    4. Trustee verifies evidence of the secure TaskRun pod. If valid, it sends back a secret resource, such as an artifact signing key to the secure TaskRun pod.
    5. The clone step clones the source code repository into the TEE.
    6. The verify step verifies the tag verification key of the application developer by using the artifact signing key.
    7. The verify step then verifies the tag by using the tag verification key. A container image is built from the verified tag by the succeeding build step.
    8. The sign step signs the container image using the artifact signing key.
    9. The sign step then pushes the signed container image into a container image registry, which will be verified and deployed by succeeding delivery pipelines.

    Here is an end-to-end demo showing a trusted CI/CD pipeline: Building Trusted CI/CD Pipelines with OpenShift Pipelines and Confidential Containers

    Final thoughts

    Modern CI/CD pipelines powered by Tekton provide flexibility and scalability. However, when these pipelines are deployed on third-party or public cloud infrastructure, protecting sensitive workloads and secrets becomes a concern, especially from infrastructure-level threats (i.e., privileged administrators).

    We looked at the threat vectors for the Tekton pipelines and where pod sandboxing and confidential containers come in:

    • Pod sandboxing adds a layer of isolation for each pipeline task, reducing the blast radius of any potential compromise.
    • Confidential containers take this further by executing pipeline tasks inside a hardware-backed secure enclave, ensuring that even infrastructure admins can’t access runtime data or secrets.
    • With remote attestation, you can cryptographically verify the integrity of the pipeline task and the runtime environment before execution, helping build trust across teams and organizational boundaries.

    By combining Tekton pipelines with confidential computing, platform teams can confidently scale CI/CD on untrusted infrastructure using OpenShift, without sacrificing security or control over their most critical assets.

    Related Posts

    • How to build cloud-native CI/CD pipelines with Tekton on Kubernetes

    • Getting started with Tekton on Red Hat OpenShift

    • Building modern CI/CD workflows for serverless applications with Red Hat OpenShift Pipelines and Argo CD, Part 1

    • The present and future of CI/CD with GitOps on Red Hat OpenShift

    Recent Posts

    • Install Python 3.13 on Red Hat Enterprise Linux from EPEL

    • Zero trust automation on AWS with Ansible and Terraform

    • Cloud bursting with confidential containers on OpenShift

    • Reach native speed with MacOS llama.cpp container inference

    • A deep dive into Apache Kafka's KRaft protocol

    What’s up next?

    Read the Red Hat OpenShift cheat sheet to learn various oc commands for managing an application’s lifecycle.

    Get the cheat sheet
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue