Agent skill

E2E Deploy Rhdh

by redhat-developer in redhat-developer/rhdh

Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures

Apache-2.0Auto-check passedTesting & QA

Install E2E Deploy Rhdh

skills CLI
$ npx skills add redhat-developer/rhdh --skill e2e-deploy-rhdh -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install redhat-developer/rhdh e2e-deploy-rhdh --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/redhat-developer/rhdh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/e2e-deploy-rhdh .claude/skills/e2e-deploy-rhdh && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
e2e-deploy-rhdh
GitHub stars
172
Token cost
~2.6k tokens
SKILL.md length
965 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures

  • Works in 4 steps: Never run local-run.sh in the… → Before starting a deployment, check for… → Never launch concurrent deployments. Two… → …
  • Tasks that involve End-to-end testing
  • SKILL.md covers When to Use, Prerequisites, Deployment Using local-run.sh and Deployment Error Recovery, plus 1 more section
  • Calls podman, curl and jq; reaches quay.io; needs K8S_CLUSTER_TOKEN

What it does

E2E Deploy Rhdh is an agent skill from redhat-developer/rhdh. Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering End-to-end testing, Deployment and Platform engineering. The repository describes itself as: The repo formerly known as janus-idp/backstage-showcase. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve End-to-end testing
  • Tasks that involve Deployment
  • Tasks that involve Platform engineering

Example prompts

  • “/e2e-deploy-rhdh”

