/build-ho-image
Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster.
$ npx -y skills add openshift/hypershift --skill build-ho-image --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/build-ho-image
Context preview
The summary Claude sees to decide when to auto-load this skill.
Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster.
SKILL.md
build-ho-image.SKILL.mdname: Build HO Image
description: "Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster."
Build HyperShift-Operator Image
This skill enables building and pushing custom hypershift-operator (HO) images for testing changes in a live HyperShift environment.
When to Use This Skill
This skill automatically applies when:
- You've made changes to code in `hypershift-operator/`
- You need to test HO changes against a live cluster
- The user asks to build/push a HO image
- You need to iterate on HO fixes with e2e tests
Prerequisites
Source the environment file before using this skill:
source dev/claude-env.sh
Image Registry Configuration
Environment variables from `dev/claude-env.sh`:
| Variable | Description | |----------|-------------| | `HO_IMAGE_REPO` | Container registry for HO images | | `RUNTIME` | Container runtime (podman/docker) |
Building the HO Image
Step 1: Generate a Unique Tag
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"
Step 2: Build the Image
The HO image uses the main `Dockerfile`:
$RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG .
**Note**: The build runs `make hypershift`, `make hypershift-operator`, `make karpenter-operator`, and `make product-cli` inside the container.
Step 3: Push the Image
$RUNTIME push $HO_IMAGE_REPO:$TAG
Quick One-Liner
Build and push in one command:
TAG="my-fix-1" && $RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG . && $RUNTIME push $HO_IMAGE_REPO:$TAG
Iteration Workflow
When iterating on HO fixes:
1. Make code changes in `hypershift-operator/` 2. Build and push image with incremented tag (e.g., `fix-1`, `fix-2`, `fix-3`) 3. Reinstall HyperShift with new image 4. Run e2e test or manual validation 5. Analyze results 6. Repeat until test passes
What Gets Built
The main `Dockerfile` builds:
- `hypershift` CLI binary
- `hypershift-no-cgo` binary
- `hypershift-operator` binary
- `karpenter-operator` binary
- `hcp` (product CLI) binary
All are included in the final image.
Troubleshooting
Build Fails
- Check that vendored dependencies are up to date: `go mod vendor`
- Ensure code compiles locally: `make hypershift-operator`
- Check for API generation issues: `make api`
Push Fails
- Verify registry login: `$RUNTIME login quay.io`
- Check repository permissions
Operator Not Running After Install
- Check operator logs: `kubectl logs -n hypershift deployment/operator`
- Verify image pull succeeded: `kubectl describe pod -n hypershift -l app=operator`
- Ensure cluster can pull from registry
Changes Not Reflected
- Make sure you're using the correct image tag
- Check if old pods are still running: `kubectl get pods -n hypershift`
- Force rollout: `kubectl rollout restart deployment/operator -n hypershift`
Read more
name: Build HO Image description: "Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster."
Build HyperShift-Operator Image
This skill enables building and pushing custom hypershift-operator (HO) images for testing changes in a live HyperShift environment.
When to Use This Skill
This skill automatically applies when:
- You've made changes to code in `hypershift-operator/`
- You need to test HO changes against a live cluster
- The user asks to build/push a HO image
- You need to iterate on HO fixes with e2e tests
Prerequisites
Source the environment file before using this skill:
source dev/claude-env.sh
Image Registry Configuration
Environment variables from `dev/claude-env.sh`:
| Variable | Description | |----------|-------------| | `HO_IMAGE_REPO` | Container registry for HO images | | `RUNTIME` | Container runtime (podman/docker) |
Building the HO Image
Step 1: Generate a Unique Tag
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"
Step 2: Build the Image
The HO image uses the main `Dockerfile`:
$RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG .
**Note**: The build runs `make hypershift`, `make hypershift-operator`, `make karpenter-operator`, and `make product-cli` inside the container.
Step 3: Push the Image
$RUNTIME push $HO_IMAGE_REPO:$TAG
Quick One-Liner
Build and push in one command:
TAG="my-fix-1" && $RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG . && $RUNTIME push $HO_IMAGE_REPO:$TAG
Iteration Workflow
When iterating on HO fixes:
1. Make code changes in `hypershift-operator/` 2. Build and push image with incremented tag (e.g., `fix-1`, `fix-2`, `fix-3`) 3. Reinstall HyperShift with new image 4. Run e2e test or manual validation 5. Analyze results 6. Repeat until test passes
What Gets Built
The main `Dockerfile` builds:
- `hypershift` CLI binary
- `hypershift-no-cgo` binary
- `hypershift-operator` binary
- `karpenter-operator` binary
- `hcp` (product CLI) binary
All are included in the final image.
Troubleshooting
Build Fails
- Check that vendored dependencies are up to date: `go mod vendor`
- Ensure code compiles locally: `make hypershift-operator`
- Check for API generation issues: `make api`
Push Fails
- Verify registry login: `$RUNTIME login quay.io`
- Check repository permissions
Operator Not Running After Install
- Check operator logs: `kubectl logs -n hypershift deployment/operator`
- Verify image pull succeeded: `kubectl describe pod -n hypershift -l app=operator`
- Ensure cluster can pull from registry
Changes Not Reflected
- Make sure you're using the correct image tag
- Check if old pods are still running: `kubectl get pods -n hypershift`
- Force rollout: `kubectl rollout restart deployment/operator -n hypershift`
HyperShift is a middleware for hosting OpenShift control planes at scale that solves for cost and time to provision, as well as portability cross cloud with strong separation of concerns between management and workloads.
Repo: openshift/hypershift
Other skills on hypershift.
- /create-cpo-override
Interactively create CPO image overrides — resolves images, verifies fixes, edits overrides.yaml, and prepares a PR
Open skill - /debug-cluster
Provides systematic debugging approaches for HyperShift hosted-cluster issues. Auto-applies when debugging cluster problems, investigating stuck deletions, or troubleshooting control plane issues.
Open skill - /build-cpo-image
Build and push control-plane-operator container image. Auto-applies when testing CPO changes that require deploying to a live cluster.
Open skill - /create-hc-aws
Create a HyperShift HostedCluster on AWS for development and testing, with optional custom CPO/HO images.
Open skill - /destroy-hc-aws
Destroy a HyperShift HostedCluster and all associated AWS infrastructure (VPC, IAM, Route53, etc.).
Open skill - /e2e-run-aws
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.
Open skill

