Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #19379 +/- ##
=======================================
Coverage 49.70% 49.71%
=======================================
Files 2701 2701
Lines 203453 203453
=======================================
+ Hits 101134 101141 +7
+ Misses 94790 94785 -5
+ Partials 7529 7527 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Images are ready for the commit at 8ece45b. To use with deploy scripts, first |
249a032 to
db31272
Compare
Migrate roxctl images from ubi8-minimal to ubi8-micro following the same best practices used for operator migration. Changes to image/roxctl/Dockerfile: - Change cert source from ubi8-minimal to ubi8-micro - This is a simple change since it uses FROM scratch as final base Changes to image/roxctl/konflux.Dockerfile: - Add ubi-micro-base stage for reference and final image - Add package_installer stage using ubi8/ubi with dnf (not ubi-minimal) - CRITICAL: Preserve ubi-micro rpmdb by copying base to /out/ first - Use dnf --installroot pattern for Konflux hermetic builds - Install only ca-certificates (minimal runtime dependency) - Consolidate all COPY commands to reduce layers (3→1) - Remove manual rpm -e package cleanup (no longer needed) This follows the migration guide recommendation (Step 1.2) to use ubi8/ubi (not ubi-minimal) as package_installer, which provides dnf without requiring workarounds. Expected benefits: - 65% smaller konflux image (~100 MB → ~35 MB) - 33% fewer packages (~90 → ~60) - Reduced attack surface - Single-layer final image Updated rpms.in.yaml with ca-certificates for Konflux prefetch (shared with operator migration). User request: Migrate roxctl to ubi-micro (same as operator) Code partially generated by AI (Claude) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The ubi8-micro base image doesn't include extracted CA certificates at /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem. This path exists in ubi8-minimal but not in ubi8-micro. Solution: Use the same pattern as konflux.Dockerfile - add a package_installer stage that installs ca-certificates to /out/ using dnf --installroot. This generates the extracted CA bundle which is then copied to the final scratch image. Build pattern: 1. ubi-micro-base: Reference ubi8-micro for rpmdb preservation 2. package_installer: Install ca-certificates to /out/ 3. final (scratch): Copy roxctl + CA bundle Tested locally - build succeeds and roxctl works correctly. The ca-certificates package is already in rpms.in.yaml for Konflux builds. Fixes build error: "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem": not found Related: https://issues.redhat.com/browse/ROX-33561 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The rpms.in.yaml was updated to include ca-certificates for the roxctl konflux build, but rpms.lock.yaml was not regenerated. This caused Konflux builds to fail because cachi2 couldn't find the prefetched ca-certificates package and its dependencies. Changes: - Regenerated lockfile for all architectures (aarch64, ppc64le, s390x, x86_64) - Updated package versions to latest available (security updates): - postgresql: 15.15 → 15.17 - python3.12: 3.12.12-1 → 3.12.12-2 - curl: 7.61.1-34.el8_10.9 → 7.61.1-34.el8_10.10 - brotli: 1.0.6-3 → 1.0.6-4 - And other dependency updates Generated using: ../collector/regenerate-rpms-lockfile.sh This fixes the Konflux build error: "Unable to read consumer identity" when trying to install ca-certificates Related: https://issues.redhat.com/browse/ROX-33561 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The root cause of the 'Could not resolve host: cdn-ubi.redhat.com' error was that
roxctl's Konflux build was missing RPM prefetch configuration. When cachi2 performs
RPM prefetch (type: rpm), it sets up /etc/yum.repos.d/ to point to its local cache.
Without RPM prefetch, dnf falls back to the UBI repos copied from ubi-micro which
point to cdn-ubi.redhat.com.
Changed roxctl-build.yaml prefetch-input from:
value: '{"type": "gomod", "path": "."}'
To (matching main-build.yaml pattern):
value: |
[
{ "type": "gomod", "path": "." },
{ "type": "rpm", "path": "." }
]
This aligns with:
- main-build.yaml: uses npm + gomod + rpm prefetch
- collector: uses rpm prefetch only
The --setopt=reposdir=/etc/yum.repos.d flag works correctly once RPM prefetch
sets up the cachi2 repos.
Partially generated by AI.
db31272 to
d39b371
Compare
Add ACTIVATION_KEY parameter to prefetch-dependencies task to fix SSL certificate verification errors when downloading RPMs from cdn.redhat.com. The subscription-manager-activation-key-prod secret provides the credentials needed for accessing Red Hat CDN during hermetic RPM prefetch. Also added dev-package-managers: true parameter as required for RPM prefetching. Fixes: FetchError: ClientConnectorCertificateError during RPM download Partially generated by AI.
|
/konflux-retest roxctl-on-push |
2 similar comments
|
/konflux-retest roxctl-on-push |
|
/konflux-retest roxctl-on-push |
|
/konflux-retest operator-bundle-on-push |
|
@janisz: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/konflux-retest operator-bundle-on-push |
1 similar comment
|
/konflux-retest operator-bundle-on-push |
Description
Migrate roxctl images from ubi8-minimal to ubi8-micro following the same best practices used for operator migration.
Changes to image/roxctl/Dockerfile:
Changes to image/roxctl/konflux.Dockerfile:
This follows the migration guide recommendation (Step 1.2) to use ubi8/ubi (not ubi-minimal) as package_installer, which provides dnf without requiring workarounds.
Expected benefits:
Updated rpms.in.yaml with ca-certificates for Konflux prefetch (shared with operator migration).
User-facing documentation
Testing and quality
Automated testing
How I validated my change
CI