Skip to content

enable pagerduty - #4

Closed
alizard0 wants to merge 1 commit into
mainfrom
test-4
Closed

enable pagerduty#4
alizard0 wants to merge 1 commit into
mainfrom
test-4

Conversation

@alizard0

Copy link
Copy Markdown
Owner

Description

Please explain the changes you made here.

Which issue(s) does this PR fix

  • Fixes #?

PR acceptance criteria

Please make sure that the following steps are complete:

  • GitHub Actions are completed and successful
  • Unit Tests are updated and passing
  • E2E Tests are updated and passing
  • Documentation is updated if necessary (requirement for new features)
  • Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

@github-actions

github-actions Bot commented Nov 19, 2025

Copy link
Copy Markdown

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

No release type found in pull request title "enable pagerduty". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat
 - fix
 - chore
 - docs
 - style
 - refactor
 - perf
 - test
 - revert

@alizard0

Copy link
Copy Markdown
Owner Author

Beginner-Friendly PR

This pull request has been automatically labeled as beginner-friendly based on its characteristics.

Summary

This PR enables the PagerDuty plugin by uncommenting the eventsBaseUrl in the app-config.yaml file.

Project Context

This project, formerly known as janus-idp/backstage-showcase, is built using TypeScript and licensed under Apache License 2.0. It appears to be related to the Backstage platform, and this change configures the PagerDuty plugin, likely to enable event integration.

Technical Details

The change modifies app-config.yaml, which is a central configuration file. The PagerDuty plugin uses the eventsBaseUrl to send events to PagerDuty.

Code Changes Analysis

The change consists of uncommenting the line:

+  eventsBaseUrl: <PagerDuty Event URL>

This enables the PagerDuty plugin to send events to the specified URL.

Potential Issues to Watch For

  • Ensure the <PagerDuty Event URL> is properly configured with a valid URL.
  • Verify that the PagerDuty plugin is correctly installed and configured in the Backstage application.
  • Check that the application has the necessary permissions to send events to the PagerDuty API.

No obvious issues detected, but proper configuration and permissions are essential for the plugin to function correctly.

Why This is Beginner-Friendly

  • Change size: 2 additions, 2 deletions
  • Number of files: 1
  • Single commit

Review Checklist

  • Verify the eventsBaseUrl is correctly configured.
  • Ensure the PagerDuty plugin is installed and configured in Backstage.
  • Check application permissions to send events to PagerDuty.

Related Work

No directly related PRs or issues found.

Additional Resources


This label was added automatically. Maintainers can remove it if they disagree.

@github-actions

Copy link
Copy Markdown

This PR is stale because it has been open 7 days with no activity. Remove stale label or comment or this will be closed in 21 days.

@github-actions github-actions Bot added the Stale label Nov 27, 2025
@github-actions github-actions Bot closed this Dec 18, 2025
alizard0 pushed a commit that referenced this pull request Apr 28, 2026
…hat-developer#4680)

* feat(e2e-coverage): scaffold Playwright page.coverage collection (RHIDP-13243)

Scaffolding for E2E frontend coverage on the rhdh repo (part of
RHDHPLAN-851, Epic RHIDP-13242). Opt-in via COLLECT_COVERAGE=true;
default behavior unchanged so existing E2E runs are unaffected.

Infrastructure only
- Extended test fixture at e2e-tests/playwright/support/coverage/test.ts
  that wraps page.coverage.startJSCoverage / stopJSCoverage around each
  test when COLLECT_COVERAGE=true.
- Playwright reporter at e2e-tests/playwright/support/coverage/reporter.ts
  that aggregates raw V8 output into a merged Istanbul LCOV + HTML report
  via monocart-coverage-reports.
- Reporter registered conditionally in playwright.config.ts so it is a
  no-op unless COLLECT_COVERAGE=true.
- monocart-coverage-reports@2.12.11 added to e2e-tests devDependencies.
- Docs at docs/coverage/e2e-rhdh.md covering usage, migration pattern,
  env vars, known limitations.
- .gitignore tweaks so source code under paths containing "coverage"
  (docs/coverage, e2e-tests/playwright/support/coverage) is tracked while
  the generated "coverage/" output dirs remain ignored.

No specs are migrated in this PR. Specs opt in via:
  import { test, expect } from "../support/coverage/test";

Follow-ups (separate PRs)
- Migrate one spec (e.g. smoke-test) to validate the pipeline end-to-end.
- Wire CI step to upload lcov.info to Codecov with flag rhdh-e2e-frontend.
- Evaluate instrumented showcase image variant (RHIDP-13244 spike).

