with one click
build-cpo-image
// Build and push control-plane-operator container image. Auto-applies when testing CPO changes that require deploying to a live cluster.
// Build and push control-plane-operator container image. Auto-applies when testing CPO changes that require deploying to a live cluster.
Accesses archived Konflux PipelineRuns, TaskRuns, and pod logs via KubeArchive. Auto-applies when checking Konflux PipelineRun results, investigating enterprise contract failures, or retrieving logs from completed Konflux CI runs.
Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster.
Create a HyperShift HostedCluster on AWS for development and testing, with optional custom CPO/HO images.
Destroy a HyperShift HostedCluster and all associated AWS infrastructure (VPC, IAM, Route53, etc.).
Provides the ability to run and iterate on HyperShift e2e tests. Auto-applies when implementing features that require e2e validation, fixing e2e test failures, or working on tasks that need live cluster testing.
Create development environments with git worktrees, branches, commits, and push to remote. Auto-applies for git workflow tasks.
| name | Build CPO Image |
| description | Build and push control-plane-operator container image. Auto-applies when testing CPO changes that require deploying to a live cluster. |
This skill enables building and pushing custom control-plane-operator (CPO) images for testing changes in a live HyperShift environment.
This skill automatically applies when:
control-plane-operator/Source the environment file before using this skill:
source dev/claude-env.sh
Environment variables from dev/claude-env.sh:
| Variable | Description |
|---|---|
CPO_IMAGE_REPO | Container registry for CPO images |
RUNTIME | Container runtime (podman/docker) |
Use a tag that identifies the change (branch name, feature, or timestamp):
# Option 1: Use branch name
TAG=$(git rev-parse --abbrev-ref HEAD | tr '/' '-')
# Option 2: Use short commit hash
TAG=$(git rev-parse --short HEAD)
# Option 3: Use descriptive name + number for iterations
TAG="feature-name-1"
The CPO image uses Dockerfile.control-plane:
$RUNTIME build -f Dockerfile.control-plane --platform linux/amd64 -t $CPO_IMAGE_REPO:$TAG .
Note: The build runs make control-plane-operator and make control-plane-pki-operator inside the container, so you don't need to pre-build locally.
$RUNTIME push $CPO_IMAGE_REPO:$TAG
Build and push in one command:
TAG="my-fix-1" && $RUNTIME build -f Dockerfile.control-plane --platform linux/amd64 -t $CPO_IMAGE_REPO:$TAG . && $RUNTIME push $CPO_IMAGE_REPO:$TAG
When iterating on CPO fixes:
control-plane-operator/fix-1, fix-2, fix-3)The Dockerfile.control-plane builds:
control-plane-operator binarycontrol-plane-pki-operator binaryBoth are included in the final image.
The CPO image includes important capability labels that HyperShift uses:
io.openshift.hypershift.control-plane-operator-subcommands=trueio.openshift.hypershift.control-plane-operator.v2-isdefault=truego mod vendormake control-plane-operator$RUNTIME login quay.io