Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .ci/pipelines/jobs/upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ handle_ocp_helm_upgrade() {
export NAME_SPACE="${NAME_SPACE:-showcase-upgrade-nightly}"
export NAME_SPACE_POSTGRES_DB="${NAME_SPACE_POSTGRES_DB:-${NAME_SPACE}-postgres-external-db}"
export DEPLOYMENT_NAME="${DEPLOYMENT_NAME:-${RELEASE_NAME}-developer-hub}"
export IMAGE_REPO_BASE="${IMAGE_REPO_BASE:-${QUAY_REPO_BASE:-rhdh/rhdh-hub-rhel9}}"
export IMAGE_REPO_BASE="${IMAGE_REPO_BASE:-${QUAY_REPO_BASE:-$(common::default_hub_image_repo)}}"
export QUAY_REPO_BASE="${IMAGE_REPO_BASE}" # Keep QUAY_REPO_BASE in sync for backward compatibility

# Dynamically determine the previous release version and chart version
Expand Down
11 changes: 11 additions & 0 deletions .ci/pipelines/lib/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,17 @@ common::get_previous_release_version() {
echo "${major_version}.${previous_minor}"
}

# Default downstream hub image repository for the current release branch.
# Maintenance branches (release-1.x) use RHEL 9 images; main / 2.y streams use RHEL 10.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Maintenance branches (release-1.x) use RHEL 9 images; main / 2.y streams use RHEL 10.
# Maintenance branches (release-1.x) use RHEL 9 images; main / 2.y streams use RHEL 10.
# Remove this if/else and only use RHEL10 once we have EOL'd RHDH 1.10 (after 2.2 is live, or after all the SUPPORTEX tickets expire)

common::default_hub_image_repo() {
local branch="${RELEASE_BRANCH_NAME:-main}"
if [[ "$branch" == release-* ]]; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if [[ "$branch" == release-* ]]; then
if [[ "$branch" == release-1.* ]]; then

echo "rhdh/rhdh-hub-rhel9"
else
echo "rhdh/rhdh-hub-rhel10"
fi
}

# Generic polling helper - waits for a condition to become true
# Args: condition_cmd, max_attempts, wait_interval, description
# Returns: 0 on success, 1 on timeout
Expand Down
4 changes: 2 additions & 2 deletions .ci/pipelines/trigger-nightly-job.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# # Trigger with a custom image (e.g. RC verification):
# ./trigger-nightly-job.sh \
# --job periodic-ci-redhat-developer-rhdh-main-e2e-ocp-helm-nightly \
# --image-repo rhdh/rhdh-hub-rhel9 \
# --image-repo rhdh/rhdh-hub-rhel10 \
# --tag 1.9-227 \
# --catalog-index-tag 1.9 \
# --chart-version 1.9-227-CI
Expand Down Expand Up @@ -81,7 +81,7 @@ Required:

Optional overrides (passed as env var overrides to the job):
-I, --image-registry IMAGE_REGISTRY Override the image registry (default: quay.io).
-q, --image-repo IMAGE_REPO Override the image repository (e.g. rhdh/rhdh-hub-rhel9). Requires --tag to be set.
-q, --image-repo IMAGE_REPO Override the image repository (e.g. rhdh/rhdh-hub-rhel9 or rhdh/rhdh-hub-rhel10). Requires --tag to be set.
-t, --tag TAG_NAME Override the image tag (e.g. 1.9-227).
-o, --org GITHUB_ORG_NAME Override the GitHub org (default in job: redhat-developer).
-r, --repo GITHUB_REPO_NAME Override the GitHub repo name (default in job: rhdh).
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Red Hat Developer Hub (RHDH)

[0]: https://quay.io/repository/rhdh-community/rhdh
[0]: https://quay.io/repository/rhdh/rhdh-hub-rhel9
[1]: https://quay.io/repository/rhdh/rhdh-hub-rhel10
[2]: https://quay.io/repository/rhdh/rhdh-hub-rhel9

[![Quay.io registry](https://img.shields.io/badge/Quay.io-rhdh--community/rhdh:next-white?logoColor=white&labelColor=grey&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSIzOS43IiB2aWV3Qm94PSIwIDAgMzkuNyAzOS43Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCguMzk0NTggMCAwIC4zOTQ1OCAxLjA4MiAuMTA1KSI+PGNpcmNsZSBjeD0iNTUuMDY5IiBjeT0iNTAiIHI9IjUwIiBmaWxsPSIjRDcxRTAwIi8+PHBhdGggZmlsbD0iI0MyMUEwMCIgZD0iTTkwLjQyOSAxNC42NDFjMTkuNTI5IDE5LjUyOSAxOS41MjkgNTEuMTkgMCA3MC43MTgtMTkuNTI5IDE5LjUzLTUxLjE5MiAxOS41My03MC43MiAwbDcwLjcyLTcwLjcxOHoiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJtNTkuNjA4IDQ5Ljk5IDE1LjA2IDMxLjg2OWgtMTIuODNMNDYuNzg5IDQ5Ljk5bDE1LjA0OS0zMS44NWgxMi44M3oiLz48cGF0aCBmaWxsPSIjQjdCN0I3IiBkPSJtNzQuNjY4IDgxLjg1OSAxNS4wNS0zMS44NjktMTUuMDUtMzEuODUtNi40MSAxMy41NiA4LjY0IDE4LjI5LTguNjQgMTguMzAxeiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Im0zMy4yMzkgNDkuOTkgMTUuMDYgMzEuODY5aC0xMi44M0wyMC40MTkgNDkuOTlsMTUuMDUtMzEuODVoMTIuODN6Ii8+PHBhdGggZmlsbD0iI0I3QjdCNyIgZD0ibTQ4LjY1OSA0Ni4wNCA2LjQxLTEzLjU3LTYuNzctMTQuMzMtNi40MiAxMy41N3pNNDEuODc5IDY4LjI5MWw2LjQyIDEzLjU2OCA2Ljc3LTE0LjMzLTYuNDEtMTMuNTY4eiIvPjwvZz48L3N2Zz4K)][0]
[![Quay.io RHEL 10 hub](https://img.shields.io/badge/Quay.io-rhdh/rhdh--hub--rhel10:next-white?logoColor=white&labelColor=grey&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSIzOS43IiB2aWV3Qm94PSIwIDAgMzkuNyAzOS43Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCguMzk0NTggMCAwIC4zOTQ1OCAxLjA4MiAuMTA1KSI+PGNpcmNsZSBjeD0iNTUuMDY5IiBjeT0iNTAiIHI9IjUwIiBmaWxsPSIjRDcxRTAwIi8+PHBhdGggZmlsbD0iI0MyMUEwMCIgZD0iTTkwLjQyOSAxNC42NDFjMTkuNTI5IDE5LjUyOSAxOS41MjkgNTEuMTkgMCA3MC43MTgtMTkuNTI5IDE5LjUzLTUxLjE5MiAxOS41My03MC43MiAwbDcwLjcyLTcwLjcxOHoiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJtNTkuNjA4IDQ5Ljk5IDE1LjA2IDMxLjg2OWgtMTIuODNMNDYuNzg5IDQ5Ljk5bDE1LjA0OS0zMS44NWgxMi44M3oiLz48cGF0aCBmaWxsPSIjQjdCN0I3IiBkPSJtNzQuNjY4IDgxLjg1OSAxNS4wNS0zMS44NjktMTUuMDUtMzEuODUtNi40MSAxMy41NiA4LjY0IDE4LjI5LTguNjQgMTguMzAxeiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Im0zMy4yMzkgNDkuOTkgMTUuMDYgMzEuODY5aC0xMi44M0wyMC40MTkgNDkuOTlsMTUuMDUtMzEuODVoMTIuODN6Ii8+PHBhdGggZmlsbD0iI0I3QjdCNyIgZD0ibTQ4LjY1OSA0Ni4wNCA2LjQxLTEzLjU3LTYuNzctMTQuMzMtNi40MiAxMy41N3pNNDEuODc5IDY4LjI5MWw2LjQyIDEzLjU2OCA2Ljc3LTE0LjMzLTYuNDEtMTMuNTY4eiIvPjwvZz48L3N2Zz4K)][1]
[![Quay.io RHEL 9 hub](https://img.shields.io/badge/Quay.io-rhdh/rhdh--hub--rhel9:next-white?logoColor=white&labelColor=grey&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSIzOS43IiB2aWV3Qm94PSIwIDAgMzkuNyAzOS43Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCguMzk0NTggMCAwIC4zOTQ1OCAxLjA4MiAuMTA1KSI+PGNpcmNsZSBjeD0iNTUuMDY5IiBjeT0iNTAiIHI9IjUwIiBmaWxsPSIjRDcxRTAwIi8+PHBhdGggZmlsbD0iI0MyMUEwMCIgZD0iTTkwLjQyOSAxNC42NDFjMTkuNTI5IDE5LjUyOSAxOS41MjkgNTEuMTkgMCA3MC43MTgtMTkuNTI5IDE5LjUzLTUxLjE5MiAxOS41My03MC43MiAwbDcwLjcyLTcwLjcxOHoiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJtNTkuNjA4IDQ5Ljk5IDE1LjA2IDMxLjg2OWgtMTIuODNMNDYuNzg5IDQ5Ljk5bDE1LjA0OS0zMS44NWgxMi44M3oiLz48cGF0aCBmaWxsPSIjQjdCN0I3IiBkPSJtNzQuNjY4IDgxLjg1OSAxNS4wNS0zMS44NjktMTUuMDUtMzEuODUtNi40MSAxMy41NiA4LjY0IDE4LjI5LTguNjQgMTguMzAxeiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Im0zMy4yMzkgNDkuOTkgMTUuMDYgMzEuODY5aC0xMi44M0wyMC40MTkgNDkuOTlsMTUuMDUtMzEuODVoMTIuODN6Ii8+PHBhdGggZmlsbD0iI0I3QjdCNyIgZD0ibTQ4LjY1OSA0Ni4wNCA2LjQxLTEzLjU3LTYuNzctMTQuMzMtNi40MiAxMy41N3pNNDEuODc5IDY4LjI5MWw2LjQyIDEzLjU2OCA2Ljc3LTE0LjMzLTYuNDEtMTMuNTY4eiIvPjwvZz48L3N2Zz4K)][2]

## Purpose

Expand Down
31 changes: 15 additions & 16 deletions build/containerfiles/Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
# limitations under the License.

# Stage 1 - Build nodejs skeleton
# https://registry.access.redhat.com/ubi9/nodejs-24
FROM registry.access.redhat.com/ubi9/nodejs-24:9.8-1787722670@sha256:3f9a88954bdc197c910f233d04b2071fad68f69dde598691ee92e5193300266f AS skeleton
FROM registry.access.redhat.com/ubi10/nodejs-24:10.2-1786427351@sha256:a35d0e62639a3b678cd1b8dcb027b046fb5493cc4d295648af64cbda61bc697e AS skeleton
# hadolint ignore=DL3002
USER 0

Expand All @@ -28,23 +27,23 @@ RUN dnf install -q -y --allowerasing --nobest \
findutils fonts-filesystem fuse-common fuse-overlayfs fuse3 fuse3-libs gawk gcc gcc-c++ gdb-gdbserver gdbm-libs gettext gettext-libs git git-core git-core-doc glib2 glibc \
glibc-common glibc-devel glibc-headers glibc-langpack-en glibc-locale-source glibc-minimal-langpack gmp gnupg2 gnutls gobject-introspection gpgme grep groff-base gzip \
ima-evm-utils iproute json-c json-glib kernel-headers keyutils keyutils-libs kmod kmod-libs krb5-libs langpacks-core-en langpacks-core-font-en langpacks-en less \
libacl libarchive libassuan libattr libblkid libbpf libcap libcap-ng libcbor libcom_err libcomps libcurl-minimal libdb libdnf libdnf-plugin-subscription-manager \
libacl libarchive libassuan libattr libblkid libbpf libcap libcap-ng libcbor libcom_err libcomps libcurl-minimal libdnf libdnf-plugin-subscription-manager \
libeconf libedit libevent libfdisk libffi libfido2 libgcc libgcrypt libgomp libgpg-error libidn2 libksba libmnl libmodulemd libmount libmpc libnet libnghttp2 libnl3 \
libpipeline libpkgconf libpwquality librepo libreport-filesystem librhsm libseccomp libselinux libsemanage libsepol libsigsegv libslirp libsmartcols libsolv libstdc++ libstdc++-devel \
libpipeline libpkgconf libpwquality librepo librhsm libseccomp libselinux libsemanage libsepol libslirp libsmartcols libsolv libstdc++ libstdc++-devel \
libtasn1 libunistring libuser libutempter libuuid libverto libxcrypt libxcrypt-compat libxcrypt-devel libxml2 libyaml libzstd lua-libs lz4-libs make man mpfr \
ncurses ncurses-base ncurses-libs nettle npth nss_wrapper-libs openldap \
openssh openssh-clients openssl openssl-devel openssl-fips-provider openssl-fips-provider-so openssl-libs p11-kit p11-kit-trust pam passwd pcre pcre2 pcre2-syntax \
openssh openssh-clients openssl openssl-devel openssl-fips-provider openssl-fips-provider-so openssl-libs p11-kit p11-kit-trust pam passwd pcre2 pcre2-syntax \
perl perl-AutoLoader perl-B perl-base perl-Carp perl-Class-Struct perl-constant perl-Data-Dumper perl-Digest perl-Digest-MD5 perl-DynaLoader perl-Encode perl-Errno perl-Error \
perl-Exporter perl-Fcntl perl-File-Basename perl-File-Find perl-File-Path perl-File-stat perl-File-Temp perl-FileHandle perl-Getopt-Long perl-Getopt-Std perl-Git perl-HTTP-Tiny \
perl-interpreter perl-IO perl-IO-Socket-IP perl-IO-Socket-SSL perl-IPC-Open3 perl-lib perl-libnet perl-libs perl-MIME-Base64 perl-Mozilla-CA perl-mro perl-NDBM_File perl-Net-SSLeay \
perl-overload perl-overloading perl-parent perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-podlators perl-POSIX perl-Scalar-List-Utils perl-SelectSaver \
perl-Socket perl-Storable perl-subs perl-Symbol perl-Term-ANSIColor perl-Term-Cap perl-TermReadKey perl-Text-ParseWords perl-Text-Tabs+Wrap perl-Time-Local perl-URI perl-vars pkgconf \
pkgconf-m4 pkgconf-pkg-config popt procps-ng protobuf-c psmisc python-unversioned-command python3 python3-chardet python3-cloud-what python3-dateutil python3-dbus python3-decorator \
pkgconf-m4 pkgconf-pkg-config popt procps-ng protobuf-c psmisc python-unversioned-command python3 python3-cloud-what python3-dateutil python3-dbus python3-decorator \
python3-dnf python3-dnf-plugins-core python3-gobject-base python3-gobject-base-noarch python3-gpg python3-hawkey python3-idna python3-iniparse python3-inotify python3-libcomps \
python3-libdnf python3-librepo python3-libs python3-pip python3-pip-wheel python3-pysocks python3-requests python3-rpm python3-setuptools python3-setuptools-wheel python3-six \
python3-libdnf python3-librepo python3-libs python3-pip python3-pip-wheel python3-requests python3-rpm python3-setuptools python3-setuptools-wheel python3-six \
python3-subscription-manager-rhsm python3-systemd python3-urllib3 readline redhat-release rootfiles rpm rpm-build-libs rpm-libs rpm-plugin-selinux rpm-sign-libs rsync scl-utils \
sed selinux-policy selinux-policy-targeted setup shadow-utils skopeo slirp4netns sqlite-libs subscription-manager subscription-manager-rhsm-certificates systemd systemd-libs \
systemd-pam systemd-rpm-macros tar tcl tpm2-tss tzdata unzip usermode util-linux util-linux-core vim-filesystem vim-minimal virt-what which xz xz-libs yajl yum zlib zlib-devel && \
sed selinux-policy selinux-policy-targeted setup shadow-utils skopeo sqlite-libs subscription-manager subscription-manager-rhsm-certificates systemd systemd-libs \
systemd-pam systemd-rpm-macros tar tcl tpm2-tss tzdata unzip usermode util-linux util-linux-core vim-filesystem vim-minimal virt-what which xz xz-libs yum zlib zlib-devel && \
\
# '(micro)dnf update -y' not allowed in Konflux+Cachi2: instead use renovate or https://github.com/konflux-ci/rpm-lockfile-prototype to update the rpms.lock.yaml file
dnf clean all
Expand Down Expand Up @@ -233,8 +232,8 @@ RUN hadFail=0; for d in $(find /tmp -name "yarn*log*" || true) $(find /tmp/xfs-*
# Prevents duplicating the same dependencies in the final minimal image.
# hadolint ignore=DL3013,DL3041,SC2086
COPY $EXTERNAL_SOURCE_NESTED/python/ ./python/
RUN dnf install -y python3.11 python3.11-pip python3.11-devel 1>/dev/null 2>&1 && \
python3.11 -m venv /opt/techdocs-venv && \
RUN dnf install -y python3.12 python3.12-pip python3.12-devel 1>/dev/null 2>&1 && \
python3.12 -m venv /opt/techdocs-venv && \
/opt/techdocs-venv/bin/pip install --no-cache-dir --upgrade pip setuptools pyyaml && \
/opt/techdocs-venv/bin/pip install --no-cache-dir -r python/requirements.txt -r python/requirements-build.txt && \
/opt/techdocs-venv/bin/mkdocs --version && \
Expand All @@ -248,8 +247,8 @@ RUN rm -rf \
dist-types packages/app/.webpack-cache

# Stage 5 - Build the runner image
# https://registry.access.redhat.com/ubi9/nodejs-24-minimal
FROM registry.access.redhat.com/ubi9/nodejs-24-minimal:9.8-1787708413@sha256:b65d9acb66bf446040c91925f245ee2e9d9873c966ed3eb0a87e23ed3ca12786 AS runner
# https://registry.access.redhat.com/ubi10/nodejs-24-minimal
FROM registry.access.redhat.com/ubi10/nodejs-24-minimal:10.2-1786428684@sha256:679472268ade9e0438fb09afa7a958e9747b0019727bf203a5c9dc07b7ac7161 AS runner
USER 0

ENV EXTERNAL_SOURCE_NESTED=.
Expand All @@ -261,9 +260,9 @@ WORKDIR $CONTAINER_SOURCE/
# export PIP_NO_INDEX=true

# Runtime Python for techdocs (interpreter + skopeo only; mkdocs lives in the pre-built venv from techdocs stage)
RUN microdnf install -y python3.11 skopeo 1>/dev/null 2>&1; \
alternatives --install /usr/bin/python python /usr/bin/python3.11 1 && \
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
RUN microdnf install -y python3.12 skopeo 1>/dev/null 2>&1; \
alternatives --install /usr/bin/python python /usr/bin/python3.12 1 && \
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 && \
microdnf clean all

# Copy openssl binary from build stage (needed for dynamic plugin integrity verification)
Expand Down
35 changes: 20 additions & 15 deletions e2e-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ Follow the interactive prompts to select:
1. **Run mode**: Deploy only (default, for headed debugging) or Deploy and run tests
2. **Job type**: OCP Helm PR tests, Nightly tests, Operator tests, etc.
3. **Image type**:
- **Downstream** (`quay.io/rhdh/rhdh-hub-rhel9`): `next`, `latest`, or release-specific tag
- **Downstream RHEL 9** (`quay.io/rhdh/rhdh-hub-rhel9`): `next`, `latest`, or release-specific tag (maintenance branches)
- **Downstream RHEL 10** (`quay.io/rhdh/rhdh-hub-rhel10`): `next`, `latest`, or release-specific tag (`main` / 2.y stream)
- **PR image** (`quay.io/rhdh-community/rhdh`): Enter PR number

After the container finishes, you're back on your host with the cluster still accessible.
Expand All @@ -139,6 +140,9 @@ For automation or quick runs, use CLI flags to skip interactive prompts:
./local-run.sh --pr 4023 --skip-tests

# Deploy downstream next image
./local-run.sh --repo rhdh/rhdh-hub-rhel10 --tag next --skip-tests

# RHEL 9 maintenance stream image
./local-run.sh --repo rhdh/rhdh-hub-rhel9 --tag next --skip-tests

# Use a custom registry
Expand All @@ -158,15 +162,15 @@ Disconnected Operator and Helm nightlies can be started only via `local-run.sh`

`local-run.sh` sets `DISCONNECTED=true` and `LOCAL_DISCONNECTED=1` for `*disconnected*` jobs. The e2e-runner bootstraps `MIRROR_*` **inside the container** under `${SHARED_DIR}/disconnected-mirror/` (worktree mount), using the cluster image registry route. Operator prepare uses `--to-registry OCP_INTERNAL`; Helm oc-mirrors to the exposed registry route. For air-gap prepare semantics, see [rhdh-operator](https://github.com/redhat-developer/rhdh-operator) docs — this path does not duplicate them.

| Flag | Description |
| ------------------ | -------------------------------------------------------------------- |
| `-j, --job` | Job name |
| `-R, --registry` | Image registry (default: `quay.io`) |
| `-r, --repo` | Image repository (e.g., `rhdh/rhdh-hub-rhel9`) |
| `-t, --tag` | Image tag (e.g., `next`, `latest`, `1.5`) |
| `-p, --pr` | PR number (sets repo to `rhdh-community/rhdh`, tag to `pr-<number>`) |
| `-s, --skip-tests` | Deploy only, skip running tests |
| `-h, --help` | Show help message |
| Flag | Description |
| ------------------ | ------------------------------------------------------------------------ |
| `-j, --job` | Job name |
| `-R, --registry` | Image registry (default: `quay.io`) |
| `-r, --repo` | Image repository (e.g., `rhdh/rhdh-hub-rhel10` or `rhdh/rhdh-hub-rhel9`) |
| `-t, --tag` | Image tag (e.g., `next`, `latest`, `1.5`) |
| `-p, --pr` | PR number (sets repo to `rhdh-community/rhdh`, tag to `pr-<number>`) |
| `-s, --skip-tests` | Deploy only, skip running tests |
| `-h, --help` | Show help message |

---

Expand Down Expand Up @@ -301,11 +305,12 @@ All job types are supported as long as you're logged into the target cluster (`o

#### Image Repositories

| Option | Repository | Description |
| ------ | --------------------- | ------------------------- |
| 1 | `rhdh-community/rhdh` | Community image (default) |
| 2 | `rhdh/rhdh-hub-rhel9` | Red Hat official image |
| 3 | Custom | Enter your own repository |
| Option | Repository | Description |
| ------ | ---------------------- | ------------------------------------ |
| 1 | `rhdh-community/rhdh` | Community image (default) |
| 2 | `rhdh/rhdh-hub-rhel10` | Red Hat RHEL 10 image (`main` / 2.y) |
| 3 | `rhdh/rhdh-hub-rhel9` | Red Hat RHEL 9 image (maintenance) |

@nickboldt nickboldt Sep 1, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| 3 | `rhdh/rhdh-hub-rhel9` | Red Hat RHEL 9 image (maintenance) |
| 3 | `rhdh/rhdh-hub-rhel9` | Red Hat RHEL 9 image (1.y only) |

| 4 | Custom | Enter your own repository |

#### Image Tags

Expand Down
Loading
Loading