Requirements

  • Node.js
  • A credential in K8S_CLUSTER_TOKEN

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Never run local-run.sh in the background. Operator installations can take 20-30 minutes. Use the Bash tool with timeout: 600000 (10…
  2. Before starting a deployment, check for existing containers
  3. Never launch concurrent deployments. Two deployments to the same cluster will race and both fail. If a deployment appears stuck, check the…
  4. How to detect actual failure vs slow progress: The operator install script outputs detailed debug logs. If the container log shows active…

What it can do on your machine

Read from SKILL.md and the folder at commit ef35b18. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • podman
    • curl
    • jq
    • helm
    • gh
    • kubectl
    • vault
    • rsync

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • quay.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • K8S_CLUSTER_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

E2E Deploy Rhdh loads about 2.6k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 965 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~37
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from redhat-developer/rhdh at commit ef35b18, republished under its Apache-2.0 licence (© redhat-developer). 965 words, ~2,644 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-deploy-rhdh/SKILL.md (or your agent's skills folder).
name
e2e-deploy-rhdh
description
Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures

Deploy RHDH

Deploy Red Hat Developer Hub to a cluster for E2E test execution using the existing local-run.sh workflow.

When to Use

Use this skill when you need a running RHDH instance to reproduce and fix a test failure.

Prerequisites

Before running the deployment, verify these tools are installed:

bash
# Required tools (local-run.sh checks these automatically)
podman --version        # Container runtime
oc version              # OpenShift CLI
kubectl version --client # Kubernetes CLI
vault --version         # HashiCorp Vault (for secrets)
jq --version            # JSON processor
curl --version          # HTTP client
rsync --version         # File sync
bc --version            # Calculator (for resource checks)
Podman Machine Requirements

The podman machine must be running with adequate resources:

bash
podman machine inspect | jq '.Resources'
# Requires: >= 8GB RAM, >= 4 CPUs

If resources are insufficient:

bash
podman machine stop
podman machine set --memory 8192 --cpus 4
podman machine start

Deployment Using local-run.sh

The primary deployment method uses e2e-tests/local-run.sh, which handles everything: Vault authentication, cluster service account setup, RHDH deployment, and test execution.

Execution Rules

CRITICAL — deployment is a long-running operation:

  1. Never run local-run.sh in the background. Operator installations can take 20-30 minutes. Use the Bash tool with timeout: 600000 (10 minutes) and if it times out, check the container log — do NOT assume failure.
  2. Before starting a deployment, check for existing containers:
    bash
    podman ps --format "{{.Names}} {{.Status}}" | grep -i rhdh-e2e-runner
    If a deployment container is already running, wait for it to finish instead of starting a new one. Monitor via the container log:
    bash
    tail -f e2e-tests/.local-test/container.log
  3. Never launch concurrent deployments. Two deployments to the same cluster will race and both fail. If a deployment appears stuck, check the container log and cluster state before deciding it failed.
  4. How to detect actual failure vs slow progress: The operator install script outputs detailed debug logs. If the container log shows active progress (timestamps advancing), the deployment is still running. Only consider it failed if:
    • The podman container has exited (podman ps shows no running container)
    • AND the container log shows an error message (e.g., "Failed install RHDH Operator")
CLI Mode (Preferred)

CRITICAL: CLI mode requires all three flags (-j, -r, -t). If -r is omitted, the script falls into interactive mode and will hang in automated contexts.

bash
cd e2e-tests
./local-run.sh -j <full-prow-job-name> -r <image-repo> -t <image-tag> [-s]

Example — OCP job (deploy-only with -s):

bash
cd e2e-tests
./local-run.sh -j periodic-ci-redhat-developer-rhdh-main-e2e-ocp-v4-20-helm-nightly -r rhdh-community/rhdh -t next -s

Example — K8s job (AKS/EKS/GKE) (full execution, no -s):

bash
cd e2e-tests
./local-run.sh -j periodic-ci-redhat-developer-rhdh-main-e2e-eks-helm-nightly -r rhdh-community/rhdh -t next

Example — disconnected OCP nightlies (requires a real OpenShift cluster; connected is fine; no bastion):

bash
cd e2e-tests
# Operator: prepare uses --to-registry OCP_INTERNAL; MIRROR_* bootstrapped in-container
./local-run.sh -j periodic-ci-redhat-developer-rhdh-main-e2e-ocp-disconnected-operator-nightly -r rhdh-community/rhdh -t next -s
# Helm: oc-mirror to the cluster image registry route
./local-run.sh -j periodic-ci-redhat-developer-rhdh-main-e2e-ocp-disconnected-helm-nightly -r rhdh-community/rhdh -t next -s

local-run.sh refuses disconnected jobs unless oc is logged into OpenShift. It passes DISCONNECTED=true and LOCAL_DISCONNECTED=1; the runner writes mirror auth/CA under ${SHARED_DIR}/disconnected-mirror/ (not on the host). Prefer Operator first when validating OCP_INTERNAL, then Helm. Air-gap prepare details live in rhdh-operator — do not paste them here.

Parameters:

  • -j / --job: The full Prow CI job name extracted from the Prow URL. The openshift-ci-tests.sh handler uses bash glob patterns (like *ocp*helm*nightly*) to match, so the full name works correctly. Example: periodic-ci-redhat-developer-rhdh-main-e2e-ocp-v4-20-helm-nightly
  • -r / --repo: Image repository (required for CLI mode — without it the script enters interactive mode)
  • -t / --tag: Image tag (e.g., 1.9, next)
  • -s / --skip-tests: Deploy only, skip test execution. OCP jobs only — K8s jobs (AKS, EKS, GKE) do not support this flag and require the full execution pipeline

WARNING: Do NOT use shortened job names like nightly-ocp-helm for -j — these do not match the glob patterns in openshift-ci-tests.sh.

Image Selection

Refer to the e2e-fix-workflow rule for the release branch to image repo/tag mapping table.

Deploy-Only Mode (OCP Jobs Only)

For OCP jobs, deploy without running tests so you can run specific tests manually:

bash
./local-run.sh -j <full-prow-job-name> -r <image-repo> -t <tag> -s

Note: K8s jobs (AKS, EKS, GKE) do not support deploy-only mode. They require the full execution pipeline — run without -s.

What local-run.sh Does
  1. Validates prerequisites: Checks all required tools and podman resources
  2. Verifies the image: Checks the image exists on quay.io via the Quay API
  3. Pulls the runner image: quay.io/rhdh-community/rhdh-e2e-runner:main
  4. Authenticates to Vault: OIDC-based login for secrets
  5. Sets up cluster access: Creates rhdh-local-tester service account with cluster-admin, generates 48h token
  6. Copies the repo: Syncs the local repo to .local-test/rhdh/ (excludes node_modules)
  7. Runs a Podman container: Executes container-init.sh inside the runner image, which:
    • Fetches all Vault secrets to /tmp/secrets/
    • Logs into the cluster
    • Sets platform-specific environment variables
    • Runs .ci/pipelines/openshift-ci-tests.sh for deployment
Show full SKILL.md (355 more words)Show less
Post-Deployment: Setting Up for Manual Testing

After local-run.sh completes (with -s for OCP jobs, or after full execution for K8s jobs), set up the environment for headed Playwright testing:

bash
# Source the test setup (choose 'showcase' or 'rbac')
source e2e-tests/local-test-setup.sh showcase
# or
source e2e-tests/local-test-setup.sh rbac

This exports:

  • BASE_URL — The RHDH instance URL
  • K8S_CLUSTER_URL — Cluster API server URL
  • K8S_CLUSTER_TOKEN — Fresh service account token
  • All Vault secrets as environment variables

Verify RHDH is accessible:

bash
curl -sSk "$BASE_URL" -o /dev/null -w "%{http_code}"
# Should return 200

Deployment Error Recovery

Common Deployment Failures
CrashLoopBackOff

Symptoms: Pod repeatedly crashes and restarts.

Investigation:

bash
# Check pod status
oc get pods -n <namespace>
# Check pod logs
oc logs -n <namespace> <pod-name> --previous
# Check events
oc get events -n <namespace> --sort-by=.lastTimestamp

Common causes and fixes:

  1. Missing ConfigMap: The app-config ConfigMap wasn't created → check .ci/pipelines/resources/config_map/ for the correct template
  2. Bad plugin configuration: A dynamic plugin is misconfigured → check dynamic-plugins-config ConfigMap against .ci/pipelines/resources/config_map/dynamic-plugins-config.yaml
  3. Missing secrets: Required secrets not mounted → verify secrets exist in the namespace
  4. Node.js errors: Check for JavaScript errors in logs that indicate code issues
ImagePullBackOff

Investigation:

bash
oc describe pod -n <namespace> <pod-name> | grep -A5 "Events"

Common causes:

  1. Image doesn't exist: Verify on quay.io: curl -s 'https://quay.io/api/v1/repository/rhdh/rhdh-hub-rhel9/tag/?filter_tag_name=like:<tag>'
  2. Pull secret missing: Check namespace::setup_image_pull_secret in .ci/pipelines/lib/namespace.sh
  3. Registry auth: Ensure the pull secret has correct credentials
Helm Install Failure

Investigation:

bash
helm list -n <namespace>
helm status <release-name> -n <namespace>

Common causes:

  1. Values file error: Check merged values against .ci/pipelines/value_files/values_showcase.yaml
  2. Chart version mismatch: Verify chart version with helm::get_chart_version from .ci/pipelines/lib/helm.sh
Operator Deployment Failure

Investigation:

bash
oc get backstage -n <namespace>
oc describe backstage <name> -n <namespace>
oc get csv -n <namespace>  # Check operator subscription status

Common causes:

  1. Backstage CR misconfigured: Compare against .ci/pipelines/resources/rhdh-operator/rhdh-start.yaml
  2. Operator not installed: Check CatalogSource and Subscription
  3. CRD not ready: Wait for CRD with k8s_wait::crd pattern from .ci/pipelines/lib/k8s-wait.sh
Cross-Repo Investigation

When deployment issues stem from the operator or chart, search the relevant repos using whichever tool is available. Try them in this order and use the first one that works:

  1. Sourcebot (if available): search rhdh-operator and rhdh-chart repos for specific error patterns or configuration keys
  2. Context7 (if available): query redhat-developer/rhdh-operator or redhat-developer/rhdh-chart for docs and code snippets
  3. Fallback — gh search code: gh search code '<pattern>' --repo redhat-developer/rhdh-operator or redhat-developer/rhdh-chart
  4. Fallback — local clone: clone the repo into a temp directory and grep for the pattern

Key areas to look for:

  • rhdh-operator: Backstage CR configuration, CatalogSource setup, operator installation scripts
  • rhdh-chart: Helm values schema, chart templates, default configurations

Reference Files

  • Main deployment scripts: .ci/pipelines/openshift-ci-tests.sh, .ci/pipelines/utils.sh
  • Library scripts: .ci/pipelines/lib/helm.sh, .ci/pipelines/lib/operators.sh, .ci/pipelines/lib/k8s-wait.sh, .ci/pipelines/lib/testing.sh
  • Helm values: .ci/pipelines/value_files/
  • ConfigMaps: .ci/pipelines/resources/config_map/
  • Operator CRs: .ci/pipelines/resources/rhdh-operator/
  • Environment variables: .ci/pipelines/env_variables.sh

© redhat-developer, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/e2e-deploy-rhdh of redhat-developer/rhdh.

Open the folder on GitHubat commit ef35b18

Compare with similar skills

E2E Deploy Rhdh next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

E2E Deploy Rhdh compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Deploy Rhdh this skillredhat-developer/rhdh172—~2.6kAutomated safety check: PassApache-2.0
Life Sciences Fieldsalesrep Coordinateforcedotcom/sf-skills1.1k—~5.6kAutomated safety check: PassApache-2.0
Deployment E2E Testingmicrosoft/aspire6.3k—~3.2kAutomated safety check: PassMIT
OpenWork Release Validationdifferent-ai/openwork24k—~1.7kAutomated safety check: PassCustom licence
Vss E2E Smokeopen-edge-platform/edge-ai-libraries168—~1.5kAutomated safety check: PassApache-2.0
Backend Development Feature Developmentaiskillstore/marketplace4306 repos~2.9kAutomated safety check: PassNone

Similar skills

  • A skill your agent uses to run the full end-to-end Life Sciences Cloud setup workflow for field sales rep in sequence.

    1.1k GitHub stars~5.6k tokensUpdated 5 days ago
    Testing & QAAuto-check passed
  • Deployment E2E Testing

    microsoft/aspire

    Official

    Guide for writing Aspire deployment end-to-end tests. An agent skill from microsoft/aspire.

    6.3k GitHub stars~3.2k tokensUpdated today
    Testing & QAAuto-check passed
  • OpenWork Release Validation

    different-ai/openwork

    Checks a published OpenWork desktop release by booting the released macOS binaries through packaged journeys, verifying signing and updater manifests, and publishing evidence.

    24k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Vss E2E Smoke

    open-edge-platform/edge-ai-libraries

    Run this skill whenever the user asks to verify my VSS install works, smoke test VSS, check whether the deployment succeeded, or run an end-to-end test of summary/search for the…

    168 GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Orchestrate end-to-end backend feature development from requirements to deployment.

    430 GitHub starsUsed in 6 repos~2.9k tokens
    Backend & APIsAuto-check passed
  • Deploy Workflow

    nwiizo/ccswarm

    Release deployment process for ccswarm. An agent skill from nwiizo/ccswarm.

    153 GitHub stars~582 tokensUpdated 23 days ago
    Testing & QAAuto-check passed

More from redhat-developer/rhdh

  • E2E Submit And Review

    redhat-developer/rhdh

    Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results

    172 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check: notes
  • E2E Diagnose And Fix

    redhat-developer/rhdh

    Analyze a failing E2E test, determine root cause, and fix it using Playwright Test Agents and RHDH project conventions

    172 GitHub stars~3.5k tokensUpdated yesterday
    Auto-check: notes
  • E2E Parse CI Failure

    redhat-developer/rhdh

    Parse a Prow CI job URL or Jira ticket to extract E2E test failure details including test name, spec file, release branch, platform, and error messages

    172 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • E2E Reproduce Failure

    redhat-developer/rhdh

    Run a specific failing E2E test against a deployed RHDH instance to confirm the failure and determine if it is consistent or flaky

    172 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check: notes
  • E2E Verify Fix

    redhat-developer/rhdh

    Verify an E2E test fix by running the test multiple times and checking code quality

    172 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check: notes
  • Patch Backstage

    redhat-developer/rhdh

    Workflow to backport Backstage changes into RHDH by syncing a downstream maintenance branch and generating yarn patches.

    172 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed

Questions about E2E Deploy Rhdh

What does E2E Deploy Rhdh do?

Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures. E2E Deploy Rhdh is an agent skill from redhat-developer/rhdh.

When should I use E2E Deploy Rhdh?

E2E Deploy Rhdh fits situations like: tasks that involve End-to-end testing; tasks that involve Deployment; tasks that involve Platform engineering.

How do I install E2E Deploy Rhdh in Claude Code?

Run `npx skills add redhat-developer/rhdh --skill e2e-deploy-rhdh -a claude-code`. Or copy the skill folder (.claude/skills/e2e-deploy-rhdh in redhat-developer/rhdh) into .claude/skills/e2e-deploy-rhdh in your project. Claude Code loads it when a task matches its description.

How do I install E2E Deploy Rhdh in Codex?

Run `npx skills add redhat-developer/rhdh --skill e2e-deploy-rhdh -a codex`. Or copy the skill folder (.claude/skills/e2e-deploy-rhdh in redhat-developer/rhdh) into .agents/skills/e2e-deploy-rhdh in your project. Codex loads it when a task matches its description.

Can I use E2E Deploy Rhdh in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add redhat-developer/rhdh --skill e2e-deploy-rhdh -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e-deploy-rhdh, .gemini/skills/e2e-deploy-rhdh, .github/skills/e2e-deploy-rhdh and .opencode/skills/e2e-deploy-rhdh in your project.

What does E2E Deploy Rhdh need to run?

Going by SKILL.md and its folder, E2E Deploy Rhdh needs the command-line tools its instructions call (podman, curl, jq, helm, gh and kubectl) and credentials named K8S_CLUSTER_TOKEN. Our summary lists: Node.js; A credential in K8S_CLUSTER_TOKEN.

Does E2E Deploy Rhdh access the network?

SKILL.md names 1 domain. In commands or code: quay.io; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is E2E Deploy Rhdh safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does E2E Deploy Rhdh use?

E2E Deploy Rhdh is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does E2E Deploy Rhdh use?

About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to E2E Deploy Rhdh?

Skills that share tags, products or a category with E2E Deploy Rhdh: Life Sciences Fieldsalesrep Coordinate (forcedotcom/sf-skills, 1.1k stars), Deployment E2E Testing (microsoft/aspire, 6.3k stars), OpenWork Release Validation (different-ai/openwork, 24k stars) and Vss E2E Smoke (open-edge-platform/edge-ai-libraries, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Deploy Rhdh?

redhat-developer (a GitHub organization) maintains it in redhat-developer/rhdh, which has 172 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

Source: redhat-developer/rhdh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.