Refs
- https://issues.redhat.com/browse/RHIDP-13243
- https://issues.redhat.com/browse/RHIDP-13242
- https://issues.redhat.com/browse/RHDHPLAN-851

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(e2e-coverage): update yarn.lock for monocart-coverage-reports

Previous commit added monocart-coverage-reports@2.12.11 to
e2e-tests/package.json but did not update e2e-tests/yarn.lock. Yarn's
hardened mode on public PRs forbids lockfile modifications during
install, which blocks the CI lint/prettier/shellcheck step.

Regenerated the lockfile locally with `yarn install`. Only new entries
for monocart-coverage-reports and its transitive deps.

Refs
- redhat-developer#4680
- https://issues.redhat.com/browse/RHIDP-13243

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(e2e-coverage): satisfy ESLint naming and no-unused-vars rules

CI lint step rejected the new files under e2e-tests/playwright/support/coverage/
because of the project eslint-config naming rules. Fixes:

- Rename top-level `const` variables to camelCase
  (COVERAGE_RAW_DIR/COVERAGE_REPORT_DIR/COVERAGE_OUTPUT_DIR → camelCase)
- Drop unused `_config` and `_result` parameters on Reporter.onBegin /
  onEnd (the Reporter interface allows narrower implementations).
- Replace destructuring `const { CoverageReport } = await import(...)`
  with `const monocart = await import(...)` + `new monocart.CoverageReport(...)`
  so the PascalCase class name does not trip the variable naming rule.
- Keep the Playwright-idiomatic `export const test` and `export const expect`
  names, guarded by `eslint-disable-next-line @typescript-eslint/naming-convention`
  with a comment explaining the rationale (renaming would force every
  consumer to alias on import, degrading the DX).

Verified locally:
- `npx eslint playwright/support/coverage/test.ts playwright/support/coverage/reporter.ts` clean
- `yarn prettier:check playwright/support/coverage/` clean
- `yarn tsc:check` clean

Refs
- redhat-developer#4680
- https://issues.redhat.com/browse/RHIDP-13243

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* refactor(e2e-coverage): address review feedback on scaffolding

Harden the Playwright coverage scaffolding based on review notes so the
first COLLECT_COVERAGE=true runs do not surface papercuts in CI.

Correctness
- Filename collision under parallel workers: raw V8 coverage files now
  include workerIndex and retry in the filename, and the title is taken
  from testInfo.titlePath (describe chain included) rather than just
  title. Two specs with identical titles in different describe blocks
  no longer collide.
- Silent error swallow in reporter.readdir: the catch now only swallows
  ENOENT (directory missing on first run). Any other I/O error rethrows
  so CI logs show the real cause instead of the misleading
  "no coverage collected" warning.
- JSON shape guard: entries loaded from raw files are verified to be
  arrays before handing to monocart. Corrupted or unexpected files are
  skipped with a clear warning instead of failing deep inside the
  library.

Structure
- Extracted the env-var-to-path resolution into a shared paths.ts, so
  the fixture and reporter can never drift on COVERAGE_OUTPUT_DIR /
  COVERAGE_REPORT_DIR. Exports follow the project UPPER_CASE convention
  for exported const.

Hardening
- Timeout wrapper (default 2 min, COVERAGE_GENERATE_TIMEOUT_MS override)
  around monocart.CoverageReport.generate(). A hung aggregation can no
  longer hold the Playwright run open in CI.
- Parallel file reads via Promise.all. Scales better as the full 64-spec
  suite starts emitting coverage.

Readability
- playwright.config.ts uses `satisfies ReporterDescription[]` instead of
  the earlier `as [string]` cast — removes the type gymnastics while
  keeping the conditional registration.
- Inline comments on startJSCoverage options explain the rationale for
  resetOnNavigation: false and reportAnonymousScripts: false.
