feat: Generic Konflux integration for ABEvalFlow evaluation pipeline - #60
feat: Generic Konflux integration for ABEvalFlow evaluation pipeline#60ikrispin wants to merge 3 commits into
Conversation
Add IntegrationTestScenario support so Konflux applications can run ABEvalFlow A/B evaluations as part of their CI pipeline. Includes: - 9 Tekton tasks adapted for Konflux (parse-snapshot, deploy-agent, prepare, test, evaluate, analyze-scorecard, store, emit-result, cleanup-agent) - PipelineRun definition chaining all tasks with cross-cluster agent deployment on a workload cluster - Makefile and GitHub Actions workflow for publishing Tekton Bundles - Secrets template for workload cluster credentials and LLM config - Google Lightspeed Agent submission as initial POC
Refactor the Konflux integration from a Lightspeed-specific pipeline into a generic evaluation framework that any Konflux application can consume. Changes: - Remove deploy-agent and cleanup-agent tasks from core (moved to the example repo github.com/ikrispin/abevalflow-konflux-example) - Refactor evaluate.yaml to support local/remote eval modes and all engines (a2a, mcpchecker, harbor, ase) with parameterized secrets - Rewrite PipelineRun as a generic 7-stage reference pipeline with standardized parameters (EVAL_ENGINE, AGENT_ENDPOINT, MCP_URL, EVAL_MODE, etc.) - Move Lightspeed submission and IntegrationTestScenario to the separate example repo - Add Konflux integration guide documentation - Update Makefile to publish 7 core task bundles (was 9) - Update secrets template with mode-conditional documentation Tested: Full successful pipeline run on Konflux with the Lightspeed agent example repo (PipelineRun lightspeed-abevalflow-eval-qhx2p, 9/9 tasks succeeded).
d875eae to
fd2f807
Compare
GuyZivRH
left a comment
There was a problem hiding this comment.
Consolidated PR Review: #60 — Generic Konflux integration
PR: #60
Author: ikrispin
Branch: ikrispin:konflux-generic → main
HEAD: fd2f8072
Size: +2,848 / −0 · 12 files · 2 commits
CI: PASS
Follow-on: #65 (red-team) stacks on this
Consolidated from: htwpl_, nyjsj_, qmxpt_, vbnkp_, xkqpd_ (2026-08-04)
Verdict
Request changes on correctness items; architecture is ready to land afterward.
Reviewer stances ranged from Approve → Approve-with-fixes → Request-changes. Consensus on product direction is strongly positive: reusable Konflux ITS via 7 bundle-published tasks, consumer-owned deploy/cleanup, local/remote eval, optional secrets, and TEST_OUTPUT gating are the right design, and the Lightspeed E2E on stone-prod-p02 is convincing.
Do not merge until at least: (1) remote mode uses the prepared/submission repo correctly, (2) Failed remote pods fail the Tekton task, (3) org git/Quay defaults are aligned (or explicitly documented as republish-required). Treat fail-open engine paths, LLM secret wiring, and digest pinning as merge-bar or immediate follow-up depending on how hard you want the first gate.
What this PR is
| Deliverable | Purpose |
|---|---|
7 tasks under pipeline/tasks/konflux/ |
parse-snapshot → prepare → test → evaluate → analyze-scorecard → store → emit-result |
konflux-eval-pipelinerun.yaml |
Reference PipelineRun + param contract |
Makefile + push-bundles.yaml |
Publish Tekton Bundles to Quay |
Docs/konflux-integration-guide.md |
Consumer guide |
config/konflux/secrets-template.yaml |
workload / llm / compass templates |
Two-cluster model: Konflux orchestrates; optional workload cluster runs agent + eval Pod (EVAL_MODE=local|remote). ABEvalFlow does not deploy the app under test.
What looks good (consensus)
- Ownership split — core tasks never deploy; consumers wrap deploy/cleanup (example repo). Matches Konflux ITS patterns.
- Local vs remote — solves pipeline-cluster reachability to in-cluster Services via workload SA token.
- Dual-publish documented — PipelineRun from git, task logic from Quay bundles; Makefile/
digestssupport ops. - Graceful optional deps — MinIO / DB / Compass absent → no-op, not hard fail.
emit-result→TEST_OUTPUT— scorecardpass/warn/fail→ KonfluxSUCCESS/WARNING/FAILURE.- Parameterized secret names — e.g.
WORKLOAD_CREDENTIALS_SECRET, not hardcoded. - E2E validation — Lightspeed run cited (9/9 with consumer deploy/cleanup).
- CI green — ruff/pytest pass (does not exercise Tekton tasks themselves).
- Limitations acknowledged — TLS skip, log transfer, mutable tags, personal Quay called out in PR/docs.
Complementary to main OpenShift ci-pipeline (PR comments / in-repo tasks), not a replacement.
Must fix (blocking)
1. Remote mode ignores prepared submission workspace
prepare clones SUBMISSION_REPO_URL into the shared workspace. Remote evaluate clones only PIPELINE_REPO_URL and uses:
SUBMISSION_PATH="/tmp/abevalflow/submissions/$SUBMISSION_DIR"Works when the submission lives inside ABEvalFlow (likely Lightspeed POC). Breaks the documented generic case SUBMISSION_REPO_URL ≠ PIPELINE_REPO_URL.
Fix: Clone submission repo in the Pod, or mount/copy workspace submission (PVC / oc cp / tar ConfigMap). Document as hard limitation until fixed is the minimum acceptable interim.
2. Remote Failed pods still exit 0
On PHASE=Failed, script logs and breaks the wait loop, then still scrapes logs and exit 0. A crashed eval Pod can look like a successful Tekton evaluate step.
Fix: After wait loop, if phase ≠ Succeeded, exit 1 (after log capture).
3. Personal Quay + inconsistent git defaults
- Bundles / eval-base:
quay.io/rh-ee-ikrispin/...(:0.1,:latest) - Several task defaults:
https://github.com/ikrispin/ABEvalFlow.git(prepare, test, store, analyze); evaluate already uses org URL - PipelineRun params often override correctly to org — standalone task / omitted param usage does not
Fix before broad adoption: org Quay (ecosystem-appeng or agreed) + all task defaults → RHEcosystemAppEng/ABEvalFlow. Digest-pin reference PipelineRun for production. Acceptable as immediate follow-up only if merge commit documents “republish required.”
4. Evaluate fail-open masks engine failures
| Path | Behavior |
|---|---|
mcpchecker … || true |
Non-zero ignored |
harbor run … || true / unused HARBOR_EXIT |
Continues |
agent-skills-eval … || true |
Iteration failures ignored |
analyze.py … || echo WARNING |
Continues without report |
| Remote log scrape miss | Soft WARNING |
For a Konflux release gate this is dangerous.
Fix: Fail the step when the primary engine command fails, and/or fail if report.json is missing after a non-skipped run.
Should fix
| # | Issue | Ask |
|---|---|---|
| 5 | LLM key: secrets template has llm-credentials, but reference PipelineRun does not mount it; evaluate defaults sk-dummy |
Optional SecretKeyRef like other secrets; pass through PipelineRun |
| 6 | parse-snapshot defaults to .components[0] |
Require component-name or document multi-component footgun; surface component-image for consumer deploy |
| 7 | Snapshot component-image unused in reference pipeline |
Document consumer must wire image → deploy; optionally expose as Pipeline result |
| 8 | Local evaluate on ose-cli:latest + runtime pip/npm/microdnf |
Prefer eval-base-image for local too; pre-bake deps |
| 9 | Harbor Konflux path degraded (no scaffold/build; environment.type: local / harbor-bench) |
Document ≠ main Harbor A/B pipeline; pin Harbor package source |
| 10 | Engine × mode matrix oversold | A2A validated; ASE remote missing; Harbor stub; MCPChecker fail-open — document and fail fast on unsupported pairs |
| 11 | No AEH in Konflux evaluate | OK for v1 if documented / roadmap |
| 12 | --insecure-skip-tls-verify on remote oc login |
CA Secret + --certificate-authority |
| 13 | Log-marker report.json transfer |
ConfigMap / oc cp / PVC follow-up (P1 robustness) |
| 14 | Reference PipelineRun disables security + quality | Comment or provide stricter “marketplace” example |
| 15 | Mutable :0.1 / :latest |
Digest-pinned reference variant; use Makefile digests |
| 16 | Task duplication vs pipeline/tasks/phases/ |
Long-term share/generate to avoid drift (AEH, MLflow, #65) |
| 17 | No tests for Konflux-specific logic | Snapshot jq helpers, emit-result JSON, remote extract |
| 18 | Hard-coded LiteLLM / OpenShift console defaults in tasks | Empty or parameterized |
| 19 | MCPChecker skips test / limited scorecard path | Call out prominently in guide |
| 20 | Merge order with #65 | Merge #60 first, then rebase thin #65 |
Minor / nits
- GHA Quay login / stray
tkn bundle push --helpline date -u --iso-8601=secondsis GNU-only (OK on ubi-minimal)- MCPChecker model defaults assume specific providers
- Dual-publish easy to miss — consider CI that bundle digests match task YAML
Merge bar
- Remote eval uses prepared submission or clones
SUBMISSION_REPO_URL(or docs hard-limit + fail if mismatch) - Remote Pod
Failed→ Taskexit 1 - Org git defaults on all tasks; Quay relocation plan or org refs
- Fail closed when engine/analyze yields no
report.json(or explicit error artifact + failed task) - Wire or document
llm-credentialsin reference PipelineRun - Guide: engine × mode matrix, Harbor limits, snapshot image ownership, multi-component selection
- Digest-pinning path for production ITS
- Coordinate #65 rebase after #60
Design questions
- Expose
component-imageas a Pipeline result for consumer deploy? - Should documented default for in-cluster agents be
EVAL_MODE=local? - Longer term: one evaluate dispatcher shared with main
phases/evaluate.yaml?
Sources
| File | Stance | Notable unique findings |
|---|---|---|
htwpl_pr60_konflux_integration.md |
Approve w/ minor fixes | Remote submission gap; disabled gates in reference PR; no AEH; task drift vs phases |
nyjsj_pr_60_review.md |
Request changes | Remote Failed→exit 0; fail-open matrix; ose-cli local; Harbor/local env; LLM secret; #65 order |
qmxpt_pr_60_review.md |
Approve | Architecture praise; TLS/tags/log transfer as documented non-blockers |
vbnkp_pr60_review.md |
Approve | Follow-up priority list; MCPChecker model defaults; verified TEST_OUTPUT / timeouts |
xkqpd_pr60_review.md |
Approve w/ changes | LLM secret inconsistency; .components[0] footgun; MCPChecker gate gaps |
Authoritative blockers from deeper reviews: remote submission path, Failed-pod exit code, org defaults/Quay, evaluate fail-open, LLM credentials wiring.
Must-fix (blocking): - Remote mode now clones SUBMISSION_REPO_URL in the eval Pod when it differs from PIPELINE_REPO_URL (was only cloning pipeline repo) - Remote Failed pod now exits 1 instead of silently passing - All task defaults now point to RHEcosystemAppEng/ABEvalFlow (was pointing to ikrispin fork in 4 tasks) - Fail closed: exit 1 when report.json is missing after eval, when engine commands fail with no results, and when log extraction fails Should-fix (nice to have): - Wire llm-credentials Secret via optional SecretKeyRef in evaluate - Add LLM_API_KEY param to reference PipelineRun - Document .components[0] default and multi-component footgun - Document engine x mode validation matrix in guide - Add comments about disabled security/quality in reference pipeline - Remove hardcoded LiteLLM URL and OpenShift console URL defaults - Remove hardcoded mcpchecker model defaults (use mcpchecker defaults) - Track ASE iteration failures; fail if all iterations fail
Addressed in eec559e |
GuyZivRH
left a comment
There was a problem hiding this comment.
PR Review: #60 — Generic Konflux integration for ABEvalFlow
Prefix: mzkpt_
PR: #60
Author: ikrispin
Branch: konflux-generic → main
Reviewed: 2026-08-06
Scope: +2,971 lines, 12 files, 3 commits
Follow-on: #65 (red-team stage) builds on this branch
Ticket: APPENG-5740
Verdict
Approve with minor fixes — strong, production-minded Konflux integration. Fix commit eec559e addressed the major correctness issues (remote submission clone, fail-closed eval, upstream repo defaults). CI green; E2E validated on stone-prod-p02. Remaining items are org Quay relocation, TLS hardening, and long-term drift/bundle pinning — not blockers for merging the framework.
Summary
Adds ABEvalFlow as a reusable Konflux IntegrationTestScenario — 7 core Tekton tasks published as bundles:
parse-snapshot → prepare → test → evaluate → analyze-scorecard → store → emit-result
Consumers wrap with deploy/cleanup (example: abevalflow-konflux-example). Validated: PipelineRun lightspeed-abevalflow-eval-qhx2p — 9/9 tasks on Konflux + cn-ai-lab workload cluster.
| Deliverable | Purpose |
|---|---|
pipeline/tasks/konflux/*.yaml |
7 generic eval tasks |
pipeline/integration/konflux-eval-pipelinerun.yaml |
Reference PipelineRun + parameter contract |
pipeline/integration/Makefile + push-bundles.yaml |
Publish Tekton Bundles to Quay |
Docs/konflux-integration-guide.md |
Integration guide (~340 lines) |
config/konflux/secrets-template.yaml |
Workload cluster + LLM secrets |
Commits
| Commit | Summary |
|---|---|
e8284c7 |
Initial Konflux ITS (later refactored) |
fd2f807 |
Generic 7-task framework; deploy/cleanup moved to example repo |
eec559e |
Review fixes: remote submission clone, fail-closed, upstream defaults, docs |
CI status
| Check | Status |
|---|---|
| test | ✅ PASS (run 30987898881) |
| Note: CI validates Python/ruff in this repo, not Konflux task execution — E2E proof is the documented Konflux run. |
Prior review items — status
| Item | Status |
|---|---|
| Remote mode missing separate submission repo | ✅ Fixed — clones SUBMISSION_REPO_URL in eval Pod |
Silent pass on failed/missing report.json |
✅ Fixed — fail closed (remote + local) |
| Task defaults pointed at author fork | ✅ Fixed — RHEcosystemAppEng/ABEvalFlow |
| Reference pipeline hides disabled security/quality | ✅ Fixed — comments + guide note |
| Hardcoded LiteLLM / console URL defaults | ✅ Fixed — removed from analyze-scorecard |
llm-credentials Secret wiring |
✅ Fixed — optional SecretKeyRef in evaluate |
| Engine × mode matrix undocumented | ✅ Fixed — in task description + guide |
| Multi-component snapshot footgun | ✅ Documented |
| Personal Quay org for bundles/images | ❌ Still quay.io/rh-ee-ikrispin/ (acknowledged in PR) |
--insecure-skip-tls-verify on oc login |
❌ Still present (TODO in code) |
Log-based report.json extraction |
❌ Still markers in pod logs |
Mutable :0.1 bundle tags |
❌ Deferred |
Task duplication vs pipeline/tasks/phases/ |
❌ Inherent maintenance cost |
| No AEH engine in Konflux evaluate | ❌ Out of scope for v1 |
What's good
1. Correct architectural split
Core tasks never deploy the application. Generic eval framework + consumer-specific deploy/cleanup is the right Konflux ITS pattern.
2. Local vs remote eval modes
Solves real cross-cluster networking: Konflux orchestrates on stone-prod-p02; eval Pod runs on cn-ai-lab where LiteLLM and agent Services are reachable.
3. Fail-closed hardening (eec559e)
Remote Failed pods exit 1; missing submission path, Harbor with no results, missing post-analyze report.json, and log extraction failures now fail the pipeline instead of emitting synthetic pass/fail JSON.
4. Honest engine × mode matrix
Documents what is tested (a2a + remote), supported-but-untested, limited (harbor + local), and unsupported (harbor + remote).
5. Konflux-native release gating
emit-result.yaml maps scorecard recommendation + certification to TEST_OUTPUT (SUCCESS/WARNING/FAILURE).
6. Graceful optional infra
Store/test/analyze no-op cleanly without MinIO, Postgres, or Compass — appropriate for Konflux tenants without full ABEvalFlow stack.
7. Parameterized secrets
WORKLOAD_CREDENTIALS_SECRET, optional llm-credentials, mode-conditional docs in secrets template.
8. Dual-publish model documented
Git PipelineRun + Quay bundles — update requires both make bundles and git push. Clear in PipelineRun header.
Should fix (non-blocking)
1. Relocate Quay org before production default
Bundles and eval-base-image remain under quay.io/rh-ee-ikrispin/. PR acknowledges relocation to team org — track as pre-production task or follow-up PR immediately after merge.
2. Pin bundle digests
Reference PipelineRun uses mutable :0.1 tags. Makefile make digests exists — document pinning pattern for consumers (@sha256:...).
3. TLS verification for cross-cluster oc login
Still --insecure-skip-tls-verify=true. Inject workload cluster CA via Secret before enterprise rollout.
4. ConfigMap-based result transfer
Log markers (REPORT_JSON_START/END) work but are fragile for large reports. PR tracks migration — keep on roadmap.
5. Konflux task drift from main pipeline
~3k lines parallel to pipeline/tasks/phases/. As main gains AEH, MLflow, red-team (#65), Konflux tasks will lag unless there's a sync strategy.
6. No AEH engine
Main ci-pipeline.yaml supports aeh; Konflux evaluate does not. Document in guide roadmap if AEH Konflux support is planned.
7. Reference pipeline security/quality disabled by default
Intentional for minimal ITS — guide now explains how to enable stricter gates. Consider a second konflux-eval-strict-pipelinerun.yaml example later.
Merge relationship with #65
#65 adds 8th bundle (red-team) + Promptfoo stage on top of this branch (+555 lines). Merge #60 first, then #65 (or rebase stack).
Recommended next steps
- Merge #60 — framework is ready for Konflux consumers
- Follow-up: relocate bundles to
quay.io/ecosystem-appeng/, pin digests - Merge/rebase #65 for optional adversarial testing stage
- Add Konflux eval to
Docs/infrastructure_ops.mdcross-link - Long-term: reduce duplication with phase tasks or shared fragments
Review generated from branch pr-60-review (through eec559e), CI run 30987898881.
Summary
Adds ABEvalFlow as a generic, reusable Konflux IntegrationTestScenario. Any Konflux application can reference the ABEvalFlow evaluation pipeline to run A/B testing (A2A agents, MCP servers, skills), security scanning, quality review, and scorecard certification against its built images as part of the CI/CD pipeline.
The framework publishes 7 core Tekton tasks as versioned bundles. Consumers compose their own pipeline by wrapping these core tasks with application-specific deploy/cleanup logic. ABEvalFlow knows nothing about any specific agent, MCP server, or deployment model.
Tested end-to-end with the google-lightspeed-agent example on the stone-prod-p02 Konflux cluster. The pipeline parses the Konflux Snapshot, deploys the agent on a workload cluster, runs 3 Harbor A2A trials with LLM-as-judge scoring, computes the unified scorecard with certification, and returns structured
TEST_OUTPUTback to Konflux for release gating.Successful run: https://konflux-ui.apps.stone-prod-p02.hjvn.p1.openshiftapps.com/ns/ai5-marketplace-tenant/applications/google-lightspeed-agent/pipelineruns/lightspeed-abevalflow-eval-qhx2p
Architecture
Uses a two-cluster model following the standard Konflux pattern for integration tests that need live workloads:
TEST_OUTPUTThe evaluation runs either locally (in the Tekton task step, when the target is reachable from the pipeline cluster) or as a remote Pod on the workload cluster (for cross-cluster scenarios). The eval mode is controlled by the
EVAL_MODEparameter.What's included
Core Tekton tasks (7 files — published as Tekton Bundles)
Generic, reusable tasks under
pipeline/tasks/konflux/:parse-snapshotpreparetestevaluateanalyze-scorecardstoreemit-resultTEST_OUTPUTformatPipeline + CI
konflux-eval-pipelinerun.yaml— Generic 7-stage reference PipelineRun with standardized parameter contractMakefile—make bundlesto push all tasks as Tekton Bundles to Quaypush-bundles.yaml— GitHub Actions workflow for automated bundle publishingConfig
config/konflux/secrets-template.yaml— Templates forworkload-cluster-credentials,llm-credentials,compass-facts-apiwith mode-conditional documentationDocs/konflux-integration-guide.md— Full integration guide covering parameter contract, submission formats, integration patterns, and quick-startExample integration
A complete working example with the Google Lightspeed Agent is at:
github.com/ikrispin/abevalflow-konflux-example
This example demonstrates how a consumer wraps ABEvalFlow's core tasks with application-specific
deploy-agentandcleanup-agenttasks. The deploy/cleanup tasks are resolved from the example repo via git resolver, while the 7 core tasks are resolved from Tekton Bundles on Quay.Parameter contract
The generic pipeline accepts these parameters:
SNAPSHOTEVAL_ENGINEa2a,harbor,ase,mcpcheckera2aAGENT_ENDPOINT""MCP_URL""EVAL_MODElocal(run in task step) orremote(Pod on workload cluster)localSUBMISSION_REPO_URLSUBMISSION_DIRsubmissions/LLM_API_BASE""LLM_MODELclaude-sonnetWORKLOAD_CLUSTER_URLEVAL_MODE=remote""WORKLOAD_NAMESPACEEVAL_MODE=remote""WORKLOAD_CREDENTIALS_SECRETworkload-cluster-credentialsOCI artifacts in Quay
Container image
quay.io/rh-ee-ikrispin/abevalflow-eval-base:latestTekton Bundles
All 7 core tasks are published as OCI bundles under
quay.io/rh-ee-ikrispin/:abevalflow-task-parse-snapshot:0.1abevalflow-task-prepare:0.1abevalflow-task-test:0.1abevalflow-task-evaluate:0.1abevalflow-task-analyze-scorecard:0.1abevalflow-task-store:0.1abevalflow-task-emit-result:0.1The
Makefileprovidesmake bundlesto push all andmake digeststo print SHA digests. When moving to production, these should be relocated to a team Quay org (e.g.,quay.io/rhecosystemappeng/).Key design decisions
Generic framework, not application-specific — The core tasks know nothing about any specific agent or MCP server. Application-specific logic (deployment, cleanup, env vars, sidecars) lives in the consumer's repo. ABEvalFlow only needs an endpoint URL and a submission definition.
Local/remote eval modes — The evaluate task supports
localmode (runs eval directly in the task step) andremotemode (submits an eval Pod to a workload cluster). Local mode works when the target is reachable from the pipeline cluster. Remote mode is for cross-cluster scenarios.Multi-engine support — The evaluate task dispatches to A2A (Harbor trials), MCPChecker (MCP server testing), ASE (LLM-as-judge for skills), and Harbor (containerized A/B) based on the
EVAL_ENGINEparameter.Tekton Bundles — All 7 core tasks are published as versioned OCI bundles to Quay and referenced via the bundles resolver. This follows the same pattern as Konflux's own task catalog and allows independent versioning.
Parameterized secrets — The workload cluster credentials secret name is a parameter (default
workload-cluster-credentials), not hardcoded. Consumers can use their own secret names.Dual-publish model — The PipelineRun is resolved from git (via the ITS), but the tasks inside it are resolved from Tekton Bundles. Updating task logic requires both a bundle push and a git push. This is documented in the PipelineRun header.
How another project onboards
Pattern 1: Pre-deployed target (simplest)
For agents or MCP servers that are already running, reference the generic pipeline directly:
They also need: a submission directory,
AGENT_ENDPOINTorMCP_URLparameter, andLLM_API_BASEconfigured.Pattern 2: Pipeline-deployed target
For targets that need deployment, create a pipeline that wraps ABEvalFlow's core tasks with deploy/cleanup. See the example repo for the full pattern.
Testing
Test environment
api.stone-prod-p02.hjvn.p1.openshiftapps.com)ai5-marketplace-tenantapi.cn-ai-lab.2vn8.p1.openshiftapps.com)ab-eval-flowTest execution
Testing was done by creating override Snapshots on the Konflux cluster to trigger the IntegrationTestScenario. The example repo's pipeline deployed the agent on the workload cluster using a public image (
quay.io/ecosystem-appeng/google-lightspeed-agent), while the 7 core evaluation tasks were resolved from Tekton Bundles on Quay.Test results
PipelineRun
lightspeed-abevalflow-eval-qhx2p— 9/9 tasks succeeded:What was validated
oc loginWhat was NOT validated
:0.1tags)Known limitations and TODOs
--insecure-skip-tls-verifyoccalls skip TLS verification. Should inject workload cluster CA cert as a Secret.report.jsonis extracted from eval Pod logs via delimited markers. Should migrate to ConfigMap-based transfer for robustness.AGENT_IMAGE_OVERRIDEbecause the Konflux-built image is private. The generic pipeline doesn't have this issue — consumers provideAGENT_ENDPOINTdirectly.:0.1tags (mutable). Should pin by@sha256:digest for production. The Makefile'smake digeststarget provides the SHAs.compass.stage.redhat.comdue to SSL cert verification. Non-blocking — scorecard is computed locally.quay.io/rh-ee-ikrispin/. Should be relocated to a team org for production.Related