Repository navigation
Mount the whole regenerated /etc/pki into workshop sessions and widen prune-builds - #1233
Merged
jorgemoralespou merged 2 commits intoOct 14, 2026
Merged
Conversation
…hop sessions The ca-trust-store-initialization init container ran update-ca-trust and copied only /etc/pki/ca-trust into the volume the workshop container mounted at that path. On Fedora 44 that is no longer enough. OpenSSL's default CApath, /etc/pki/tls/certs, is a real directory of hashed symlinks that update-ca-trust also regenerates, and Fedora 44 dropped the /etc/pki/tls/cert.pem symlink that is OpenSSL's default CAfile. Both live outside the mounted directory, so the image's stale copies were used: consumers that read a bundle file (curl, git, Go) saw the ingress CA, while anything relying on the default verify paths, Fedora's system Python among them, did not. Have setup-certificates recreate the cert.pem symlink and copy all of /etc/pki (ca-trust, tls, java and rpm-gpg, 4 MB) into the volume, and mount the volume at /etc/pki in the workshop container and the downloads init container. The hashed CApath links, the CAfile symlink, the Java keystore link and the trust store then all come from the same regenerated copy. The workshop container mount is read-write so a workshop running as root can still import package signing keys under rpm-gpg; the copied files are root-owned, so the workshop user cannot alter the trust store either way. Verified in a workshop session on a kind cluster with a self-signed CA: Python's default SSL context verifies the ingress with both the CAfile and the CApath, as do requests, curl, git, helm and kubectl with system roots.
prune-builds missed several things that build targets leave in the source tree: the copy of the CLI source staged into the base environment image context, the packaged runtime subchart tarballs in the operator's vendored-charts directory, and the Python virtual environments of the lookup service, secrets manager, session manager and tunnel manager. All of these are gitignored on this branch, but the ignore rules do not exist on the older support branches, so after a build they show up there as hundreds of untracked files when switching branches. Add them to prune-builds, with the tarballs removed through a new clean-local-charts target in the operator Makefile that reuses the LOCAL_SUBCHARTS list package-local-charts is driven by, so the two cannot drift apart. The upstream vendored tarballs recorded in SHA256SUMS are not touched, and nor is the scratch directory. Document the target and why it is worth running before switching to a support branch.
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Splits two self-contained commits by @GrahamDumpleton out of #1232 so they
can land now, while the other two commits there (the CA delivery fix for the
CLI and operator, 615bf14, and the start-script
tls.crtfallback,abbbb90) are reworked. Both are cherry-picked unchanged: same patch IDs,
original author kept.
fix(session-manager): mount the whole regenerated /etc/pki into workshop
sessions (from 9aae3fc)
On Fedora 44, mounting only the regenerated
/etc/pki/ca-trustleavesOpenSSL's default CApath (
/etc/pki/tls/certs) as the image's stale copy,and the
/etc/pki/tls/cert.pemCAfile symlink no longer exists. Tools thatread a bundle file (curl, git, Go) trust the ingress CA; anything on
OpenSSL's default verify paths, Fedora's system Python among them, does not.
The init container only runs when session-manager has an ingress CA Secret
(
INGRESS_CA_SECRET), so this takes effect where that is already set, forexample Inline mode with
caCertificateSecretRef. The Managed-mode customCA path only reaches it once the reworked CA delivery fix from #1232 lands.
build(make): have prune-builds remove every untracked build artifact
(from c935f87)
clean-local-chartsremoves only the packaged runtime subchart tarballs;the upstream vendored tarballs recorded in
SHA256SUMSandscratch/areuntouched. The target is documented in
developer-docs/build-instructions.md.Evidence
CA, Python
sslandrequestsagainst the training portal URL failverification while
curlin the same terminal succeeds.After: Python's default context verifies with the CAfile and with the
CApath alone;
requests, curl, git, helm and kubectl all verify. (Graham'sverification in Deliver the custom ingress CA to platform components and workshop sessions #1232.)
develop(9526449) withpatch IDs identical to the originals;
workshopsession.pycompiles,setup-certificatespassesbash -n, andmake -n prune-buildsexpandsclean-local-chartsto the fiveLOCAL_SUBCHARTStarballs only.Merge Danger
Door: two-way
Both commits revert cleanly. Nothing persistent changes: the trust store
volume is rebuilt for every session.
Blast Radius: workshop-sessions
Every workshop session with an ingress CA now gets all of
/etc/pkifromthe init container rather than from its own image, and the workshop
container's mount is no longer read-only. The init container runs the base
environment image, not the workshop's image, so a custom workshop image that
adds files under
/etc/pkioutsideca-trust(for example a repositorysigning key in
/etc/pki/rpm-gpgreferenced by a.repofile) no longersees them when an ingress CA is configured. Before, only
ca-trustwasreplaced this way.
prune-buildsonly affects local builds.9aae3fc also needs a backport to
support/3.8.x, which moved to Fedora 44as well; as noted in #1232, only this commit applies there and it will need
a release-notes entry on that line. No release-notes entry here, as the
defect has not shipped in a tagged 4.0 release.