mcpbeat

Build HO Image

openshift/build ho image

Build and push hypershift-operator container image. Auto-applies when testing HO changes that require deploying to a live cluster.

804 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
536
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/openshift/hypershift --skill Build HO Image

The instruction itself

16 sections, as written by the author

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:

  • Make code changes in hypershift-operator/
  • Build and push image with incremented tag (e.g., fix-1, fix-2, fix-3)
  • Reinstall HyperShift with new image
  • Run e2e test or manual validation
  • Analyze results
  • 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

How to use it

Copy the folder

Take openshift/build ho image from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.