Skip to content
Merged
22 changes: 18 additions & 4 deletions .ci/pipelines/cluster/aks/aks-helm-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh
# shellcheck source=.ci/pipelines/cluster/k8s/k8s-utils.sh
source "$DIR"/cluster/k8s/k8s-utils.sh

initiate_aks_helm_deployment() {
common::require_vars "RELEASE_NAME" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" || return 1

namespace::delete "${NAME_SPACE_RBAC}"
namespace::configure "${NAME_SPACE}"

Expand All @@ -25,15 +31,20 @@ initiate_aks_helm_deployment() {
namespace::setup_image_pull_secret "${NAME_SPACE}" "rh-pull-secret" "${REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON}"

log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE}"
helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
if ! helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}"
--set upstream.backstage.image.tag="${TAG_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME} in ${NAME_SPACE}"
return 1
fi
}

initiate_rbac_aks_helm_deployment() {
common::require_vars "RELEASE_NAME_RBAC" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" || return 1

namespace::delete "${NAME_SPACE}"
namespace::configure "${NAME_SPACE_RBAC}"

Expand All @@ -48,10 +59,13 @@ initiate_rbac_aks_helm_deployment() {
namespace::setup_image_pull_secret "${NAME_SPACE_RBAC}" "rh-pull-secret" "${REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON}"

log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE_RBAC}"
helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
if ! helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}"
--set upstream.backstage.image.tag="${TAG_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME_RBAC} in ${NAME_SPACE_RBAC}"
return 1
fi
}
6 changes: 6 additions & 0 deletions .ci/pipelines/cluster/aks/aks-operator-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh
# shellcheck source=.ci/pipelines/install-methods/operator.sh
Expand All @@ -13,6 +17,7 @@ initiate_aks_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed non-RBAC deployment on AKS"

namespace::configure "${namespace}"
Expand All @@ -38,6 +43,7 @@ initiate_rbac_aks_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME_RBAC" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed RBAC deployment on AKS"

namespace::configure "${namespace}"
Expand Down
22 changes: 18 additions & 4 deletions .ci/pipelines/cluster/eks/eks-helm-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh

initiate_eks_helm_deployment() {
common::require_vars "RELEASE_NAME" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" || return 1

log::info "Initiating EKS Helm deployment"

namespace::delete "${NAME_SPACE_RBAC}"
Expand All @@ -24,15 +30,20 @@ initiate_eks_helm_deployment() {
helm::merge_values "merge" "${DIR}/value_files/${HELM_CHART_VALUE_FILE_NAME}" "/tmp/${HELM_CHART_EKS_DIFF_VALUE_FILE_NAME}" "/tmp/${HELM_CHART_K8S_MERGED_VALUE_FILE_NAME}"
common::save_artifact "${NAME_SPACE}" "/tmp/${HELM_CHART_K8S_MERGED_VALUE_FILE_NAME}" # Save the final value-file into the artifacts directory.
log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE}"
helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
if ! helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}"
--set upstream.backstage.image.tag="${TAG_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME} in ${NAME_SPACE}"
return 1
fi
}

initiate_rbac_eks_helm_deployment() {
common::require_vars "RELEASE_NAME_RBAC" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" || return 1

log::info "Initiating EKS RBAC Helm deployment"

namespace::delete "${NAME_SPACE}"
Expand All @@ -50,10 +61,13 @@ initiate_rbac_eks_helm_deployment() {
helm::merge_values "merge" "${DIR}/value_files/${HELM_CHART_RBAC_VALUE_FILE_NAME}" "/tmp/${HELM_CHART_RBAC_EKS_DIFF_VALUE_FILE_NAME}" "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}"
common::save_artifact "${NAME_SPACE_RBAC}" "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}" # Save the final value-file into the artifacts directory.
log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE_RBAC}"
helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
if ! helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}"
--set upstream.backstage.image.tag="${TAG_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME_RBAC} in ${NAME_SPACE_RBAC}"
return 1
fi
}
6 changes: 6 additions & 0 deletions .ci/pipelines/cluster/eks/eks-operator-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh
# shellcheck source=.ci/pipelines/install-methods/operator.sh
Expand All @@ -11,6 +15,7 @@ initiate_eks_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed non-RBAC deployment on EKS"

namespace::configure "${namespace}"
Expand All @@ -35,6 +40,7 @@ initiate_rbac_eks_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME_RBAC" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed RBAC deployment on EKS"

namespace::configure "${namespace}"
Expand Down
23 changes: 19 additions & 4 deletions .ci/pipelines/cluster/gke/gke-helm-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh
# shellcheck source=.ci/pipelines/cluster/gke/gcloud.sh
Expand All @@ -10,6 +14,8 @@ source "$DIR"/cluster/gke/gcloud.sh
source "$DIR"/cluster/gke/manifest.sh

initiate_gke_helm_deployment() {
common::require_vars "RELEASE_NAME" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" "GKE_CERT_NAME" || return 1

namespace::delete "${NAME_SPACE_RBAC}"
namespace::configure "${NAME_SPACE}"

Expand All @@ -27,16 +33,21 @@ initiate_gke_helm_deployment() {
namespace::setup_image_pull_secret "${NAME_SPACE}" "rh-pull-secret" "${REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON}"

log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE}"
helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
if ! helm upgrade -i "${RELEASE_NAME}" -n "${NAME_SPACE}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}" \
--set upstream.ingress.annotations."ingress\.gcp\.kubernetes\.io/pre-shared-cert"="${GKE_CERT_NAME}"
--set upstream.ingress.annotations."ingress\.gcp\.kubernetes\.io/pre-shared-cert"="${GKE_CERT_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME} in ${NAME_SPACE}"
return 1
fi
}

initiate_rbac_gke_helm_deployment() {
common::require_vars "RELEASE_NAME_RBAC" "TAG_NAME" "QUAY_REPO" "K8S_CLUSTER_ROUTER_BASE" "GKE_CERT_NAME" || return 1

namespace::delete "${NAME_SPACE}"
namespace::configure "${NAME_SPACE_RBAC}"

Expand All @@ -50,12 +61,16 @@ initiate_rbac_gke_helm_deployment() {
common::save_artifact "${NAME_SPACE_RBAC}" "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}"

namespace::setup_image_pull_secret "${NAME_SPACE_RBAC}" "rh-pull-secret" "${REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON}"

log::info "Deploying image from repository: ${QUAY_REPO}, TAG_NAME: ${TAG_NAME}, in NAME_SPACE: ${NAME_SPACE_RBAC}"
helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
if ! helm upgrade -i "${RELEASE_NAME_RBAC}" -n "${NAME_SPACE_RBAC}" \
"${HELM_CHART_URL}" --version "${CHART_VERSION}" \
-f "/tmp/${HELM_CHART_RBAC_K8S_MERGED_VALUE_FILE_NAME}" \
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}" \
--set upstream.ingress.annotations."ingress\.gcp\.kubernetes\.io/pre-shared-cert"="${GKE_CERT_NAME}"
--set upstream.ingress.annotations."ingress\.gcp\.kubernetes\.io/pre-shared-cert"="${GKE_CERT_NAME}"; then
log::error "Helm upgrade failed for ${RELEASE_NAME_RBAC} in ${NAME_SPACE_RBAC}"
return 1
fi
}
6 changes: 6 additions & 0 deletions .ci/pipelines/cluster/gke/gke-operator-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# shellcheck source=.ci/pipelines/lib/log.sh
source "$DIR"/lib/log.sh
# shellcheck source=.ci/pipelines/lib/common.sh
source "$DIR"/lib/common.sh
# shellcheck source=.ci/pipelines/lib/namespace.sh
source "$DIR"/lib/namespace.sh
# shellcheck source=.ci/pipelines/utils.sh
source "$DIR"/utils.sh
# shellcheck source=.ci/pipelines/cluster/gke/gcloud.sh
Expand All @@ -15,6 +19,7 @@ initiate_gke_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed non-RBAC deployment on GKE"

namespace::configure "${namespace}"
Expand All @@ -40,6 +45,7 @@ initiate_rbac_gke_operator_deployment() {
local namespace=$1
local rhdh_base_url=$2

common::require_vars "RELEASE_NAME_RBAC" "REGISTRY_REDHAT_IO_SERVICE_ACCOUNT_DOCKERCONFIGJSON" || return 1
log::info "Initiating Operator-backed RBAC deployment on GKE"

namespace::configure "${namespace}"
Expand Down
5 changes: 4 additions & 1 deletion .ci/pipelines/install-methods/operator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ install_rhdh_operator() {
fi
# Make sure script is up to date
rm -f /tmp/install-rhdh-catalog-source.sh
curl -L "https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/${RELEASE_BRANCH_NAME}/.rhdh/scripts/install-rhdh-catalog-source.sh" > /tmp/install-rhdh-catalog-source.sh
if ! curl -fL -o /tmp/install-rhdh-catalog-source.sh "https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/${RELEASE_BRANCH_NAME}/.rhdh/scripts/install-rhdh-catalog-source.sh"; then
log::error "Failed to download install-rhdh-catalog-source.sh from branch ${RELEASE_BRANCH_NAME}"
return 1
fi
chmod +x /tmp/install-rhdh-catalog-source.sh

if [[ "$RELEASE_BRANCH_NAME" == "main" ]]; then
Expand Down
2 changes: 1 addition & 1 deletion .ci/pipelines/jobs/auth-providers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@ handle_auth_providers() {
export LOGS_FOLDER

log::info "Running tests ${AUTH_PROVIDERS_RELEASE} in ${AUTH_PROVIDERS_NAMESPACE}"
testing::run_tests "${AUTH_PROVIDERS_RELEASE}" "${AUTH_PROVIDERS_NAMESPACE}" "${PW_PROJECT_SHOWCASE_AUTH_PROVIDERS}" "https://${K8S_CLUSTER_ROUTER_BASE}"
testing::run_tests "${AUTH_PROVIDERS_RELEASE}" "${AUTH_PROVIDERS_NAMESPACE}" "${PW_PROJECT_SHOWCASE_AUTH_PROVIDERS}" "https://${K8S_CLUSTER_ROUTER_BASE}" || true
}
2 changes: 1 addition & 1 deletion .ci/pipelines/jobs/ocp-nightly.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ run_runtime_config_change_tests() {
# Deploy `showcase-runtime` to run tests that require configuration changes at runtime
initiate_runtime_deployment "${RELEASE_NAME}" "${NAME_SPACE_RUNTIME}"
local runtime_url="https://${RELEASE_NAME}-developer-hub-${NAME_SPACE_RUNTIME}.${K8S_CLUSTER_ROUTER_BASE}"
testing::run_tests "${RELEASE_NAME}" "${NAME_SPACE_RUNTIME}" "${PW_PROJECT_SHOWCASE_RUNTIME}" "${runtime_url}"
testing::run_tests "${RELEASE_NAME}" "${NAME_SPACE_RUNTIME}" "${PW_PROJECT_SHOWCASE_RUNTIME}" "${runtime_url}" || true
}

run_sanity_plugins_check() {
Expand Down
2 changes: 1 addition & 1 deletion .ci/pipelines/jobs/ocp-operator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ run_operator_runtime_config_change_tests() {
config::create_app_config_map "$DIR/resources/postgres-db/rds-app-config.yaml" "${NAME_SPACE_RUNTIME}"
deploy_rhdh_operator "${NAME_SPACE_RUNTIME}" "${DIR}/resources/rhdh-operator/rhdh-start-runtime.yaml"
local runtime_url="https://backstage-${RELEASE_NAME}-${NAME_SPACE_RUNTIME}.${K8S_CLUSTER_ROUTER_BASE}"
testing::run_tests "${RELEASE_NAME}" "${NAME_SPACE_RUNTIME}" "${PW_PROJECT_SHOWCASE_RUNTIME}" "${runtime_url}"
testing::run_tests "${RELEASE_NAME}" "${NAME_SPACE_RUNTIME}" "${PW_PROJECT_SHOWCASE_RUNTIME}" "${runtime_url}" || true
}

handle_ocp_operator() {
Expand Down
16 changes: 16 additions & 0 deletions .ci/pipelines/lib/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,18 @@ common::create_configmap_from_files() {
--dry-run=client -o yaml | oc apply -f -
}

# Validate that required variables are set and non-empty
# Args: variable_names...
# Returns: 1 if any variable is unset or empty
common::require_vars() {
for var in "$@"; do
if [[ -z "${!var:-}" ]]; then
log::error "Required variable $var is not set"
return 1
fi
done
}

# Base64 encode a string (no newlines, cross-platform)
common::base64_encode() {
echo -n "$1" | base64 | tr -d '\n'
Expand Down Expand Up @@ -172,3 +184,7 @@ common::save_artifact() {
mkdir -p "${ARTIFACT_DIR}/${namespace}"
rsync -a "$file" "${ARTIFACT_DIR}/${namespace}/"
}

# Export functions for subshell usage (e.g., timeout bash -c "...")
export -f common::base64_encode
export -f common::require_vars
9 changes: 7 additions & 2 deletions .ci/pipelines/lib/helm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,14 @@ helm::get_chart_version() {
return 1
fi

curl -sSX GET "https://quay.io/api/v1/repository/rhdh/chart/tag/?onlyActiveTags=true&filter_tag_name=like:${chart_major_version}-" \
local version
version=$(curl -sSfX GET "https://quay.io/api/v1/repository/rhdh/chart/tag/?onlyActiveTags=true&filter_tag_name=like:${chart_major_version}-" \
-H "Content-Type: application/json" \
| jq -r '.tags[0].name' | grep -oE '[0-9]+\.[0-9]+-[0-9]+-CI'
| jq -r '.tags[0].name' | grep -oE '[0-9]+\.[0-9]+-[0-9]+-CI') || {
log::error "Failed to resolve chart version for ${chart_major_version}"
return 1
}
echo "$version"
}

# Uninstall a Helm chart if it exists
Expand Down
2 changes: 1 addition & 1 deletion .ci/pipelines/lib/namespace.sh
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ namespace::force_delete() {
log::warn "Timeout: Namespace '${project}' was not deleted within $timeout_seconds seconds." >&2
return 1
fi
sleep $sleep_interval
sleep "$sleep_interval"
elapsed=$((elapsed + sleep_interval))
done

Expand Down
7 changes: 0 additions & 7 deletions .ci/pipelines/lib/operators.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,6 @@ operator::install_postgres_ocp() {
return 0
}

# Install Crunchy Postgres Operator from OperatorHub.io
operator::install_postgres_k8s() {
operator::install_subscription crunchy-postgres-operator "${OPERATOR_NAMESPACE}" v5 crunchy-postgres-operator certified-operators openshift-marketplace
operator::check_status 300 "operators" "Crunchy Postgres for Kubernetes" "${OPERATOR_STATUS_SUCCEEDED}"
return $?
}

# Install OpenShift Serverless Logic Operator (SonataFlow)
operator::install_serverless_logic() {
operator::install_subscription logic-operator-rhel8 "${OPERATOR_NAMESPACE}" alpha logic-operator-rhel8 redhat-operators openshift-marketplace
Expand Down
Loading
Loading