- Reworded the dynamic-import comment to match what it actually does
  (defers monocart load until generation time; the dep is installed
  regardless because it's in devDependencies).

Docs
- docs/coverage/e2e-rhdh.md updated with:
  - new env var COVERAGE_GENERATE_TIMEOUT_MS
  - note on the new filename scheme (workerIndex + retry) so the
    parallel collision question is explicit
  - import path examples for specs at depths 2, 3, and 4 (there is no
    tsconfig path alias configured)

Local validation
- npx eslint playwright/support/coverage/*.ts playwright.config.ts: clean
- yarn tsc: clean
- yarn prettier:check (coverage files + playwright.config.ts + docs): clean

Refs
- redhat-developer#4680
- https://issues.redhat.com/browse/RHIDP-13243

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(e2e-coverage): address qodo review findings (bugs 2, 5, 7)

Addresses actionable findings from the Qodo automated review. Three of
the seven flagged items are real bugs that are fixed here; the other
four are either false positives or scope decisions covered in the PR
reply.

Fixed
- Stale raw files across runs (qodo #2). The reporter's onBegin now
  does `fs.rm COVERAGE_RAW_DIR` followed by `mkdir`, so the merged
  report only reflects the current Playwright run. Without this the
  raw dir accumulated *.json across runs and produced an incorrect
  LCOV.
- Coverage teardown could fail tests (qodo #5). Both startJSCoverage
  and the file-write teardown are now wrapped in try/catch with a
  console.warn. Coverage collection is best-effort and can never fail
  a test run, including scenarios like unsupported browsers, pages
  closed before teardown, or transient I/O errors.
- Custom-context specs silently skipped (qodo #7). Exported two
  helpers — startCoverageForPage(page) and stopCoverageForPage(page,
  testInfo) — so specs that manage their own BrowserContext/Page via
  browser.newContext() (e.g. plugins/adoption-insights, plugins/
  scorecard) can opt in explicitly. Helpers are no-ops when
  COLLECT_COVERAGE is unset and share the same error-safe wrappers as
  the auto fixture.

Not changed (with reason)
- Fixture typing (qodo #1) — false positive. Reproduced locally: a
  migrated spec destructuring `{ page }` from the extended test
  compiles clean under `yarn tsc`. Kept `<NonNullable<unknown>>`.
- Global fixture for every spec (qodo #3) — intentional scope. A
  per-spec import migration is phased so each batch lands in its own
  reviewable PR. Playwright does not offer a mechanism to override the
  test import globally without editing every spec file.
- Codecov upload step (qodo #4) — intentional scope, depends on
  RHIDP-13230 (Codecov GitHub App + Vault token) landing first. The
  upload step is tracked for the follow-up CI wiring PR.
- Source-map validation (qodo #6) — validation requires a running
  RHDH instance against which to run the instrumented suite. Planned
  as part of the first real COLLECT_COVERAGE=true run rather than a
  scaffolding PR.

Docs updated
- docs/coverage/e2e-rhdh.md now documents the custom-context pattern
  with a full example using startCoverageForPage / stopCoverageForPage,
  plus a "Specs that have not migrated" note making the phased
  migration explicit.

Local validation
- npx eslint playwright/support/coverage/*.ts: clean
- yarn tsc: clean
- yarn prettier:check (coverage + docs): clean

Refs
- redhat-developer#4680
- https://issues.redhat.com/browse/RHIDP-13243

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(e2e-coverage): address PR review feedback on gitignore patterns

Replace broad **/coverage ignore with scoped rules per zdrapela's review:
- Root .gitignore: target dynamic-plugins/packages/plugins coverage dirs
- e2e-tests/.gitignore: use /coverage/ instead of exclusion patterns
- Add coverage to e2e-tests/.prettierignore and eslint ignores

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(e2e-coverage): add AI assistant rule for instrumented imports

Adds a rulesync rule that instructs AI assistants (Cursor, Claude Code,
OpenCode) to use the coverage-instrumented test/expect imports instead
of @playwright/test when creating or modifying spec files.

Suggested-by: zdrapela

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(e2e-coverage): add @support path alias for coverage imports

Add a TypeScript path alias @support/* → playwright/support/* in
e2e-tests/tsconfig.json so specs can use a clean, depth-independent
import instead of fragile relative paths.

Update docs, code comments, and AI assistant rules accordingly.

Suggested-by: zdrapela

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
alizard0 pushed a commit that referenced this pull request Sep 2, 2026
…at-developer#5268)

* feat(ci): add disconnected OCP smoke test for Helm and Operator

Add end-to-end disconnected CI pipeline handlers that deploy RHDH in
an isolated OCP cluster and run a Playwright smoke test (guest login,
homepage).

Modular library under lib/disconnected/:
  env.sh       - environment validation, container auth, script fetch
  mirror.sh    - oc-mirror image mirroring, IDMS/ITMS patching, MCP waits
  plugins.sh   - plugin mirroring, catalog index, homepage plugin helpers
  namespace.sh - namespace-level secrets and CA trust
  operator.sh  - OLM v1 operator install helpers and diagnostics
  helm.sh      - Helm-specific post-deploy recovery
  local.sh     - LOCAL_DISCONNECTED overrides (hook/override pattern)

Facade lib/disconnected.sh sources modules and conditionally loads
local.sh when LOCAL_DISCONNECTED=1.

Helm path: oc-mirror v2 for chart + image mirroring, post-renderer
for disconnected volume mounts (avoids Helm array clobber).

Operator path: prepare-restricted-environment.sh from rhdh-operator
for operator/operand mirroring and OLM v1 installation.

Both paths share: auth setup, plugin mirroring via mirror-plugins.sh,
registries.conf, mirror CA, and minimal smoke values/CR.

Jira: https://redhat.atlassian.net/browse/RHIDP-13974

Assisted-by: OpenCode

* feat(local-run): support disconnected OCP Helm and Operator smokes

Add disconnected local mode to local-run.sh:
- Detect *disconnected* job names and set DISCONNECTED=true,
  LOCAL_DISCONNECTED=1
- Validate oc login and OpenShift API before proceeding
- Pass DISCONNECTED/LOCAL_DISCONNECTED env vars to the e2e-runner
  container
- Add interactive menu options 9 (Operator) and 10 (Helm) for
  disconnected nightlies

container-init.sh: export DISCONNECTED/LOCAL_DISCONNECTED, add vault
secret fetch error handling.

Playwright: parse HTTPS_PROXY for disconnected proxy environments in
both browser contexts (playwright.config.ts) and global-setup API
requests (global-setup.ts) via new utils/proxy.ts helper.

Assisted-by: OpenCode

* docs: add disconnected smoke examples to README and deploy skill

Update e2e-deploy-rhdh SKILL.md (all 4 rulesync copies) to document
the disconnected OCP Helm and Operator local-run paths.

Add disconnected smoke examples and LOCAL_DISCONNECTED documentation
to e2e-tests/README.md.

Assisted-by: OpenCode

* fix(ci): address Qodo review findings in disconnected pipeline

- namespace.sh: preserve all dockerconfigjson top-level fields when
  merging mirror registry credentials into openshift-config/pull-secret,
  and make the .auths merge null-safe (previously dropped fields like
  HttpHeaders/credHelpers and could error on a missing .auths object).
- plugins.sh: resolve_homepage_plugin_package now accepts both the
  Unicode "→" and ASCII "->" summary separators, matching the parsing
  already used in local.sh's ImageStream tagging loop.
- mirror.sh: wait_mcp_updated only logs success when the oc wait
  actually succeeds, instead of always logging success after a warned
  timeout.
- helm-post-renderer.sh: select the install-dynamic-plugins init
  container by name instead of positional index [0], so a future chart
  reorder can't misdirect the mount injection. Also documents that
  mikefarah/yq's `==` treats "*" as a glob wildcard (confirmed the
  "*-developer-hub" selector correctly matches the chart's computed
  fullname; this is not the bug it may appear to be).

Assisted-by: OpenCode

* fix(ci): make Helm disconnected hub recovery EBS-safe

The hub recovery in ensure_helm_hub_after_postgres deleted the hub pod
after a 30s grace. On AWS the pod delete coincided with the PostgreSQL
StatefulSet pod being rescheduled, triggering a ~5 min EBS CSI volume
detach/re-attach (FailedAttachVolume) that cascaded into a smoke-test
healthcheck timeout.

Replace the destructive oc delete pod with a rolling oc rollout restart
deployment, which only touches the hub Deployment and never disturbs the
PostgreSQL StatefulSet. Raise the pre-restart grace 30s->180s so the hub
usually goes Available on its own (making the restart a no-op), and the
rollout timeout 300s->420s to absorb slow disconnected image pulls.

Assisted-by: OpenCode

* refactor(ci): derive disconnected homepage plugin from catalog index

resolve_homepage_plugin_package grepped the mirroring summary and tried
two hardcoded candidate names (dynamic-home-page, homepage) to cope with
the RHIDP-14515 frontend rename, plus ->/-> separator handling.

Read the homepage frontend package straight from the plugin catalog
index that CATALOG_INDEX_IMAGE already pins instead. This works
unmodified whether the index is pinned (e.g. :1.10, which pins
dynamic-home-page) or tracks :next (which pins homepage), and survives
any future rename: the package name, digest and frontend id are all
taken from whichever homepage frontend the index actually references.

Add a shared _catalog_index_source_ref helper (used by mirror_plugins,
the local digest-list build, and homepage resolution) and resolve
homepage before resolve_catalog_index_image, which rewrites
CATALOG_INDEX_IMAGE into its mirror-consumption form.

Assisted-by: OpenCode

* refactor(ci): extract Helm post-renderer patch to YAML template

Move the volumes/volumeMounts injected by the disconnected Helm
post-renderer into helm-post-renderer-patch.yaml, rendered with envsubst
for ${MIRROR_REGISTRY_URL} and merged into the rendered Deployment with
yq. The patch is now readable/reviewable as plain YAML instead of an
inline yq expression.

yq is still used for the merge (a structured array-append into the
install-dynamic-plugins initContainer by name), preserving the chart's
default volumes and avoiding the Helm array-clobber pitfall. Behavior is
unchanged; verified the rendered output matches the previous inline
version for single- and multi-document manifest streams.

Assisted-by: OpenCode

* fix(ci): pre-create integrated-registry projects for local disconnected mirror

The integrated OCP registry does not auto-create projects on push. On a
fresh cluster, skopeo/oc-mirror manifest writes to a missing namespace
upload blobs but fail the manifest write with "denied", breaking the
local disconnected smoke at the ImageStream-tagging stage.

Pre-create the known push-target projects in setup_local_ocp_mirror and
lazily create any data-driven namespace (derived from plugin source
paths, e.g. rhdh-plugin-export-overlays) inside the ImageStream-tag loop.
Grant image-puller across the same shared project list so the workload
can pull mirrored plugins cross-namespace.

Scoped entirely to the LOCAL_DISCONNECTED path; no effect on Prow CI.

Assisted-by: OpenCode

* refactor(ci): move disconnected app-config into resources/disconnected

The app-config-rhdh-disconnected-smoke.yaml ConfigMap is disconnected-only
and belongs alongside the other disconnected resources rather than in the
shared config_map directory.

Assisted-by: OpenCode

* refactor(ci): extract local disconnected skopeo shim to template

Move the aarch64 skopeo shim heredoc out of local.sh into
resources/disconnected/skopeo-amd64-shim.sh.tpl and render it with
envsubst, substituting only ${REAL_SKOPEO} so the shim's own runtime
$#/$1/$@/${cmd} expansions are preserved. Keeps the generated script
out of the shell library and easier to read/lint.

Assisted-by: OpenCode

* fix(ci): default disconnected Postgres image to quay.io/fedora/postgresql-15

The community Helm chart's default PostgreSQL image
(registry.redhat.io/rhel9/postgresql-15) is not pullable without a Red Hat
pull secret. Align the disconnected fallback with the showcase value files
(quay.io/fedora/postgresql-15) and hoist it into a shared
POSTGRESQL_IMAGE_{REGISTRY,REPO,TAG} constant in env_variables.sh.

Also coalesce yq's literal "null" (missing key) to empty so the default
fallback is actually applied.

Assisted-by: OpenCode

* refactor(ci): align CI and local disconnected on CATALOG_INDEX_IMAGE

redhat-developer#5263 made CATALOG_INDEX_IMAGE always set (via CATALOG_INDEX_IMAGE_OVERRIDE
falling back to :RELEASE_VERSION), so the chart-value catalog-index pinning is
now redundant dead code and a second source of truth.

Delete it and consume the shared env contract everywhere:
- Remove the CI_* chart-derived catalog block in ocp-disconnected-helm.sh; the
  index is mirrored from CATALOG_INDEX_IMAGE and re-pinned to the mirrored
  digest by resolve_catalog_index_image.
- mirror.sh additionalImages now mirrors CATALOG_INDEX_IMAGE directly so CI and
  LOCAL_DISCONNECTED mirror and consume the same index.
- Delete disconnected::pin_local_catalog_index_from_chart (local.sh), its
  CI-safe stub (plugins.sh), its export -f (disconnected.sh) and its call in
  ocp-disconnected-operator.sh.

This also removes the duplicated @sha256 digest-separator normalization the
catalog blocks carried (self-review #4/#5/#6); the remaining PG separator block
is a single inline caller and stays as-is.

Assisted-by: OpenCode

* refactor(ci): make helm::get_image_params reusable for disconnected

The disconnected Helm job duplicated the image --set flag construction with
three divergences from helm::get_image_params: backstage registry points at the
in-cluster mirror host, the catalog index registry points at MIRROR_REGISTRY_URL,
and LOCAL_DISCONNECTED omits the hub image (chart + IDMS resolve it).

Parameterize the shared helper with optional --backstage-registry,
--catalog-registry and --omit-backstage-image; all default to the existing
connected-install behavior so aks/eks/gke callers are unchanged. The disconnected
job now builds its image flags through the helper instead of a bespoke block.

Assisted-by: OpenCode

* refactor(ci): move operator-repo script fetch out of env.sh

env.sh mixed environment/auth concerns with fetching helper scripts from the
rhdh-operator repo. Move that helper into a dedicated lib/disconnected/scripts.sh
and rename it disconnected::fetch_operator_repo_script to say what it fetches.

Source the new module in disconnected.sh, update the export -f, and update the
three call sites (plugins.sh, local.sh, ocp-disconnected-operator.sh). No
behavior change.

Assisted-by: OpenCode

* refactor(ci): split disconnected local.sh into cohesive modules

local.sh had grown to ~700 lines mixing five distinct concerns. Split it into
lib/disconnected/local/ modules behind a thin facade that preserves the
sourced-once guard and the LOCAL_DISCONNECTED-only source contract:

  hooks.sh        cluster_mirror_host + _hook_* overrides for mirror.sh/plugins.sh
  registry.sh     integrated-registry bring-up, retry-on-503, MIRROR_* bootstrap,
                  amd64 skopeo shim
  access.sh       mirror push-target projects, workload + OLM pull access
  mirror-host.sh  IDMS/ITMS push-route -> in-cluster registry service rewrite
  plugins.sh      full mirror_plugins override + digest list + imagestream tags

Pure code movement: the set of defined functions and the
DISCONNECTED_LOCAL_MIRROR_PROJECTS array are byte-identical to the original, and
all 21 functions load through the facade. No behavior change.

Assisted-by: OpenCode

* refactor(ci): simplify operator-repo script fetch to RELEASE_BRANCH_NAME

fetch_operator_repo_script had sha/pull-request/branch ref detection and an
optional $3 ref override, but no call site ever passed $3 and CI always sets
RELEASE_BRANCH_NAME from JOB_SPEC (defaulting to main locally). Drop the dead
branching and always fetch from refs/heads/${RELEASE_BRANCH_NAME}, matching the
existing convention in install-methods/operator.sh.

Assisted-by: OpenCode

* fix(ci): remove DISCONNECTED_TMPDIR in cleanup trap on EXIT

Local disconnected runs leave pull secrets and CA files in mktemp dirs;
extend the existing openshift-ci-tests.sh cleanup trap to rm -rf
DISCONNECTED_TMPDIR when set.

* fix(ci): share disconnected policy.json from a single file

Operator requires a separate rhdh-plugin-mirror-policy ConfigMap for
extraFiles volume keys; Helm and Operator now both mount the same
resources/disconnected/policy.json instead of duplicating inline JSON.

* refactor(ci): share Helm digest-vs-tag image ref separator helper

Disconnected Helm was splitting chart repository@sha256 fields inline.
Move that into common::normalize_chart_image_ref so digest vs tag
handling is not duplicated if other jobs need the same chart encoding.

* fix(ci): drop RETURN trap and gzip-only tar in homepage catalog inspect

A sourced RETURN trap clobbers later cleanup in the job shell, and
tar -xzf fails on uncompressed OCI layers. Extract with tar -xf and
remove the temp dir on an explicit return path instead.

* refactor(ci): use static ref:// homepage plugins YAML for disconnected smoke

ref:// is resolved through the mirrored catalog index, so constructing
oci:// package refs (and the CI vs local hook) is unnecessary.

* fix(ci): mirror only the homepage plugin in disconnected smoke

--plugin-index enumerated every catalog plugin, including unpublished
:tag refs that fail to pull. Smoke only needs homepage plus the catalog
index so ref:// still resolves.

* fix(ci): use digest-pinned OCI homepage package in disconnected smoke

ref:// cannot resolve with includes: []; envsubst the catalog digest so
install-dynamic-plugins does not CrashLoop. Tighten the homepage filter
and override skopeo os/arch on catalog extract.

* fix(ci): tag catalog index ImageStream and retry plugin tags locally

Integrated registry only serves ImageStreams by tag, so local disconnected
needs :sha256-<digest> for the catalog index. Retry skopeo copies on
registry Recreate EOF.

* fix(ci): pin disconnected operator catalog to chart major.minor

Smoke only needs the current stream; mirroring * on next pulled 43 historical images and aborted on quay CDN EOF.

* chore(ci): retrigger PR Build Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant