create-cpo-override
Interactively create CPO image overrides — resolves images, verifies fixes, edits overrides.yaml, and prepares a PR
Create a manual Konflux build from a PR with configurable image expiry (default 30 days)
$ npx -y skills add openshift/hypershift --skill konflux-build --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/konflux-buildContext preview
The summary Claude sees to decide when to auto-load this skill.
Create a manual Konflux build from a PR with configurable image expiry (default 30 days)
name: konflux-build description: Create a manual Konflux build from a PR with configurable image expiry (default 30 days)
Given a PR and a component name, create a manual PipelineRun that produces a container image. By default the image expires after 30 days. Use `--non-expiring` to produce a permanent image.
1. **Build a specific component from a PR number** (expires in 30 days): `/konflux-build 7813 hypershift-release-mce-26`
2. **Build from a PR URL** (will prompt for component): `/konflux-build https://github.com/openshift/hypershift/pull/7813`
3. **Build a non-expiring image for a hotfix**: `/konflux-build 7813 hypershift-operator --non-expiring`
4. **Build using a specific pipeline template**: `/konflux-build 7813 .tekton/hypershift-release-mce-26-push.yaml`
5. **Build the main operator from a PR**: `/konflux-build 7500 hypershift-operator`
1. Verifies you are logged into the Konflux cluster (`stone-prd-rh01`) 2. Resolves the PR to get its head commit SHA and base branch 3. Finds the matching push pipeline template from `.tekton/` on the base branch 4. Generates a manual PipelineRun YAML with template variables resolved 5. Sets image expiry to 30 days (or removes it if `--non-expiring` is specified) 6. Creates the PipelineRun and polls until completion 7. Reports the final image reference with `@sha256:` digest
Before doing anything else, verify the user is logged in to the correct cluster and project:
1. Run `oc whoami --show-server` and confirm it returns `https://api.stone-prd-rh01.pg1f.p1.openshiftapps.com:6443`. If not, stop and tell the user to log in:
oc login https://api.stone-prd-rh01.pg1f.p1.openshiftapps.com:6443
2. Run `oc project -q` and confirm it returns `crt-redhat-acm-tenant`. If not, switch to it:
oc project crt-redhat-acm-tenant
If the switch fails, stop and tell the user they don't have access to the required namespace.
Only proceed to the next steps once both checks pass.
Use `gh pr view <PR> --json headRefOid,headRefName,baseRefName,url` to get:
If the user provided a specific pipeline file path (e.g., `.tekton/hypershift-release-mce-26-push.yaml`), use that template directly via `git show <baseRef>:<pipeline-file>`.
Otherwise, look in the `.tekton/` directory of the PR's base branch for `*-push.yaml` files. Match by component name if provided, or list the available components and let the user pick.
The template lives on the **base branch** of the PR. Use `git show <baseRef>:.tekton/` to list available templates, then `git show <baseRef>:.tekton/<template-file>` to read the chosen one.
Take the push pipeline template and resolve it into a concrete PipelineRun:
The git-clone Tekton task requires the `git-auth` workspace to be a `kubernetes.io/basic-auth` typed secret. Since openshift/hypershift is a public repo, we use an empty secret instead of real credentials (which would be visible to all tenant users):
oc get secret git-auth-empty -n crt-redhat-acm-tenant 2>/dev/null || \ oc create secret generic git-auth-empty \ --type=kubernetes.io/basic-auth \ --from-literal=username='' \ --from-literal=password='' \ -n crt-redhat-acm-tenant
Display the generated YAML and ask for confirmation before applying. Clearly indicate whether the image will expire (and when) or be permanent.
oc create -f /tmp/<component>-manual-push.yaml
Report the PipelineRun name.
Poll `oc get pipelinerun <name>` every 30 seconds until it completes or disappears (archived).
Once done (or if the PipelineRun gets archived before we can check), use `skopeo` to get the image digest:
skopeo inspect --no-tags docker://<output-image-url>
Report the final image reference in `@sha256:` digest form, e.g.:
quay.io/redhat-user-workloads/crt-redhat-acm-tenant/<component>@sha256:<digest>
Also show per-architecture digests from the manifest list if it's a multi-arch build.
Remind the user whether the image expires (and when) or is p
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
Interactively create CPO image overrides — resolves images, verifies fixes, edits overrides.yaml, and prepares a PR
Provides systematic debugging approaches for HyperShift hosted-cluster issues. Auto-applies when debugging cluster problems, investigating stuck deletions, or…
Build and push control-plane-operator container image. Auto-applies when testing CPO changes that require deploying to a live cluster.
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.).