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
6 changes: 6 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ export KEYCLOAK_REALM=""
export KEYCLOAK_LOGIN_REALM=""
export KEYCLOAK_METADATA_URL=""
export KEYCLOAK_BASE_URL=""

# OSL operator overrides (set by prepare-osl-internal.sh -> .env.osl)
# export OSL_IIB_IMAGE=""
# export OSL_VERSION=""
# export OSL_LOGIC_CSV=""
# export OSL_CATALOG_SOURCE=""
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
.env
.env.osl
config/image-mirrors.conf
config/osl-releases/*.json
!config/osl-releases/example.json
install-rhdh-catalog-source.sh
plugin-infra.sh
.DS_Store
.claude/
.claude/
.worktrees/
28 changes: 28 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ PLUGINS ?=
USE_CONTAINER ?= false
CATALOG_INDEX_TAG ?=
RUNNER_IMAGE ?= quay.io/rhdh-community/rhdh-e2e-runner:main
OSL_RELEASE ?=
ORCH_NAMESPACE ?= orchestrator

export CATALOG_INDEX_TAG

Expand Down Expand Up @@ -68,6 +70,32 @@ undeploy-infra: ## Uninstall orchestrator infra chart
clean: ## Delete the entire namespace (removes everything)
oc delete project $(NAMESPACE) --ignore-not-found

# ── Orchestrator / OSL RC smoke ───────────────────────────────────────────────

.PHONY: prepare-osl setup-orchestrator cleanup cleanup-full osl-regression

prepare-osl: ## Mirror pre-release OSL images (OSL_RELEASE=1.39.0.CR1)
ifndef OSL_RELEASE
$(error OSL_RELEASE is required, e.g. make prepare-osl OSL_RELEASE=1.39.0.CR1)
endif
./prepare-osl-internal.sh --release $(OSL_RELEASE)

setup-orchestrator: ## Full RHDH + orchestrator setup (VERSION, ORCH_NAMESPACE, OSL_RELEASE)
./setup-orchestrator.sh $(VERSION) --namespace $(ORCH_NAMESPACE) $(if $(filter-out ,$(OSL_RELEASE)),--prepare-internal-osl $(OSL_RELEASE))

cleanup: ## Clean RHDH/orchestrator/OSL resources and operators from ORCH_NAMESPACE
./cleanup.sh --namespace $(ORCH_NAMESPACE) --include-operators

cleanup-full: ## Full cleanup: operators + related namespaces
./cleanup.sh --namespace $(ORCH_NAMESPACE) --include-operators --delete-namespace

osl-regression: ## Cleanup + prepare OSL + deploy + 4-test smoke (VERSION, OSL_RELEASE; ORCH_NAMESPACE must be orchestrator)
ifndef OSL_RELEASE
$(error OSL_RELEASE is required, e.g. make osl-regression VERSION=next OSL_RELEASE=1.39.0.CR1)
endif
./run-osl-regression.sh --all --rhdh $(VERSION) --osl-release $(OSL_RELEASE) --namespace $(ORCH_NAMESPACE) \
$(if $(filter 1,$(ALLOW_RELATIVE_SERVICE_URL)),--allow-relative-service-url,)

# ── Status ────────────────────────────────────────────────────────────────────

.PHONY: status logs url
Expand Down
48 changes: 48 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,43 @@ make undeploy-infra
make clean
```

#### OSL RC smoke

Pin an OSL pre-release against a chosen RHDH version, deploy, and run the default four Playwright tests (skips `orchestrator.spec.ts` beforeAll so it does not reinstall operators):

1. `Run Greeting workflow and verify Workflows tab`
2. `Run Failswitch workflow and verify statuses`
3. `Rerun Failswitch from failure point`
4. `Execute token-propagation workflow via API`

Smoke always deploys greeting, failswitch, token-propagation, and `sample-server`, then runs token-propagation (JWT/OpenAPI into the workflow). `--test` requires `--namespace orchestrator` (the default): overlays Playwright uses the project name as the Kubernetes namespace for Data Index and Failswitch retrigger. `--cleanup` (and the cleanup phase of `--all`) always removes OSL/Serverless operators (`logic-operator` / `serverless-operator` only), the custom catalog, and the mirror namespace, and cleans the RHDH namespace contents. It does not delete a leftover `rhdh` namespace unless you pass `--delete-namespace` (`make cleanup-full`). Other operators in `openshift-operators` are left in place.

`make setup-orchestrator` (and the driver's `--deploy` phase) installs `osl-di-rewrite` in front of Data Index so OSL 1.39 relative `serviceUrl` values still work from RHDH. The GraphQL probe before Playwright still hits the **raw** Data Index (`sonataflow-platform-data-index-service`), not that proxy. OSL 1.39.CR1 can return a relative `ProcessDefinitions.serviceUrl` (SRVLOGIC-1137). The Orchestrator plugin then cannot `POST` to execute/abort/retrigger. The probe exits 2 on that unless you pass `--allow-relative-service-url` or `ALLOW_RELATIVE_SERVICE_URL=1`, which prints a warning and continues so the four tests can still run behind the rewrite proxy. Drop that override after the plugin derives `serviceUrl` from `endpoint`.

```bash
# One-shot: full cleanup (including operators) -> mirror OSL -> deploy -> smoke
make osl-regression VERSION=next OSL_RELEASE=1.39.0.CR1 ORCH_NAMESPACE=orchestrator
# 1.39.CR1 currently needs the relative-serviceUrl override:
ALLOW_RELATIVE_SERVICE_URL=1 make osl-regression VERSION=next OSL_RELEASE=1.39.0.CR1 ORCH_NAMESPACE=orchestrator

# Or call the driver directly
./run-osl-regression.sh --all --rhdh next --osl-release 1.39.0.CR1 --namespace orchestrator
./run-osl-regression.sh --cleanup --namespace orchestrator
./run-osl-regression.sh --cleanup --prepare-osl --deploy --rhdh next --osl-release 1.39.0.CR1
ALLOW_RELATIVE_SERVICE_URL=1 ./run-osl-regression.sh --test --namespace orchestrator
./run-osl-regression.sh --test --overlays-dir ../rhdh-plugin-export-overlays
```

Individual pieces:

```bash
make prepare-osl OSL_RELEASE=1.39.0.CR1
make setup-orchestrator VERSION=next ORCH_NAMESPACE=orchestrator OSL_RELEASE=1.39.0.CR1
make cleanup-full ORCH_NAMESPACE=orchestrator
```

Requires `oc` logged in, `helm`, `skopeo`, `podman`, and a sibling `rhdh-plugin-export-overlays` checkout for `--test`. Manifests live in `config/osl-releases/`.

#### Status and Debugging

```bash
Expand All @@ -200,6 +237,9 @@ All make commands accept these variables:
| `USE_CONTAINER` | `false` | Set to `true` to run commands inside the e2e-runner container |
| `CATALOG_INDEX_TAG` | auto | Catalog index image tag (defaults to major.minor from version, or `next`) |
| `RUNNER_IMAGE` | `quay.io/rhdh-community/rhdh-e2e-runner:main` | Container image for `install-operator` |
| `OSL_RELEASE` | _(empty)_ | OSL pre-release id for `prepare-osl` / `osl-regression` |
| `ORCH_NAMESPACE` | `orchestrator` | Namespace used by orchestrator/OSL setup and cleanup |
| `ALLOW_RELATIVE_SERVICE_URL` | _(unset)_ | Set to `1` to continue smoke after a relative Data Index `serviceUrl` |

> **Note:** `install-operator` requires you to be logged into the cluster via `oc login` on your host.
> It automatically passes the session token to the e2e-runner container (needs Linux tools like `umoci`, `opm`, `skopeo`).
Expand Down Expand Up @@ -373,6 +413,7 @@ rhdh-test-instance/
│ ├── app-config-rhdh.yaml # Main RHDH configuration (guest auth by default)
│ ├── dynamic-plugins.yaml # Base dynamic plugins configuration
│ ├── orchestrator-dynamic-plugins.yaml # Orchestrator plugins (merged when ORCH=true)
│ ├── osl-releases/ # Local OSL pre-release JSON (gitignored except example)
│ ├── rbac-policies.yaml # RBAC policy ConfigMap
│ └── rhdh-secrets.yaml # Reference template for rhdh-secrets Secret
├── helm/
Expand All @@ -399,7 +440,14 @@ rhdh-test-instance/
│ └── plugins/
│ ├── config-keycloak-plugin.sh # Keycloak deploy, realm/client/user setup
│ └── config-lighthouse-plugin.sh # Lighthouse deploy and URL injection
├── utils/
│ ├── keycloak/ # Shared Keycloak deploy used by setup-orchestrator
│ └── orchestrator/ # Data Index rewrite proxy and existing-RHDH checks
├── cleanup.sh # Orchestrator/OSL teardown (operators optional)
├── deploy.sh # Main deploy entry point
├── prepare-osl-internal.sh # Mirror pre-release OSL into the internal registry
├── run-osl-regression.sh # OSL RC smoke driver (cleanup → prepare → deploy → test)
├── setup-orchestrator.sh # RHDH + orchestrator + Keycloak + rewrite proxy
├── teardown.sh # Main teardown entry point
├── Makefile # Make targets
├── OWNERS # Project maintainers
Expand Down
Loading