Skip to content

RHDHDeployment

Class for managing RHDH deployments in OpenShift.

Import

typescript
import { RHDHDeployment } from "rhdh-e2e-test-utils/rhdh";

Constructor

typescript
new RHDHDeployment(namespace: string)
ParameterTypeDescription
namespacestringKubernetes namespace for deployment

Properties

rhdhUrl

typescript
get rhdhUrl(): string

The URL of the deployed RHDH instance.

deploymentConfig

typescript
get deploymentConfig(): DeploymentConfig

Current deployment configuration. See Deployment Types.

k8sClient

typescript
get k8sClient(): KubernetesClientHelper

Kubernetes client instance for direct cluster operations.

Methods

configure()

typescript
async configure(options?: DeploymentOptions): Promise<void>

Configure deployment options and create namespace.

ParameterTypeDescription
optionsDeploymentOptionsOptional deployment configuration
typescript
await rhdh.configure({
  version: "1.5",
  method: "helm",
  auth: "keycloak",
  appConfig: "tests/config/app-config.yaml",
});

deploy()

typescript
async deploy(): Promise<void>

Deploy RHDH to the cluster. This:

  1. Merges configuration files
  2. Injects plugin metadata into dynamic plugins config
  3. Applies ConfigMaps and Secrets
  4. Installs RHDH via Helm or Operator
  5. Waits for deployment to be ready
typescript
await rhdh.deploy();

waitUntilReady()

typescript
async waitUntilReady(timeout?: number): Promise<void>

Wait for RHDH deployment to be ready.

ParameterTypeDefaultDescription
timeoutnumber500Timeout in seconds
typescript
await rhdh.waitUntilReady(600); // 10 minutes

rolloutRestart()

typescript
async rolloutRestart(): Promise<void>

Restart the RHDH deployment.

typescript
await rhdh.rolloutRestart();

scaleDownAndRestart()

typescript
async scaleDownAndRestart(): Promise<void>

Scale down to 0, then back to 1 replica.

typescript
await rhdh.scaleDownAndRestart();

teardown()

typescript
async teardown(): Promise<void>

Delete the namespace and all resources.

typescript
await rhdh.teardown();

Example

typescript
import { RHDHDeployment } from "rhdh-e2e-test-utils/rhdh";

const rhdh = new RHDHDeployment("my-namespace");

await rhdh.configure({
  version: "1.5",
  method: "helm",
  auth: "keycloak",
  appConfig: "tests/config/app-config.yaml",
  secrets: "tests/config/secrets.yaml",
  dynamicPlugins: "tests/config/plugins.yaml",
  valueFile: "tests/config/values.yaml",
});

await rhdh.deploy();

console.log(`RHDH deployed at: ${rhdh.rhdhUrl}`);

// After tests
await rhdh.teardown();

Released under the Apache-2.0 License.