You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf(scripts): speed up RHDH operator install using install-rhdh-catalog-source.sh (~30 min → ~2 min) (#2870)
* perf(scripts): parallelize IIB bundle processing (~27 min → ~5 min)
- Skips slow `skopeo inspect` (~42s/bundle) — attempts the copy directly
instead; failed copies (~3s) are faster than successful inspects
- Processes bundles in parallel up to MAX_PARALLEL (default 10), with a
portable kill-0 throttle loop that prunes finished PIDs each iteration
- Collects per-worker sed files and applies them in one pass after all
bundles complete, avoiding concurrent writes to render.yaml
- Runs `opm render` and cluster registry setup in parallel since they
are independent; waits before the bundle-processing phase begins
- Replaces check-then-delete secret pattern with --ignore-not-found
- Deletes existing CatalogSource before recreating to force OLM re-index
when the tag is unchanged but the digest has changed (rebuilt IIB)
- Fails loudly if any bundle fails to process (was: silent error log)
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
* fix(scripts): add set -euo pipefail to process_bundle and preserve skopeo stderr
Background subshells don't inherit set -e from the parent, so
intermediate failures (umoci, skopeo push) went undetected and the
worker would write a .sed entry for a broken bundle. Also redirect
speculative copy stderr to a per-bundle file instead of /dev/null
so auth failures, timeouts, and disk errors are debuggable.
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
* chore(scripts): clean up comments to focus on WHY, not WHAT
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
* chore(scripts): clarify MAX_PARALLEL comment
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
* fix(scripts): validate MAX_PARALLEL and fix zombie processes on exit
- Validate MAX_PARALLEL is a positive integer, exit with clear error
otherwise (prevents infinite hang with 0 or crash with non-numeric)
- Consolidate 3 separate trap EXIT calls into one — they were
overwriting each other, so only the last one ran (pre-existing bug
causing kubectl port-forward zombies and TMPDIR not being cleaned)
- Remove unused kanikoLogsPid variable
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
* fix(scripts): replace kill 0 with jobs -p to avoid killing parent process group
kill 0 sends SIGTERM to the entire process group including the parent
shell/CI harness, causing segfaults on normal exit. Use jobs -p to
target only this script's background jobs. Split INT/TERM from EXIT
to avoid re-entrant cleanup.
Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
---------
Co-authored-by: Claude Code <noreply@anthropic.com>
0 commit comments