Skip to content

Environment Variables

Complete reference of all environment variables used by the package.

These are optional but commonly set to control deployment behavior:

VariableDescriptionExampleDefault
RHDH_VERSIONRHDH version to deploy"1.5""next"
INSTALLATION_METHODDeployment method"helm" or "operator""helm"

Auto-Generated Variables

These are set automatically during deployment:

VariableDescriptionSet By
K8S_CLUSTER_ROUTER_BASEOpenShift ingress domainGlobal setup
RHDH_BASE_URLFull RHDH URLRHDHDeployment

Playwright Variables

VariableDescriptionDefault
PLAYWRIGHT_WORKERSNumber of parallel workers (e.g., "4", "50%")"50%"
PLAYWRIGHT_RETRIESNumber of test retries on failure0

Optional Variables

VariableDescriptionDefault
CIEnables auto-cleanup-
CHART_URLCustom Helm chart URLoci://quay.io/rhdh/chart
SKIP_KEYCLOAK_DEPLOYMENTSkip Keycloak auto-deployfalse
SKIP_OPERATOR_INSTALLATIONSkip operator installation in global setup-
RHDH_SKIP_PLUGIN_METADATA_INJECTIONDisable plugin metadata injection (local only, ignored in CI)-
USE_NEW_FRONTEND_SYSTEMWhen "true", enables new-frontend-system (app-next) merges when useNewFrontendSystem is not set in configure() options-

Plugin Metadata Variables

These control automatic plugin configuration injection from metadata files.

DPDY refers to dynamic-plugins.default.yaml in the catalog index image shipped with RHDH. The list of DPDY packages is defined in default.packages.yaml.

VariableDescriptionEffect
GIT_PR_NUMBERPR number (set by OpenShift CI)Enables OCI URL generation for PR builds
E2E_NIGHTLY_MODEWhen "true", activates nightly modePlugins in default.packages.yaml with OCI metadata use (RHDH resolves both OCI tag and config from DPDY); other OCI plugins use full metadata refs with config injection
RHDH_SKIP_PLUGIN_METADATA_INJECTIONWhen "true", disables metadata injectionLocal-only opt-out (ignored when CI=true)
RELEASE_BRANCH_NAMERelease branch (set by OpenShift CI step registry)Used to fetch default.packages.yaml for DPDY resolution in nightly mode. Required in CI, defaults to main locally
NIGHTLY_DPDY_OCI_REGISTRYOCI registry for refsOverrides default registry.access.redhat.com/rhdh for all plugins using in nightly mode
NIGHTLY_DPDY_OCI_REGISTRY_MAPJSON: {"registry": ["pkg1", "pkg2"]}Per-plugin registry override for refs (takes precedence over NIGHTLY_DPDY_OCI_REGISTRY)
JOB_NAMECI job name (set by OpenShift CI/Prow)If contains periodic-, nightly mode is activated
JOB_MODECI-only: nightly or pr-check (set by step registry)Informational

New frontend system (app-next)

NFS merge layers ship under config/new-frontend-system/ in the package (secrets, dynamic plugins, Helm values), same layering idea as auth/.

Enabling app-next behavior

MechanismEffect
useNewFrontendSystem: true in configure()Explicit enable
useNewFrontendSystem: falseExplicit disable (overrides auto-detection)
Playwright project / namespace ends with -app-nextAuto-enabled when useNewFrontendSystem is omitted
USE_NEW_FRONTEND_SYSTEM=trueAuto-enabled for all namespaces when useNewFrontendSystem is omitted

Overriding default OCI refs for app-auth and app-integrations uses the same pattern as other plugins: add or adjust entries in your workspace tests/config/dynamic-plugins.yaml (merged after package NFS defaults, so your versions win).

OCI URL Generation

When GIT_PR_NUMBER is set, the package replaces local plugin paths with OCI URLs:

yaml
# Before
- package: ./dynamic-plugins/dist/my-plugin

# After (with GIT_PR_NUMBER=1234)
- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/my-plugin:pr_1234__1.0.0

See Plugin Metadata for complete details.

Keycloak Variables

Required when using auth: "keycloak":

VariableDescription
KEYCLOAK_BASE_URLKeycloak instance URL
KEYCLOAK_REALMRealm name
KEYCLOAK_CLIENT_IDOIDC client ID
KEYCLOAK_CLIENT_SECRETOIDC client secret
KEYCLOAK_METADATA_URLOIDC discovery URL
KEYCLOAK_LOGIN_REALMLogin realm name
KEYCLOAK_USER_NAMEDefault test username
KEYCLOAK_USER_PASSWORDDefault test password

These are automatically set by KeycloakHelper.configureForRHDH().

GitHub Variables

For GitHub integration:

VariableDescriptionRequired
VAULT_GITHUB_USER_TOKENGitHub personal access tokenFor API/auth
VAULT_GH_USER_NAMEGitHub usernameFor login
VAULT_GH_USER_PASSWORDGitHub passwordFor login
VAULT_GH_2FA_SECRET2FA secret for OTPFor login

Custom Variables

Use in configuration files:

yaml
# tests/config/app-config-rhdh.yaml
myPlugin:
  apiUrl: ${MY_PLUGIN_API_URL}
  apiKey: ${MY_PLUGIN_API_KEY:-default-key}
yaml
# tests/config/rhdh-secrets.yaml
stringData:
  MY_PLUGIN_API_KEY: ${MY_PLUGIN_API_KEY}

Setting Variables

.env File

Create .env in your project root:

bash
RHDH_VERSION="1.5"
INSTALLATION_METHOD="helm"
SKIP_KEYCLOAK_DEPLOYMENT=false

# Secrets
GITHUB_TOKEN=ghp_xxxxx
MY_API_KEY=secret-value

The .env file is automatically loaded by global setup. Variables defined here take priority over Vault secrets.

CI/CD

Set in your CI pipeline:

yaml
# GitHub Actions
env:
  RHDH_VERSION: "1.5"
  INSTALLATION_METHOD: "helm"
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Runtime

Set programmatically:

typescript
test.beforeAll(async ({ rhdh }) => {
  process.env.MY_CUSTOM_URL = await rhdh.k8sClient.getRouteLocation(
    rhdh.deploymentConfig.namespace,
    "my-service",
  );

  await rhdh.deploy();
});

Variable Precedence

  1. Runtime (process.env)
  2. CI/CD environment
  3. .env file
  4. Default values (${VAR:-default})

Released under the Apache-2.0 License.