Skip to content

Hermetic next - #166

Open
uril wants to merge 8 commits into
confidential-clusters:mainfrom
uril:hermetic_next
Open

Hermetic next#166
uril wants to merge 8 commits into
confidential-clusters:mainfrom
uril:hermetic_next

Conversation

@uril

@uril uril commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Enabling hermetic builds, by pulling all the sources and tools needed for the build in a 'prefetch' step, such that the 'build' step can be done with no network.

I call it 'next' since it sits on top of PR!162

accounting for Containerfile unification, bumping buildroot

Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Assisted-by: AI
Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Assisted-by: AI
Create MachineConfig, MachineConfigPool & MachineSet. Includes
pluggable modules for TEE platforms, and Azure as a first module.

Test with 1 & 2 replicas. Test with a replica after deletion.

Operator components are deployed in the same cluster, i.e. no
bootstrap functionality.

Will not work until
coreos/fedora-coreos-tracker#2191 is
resolved, but already gets to Azure machine creation (with no
ignition) in this state.

Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Assisted-by: AI
has an incompatible validation rule

Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Assisted-by: AI
uril added 4 commits August 29, 2026 03:09
Assisted-By: Claude Opus 4.8
Signed-off-by: Uri Lublin <uril@redhat.com>
The consolidated Containerfile dropped the `AS builder` label.
Later stages use it e.g. `COPY --from=builder` / `FROM builder`.

Upstream operator/Containerfile has `... AS builder`.

Assisted-By: Claude Opus 4.8
Signed-off-by: Uri Lublin <uril@redhat.com>
Bumps the operator submodule from 1b8651e to 53fb1ed (upstream main).

This pulls in the fix that adds the reference-values git dependency to
operator/Cargo.lock, which is required for hermetic cargo builds: cachi2
prefetch is driven by Cargo.lock and cannot resolve the missing dep offline.
(`cargo fetch --locked` now succeeds.)

Also refreshes drift-cache/Containerfile to match the upstream Containerfile,
whose distribution stages moved fedora:43 -> fedora-minimal:43. The downstream
Containerfile already uses ubi9/ubi-minimal for those stages, so no logic
change is mirrored there (per the sync-operator-submodule skill).

Assisted-By: Claude Opus 4.8
Signed-off-by: Uri Lublin <uril@redhat.com>
Activate cachi2 prefetch + network isolation for all build components.

- .tekton: set hermetic=true and prefetch-input on the 6 build components
  (operands: gomod+cargo+generic; bundle: gomod+rpm+generic; buildroot: rpm).
  FBC is left unchanged (already hermetic, no prefetch needed).
- reference-values: vendor as a git submodule (pinned commit) and COPY it in the
  compute-pcrs-data stage instead of `git clone` in the Containerfile.
- Containerfile: copy the cachi2-injected operator/.cargo config into the build
  workdir so offline cargo resolves the vendored crates; prefetch controller-gen
  and kopium (musl static) via cachi2 'generic' and place them where 'make crds-rs'
  expects, so it never hits the network.
- Containerfile.bundle: fetch yq, operator-sdk and controller-gen via cachi2
  'generic' ; keep the SHA256 verification.
- rpm prefetch: add per-component lockfiles:
    .konflux/buildroot/rpms.{in,lock}.yaml (rust toolchain, base ubi9/go-toolset)
    .konflux/bundle/rpms.{in,lock}.yaml    (git/make/golang, base ubi9/ubi)
  and point each component's rpm prefetch-input at its path.
- artifacts.lock.yaml: controller-gen, kopium, yq, operator-sdk.

Assisted-By: Claude Opus 4.8
Signed-off-by: Uri Lublin <uril@redhat.com>
@uril
uril force-pushed the hermetic_next branch 2 times, most recently from ea4125d to 56a5cb5 Compare August 29, 2026 22:40
Jakob-Naucke pushed a commit to Jakob-Naucke/confidential-clusters-operator that referenced this pull request Sep 1, 2026
Activate network isolation for buildroot.

- .tekton: set hermetic=true and prefetch-input on buildroot
- rpm prefetch: add per-component lockfiles:
    .konflux/buildroot/rpms.{in,lock}.yaml (rust toolchain, base ubi9/go-toolset)

Changes selectively taken from confidential-clusters#166.

Assisted-By: Claude Opus 4.8
Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Jakob-Naucke added a commit to Jakob-Naucke/confidential-clusters-operator that referenced this pull request Sep 1, 2026
Activate network isolation for buildroot, which is already required
for releasing a new buildroot, so that we can merge confidential-clusters#168.

- .tekton: set hermetic=true and prefetch-input on buildroot
- rpm prefetch: add per-component lockfiles:
    .konflux/buildroot/rpms.{in,lock}.yaml (rust toolchain, base ubi9/go-toolset)

Most changes selectively taken from confidential-clusters#166, then expanded with perl-core
in the buildroot.

Assisted-By: Claude Opus 4.8
Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Co-authored-by: Uri Lublin <uril@redhat.com>
Jakob-Naucke added a commit to Jakob-Naucke/confidential-clusters-operator that referenced this pull request Sep 1, 2026
Activate network isolation for buildroot, which is already required
for releasing a new buildroot, so that we can merge confidential-clusters#168.

- .tekton: set hermetic=true and prefetch-input on buildroot
- rpm prefetch: add per-component lockfiles:
    .konflux/buildroot/rpms.{in,lock}.yaml (rust toolchain, base ubi9/go-toolset)

Most changes selectively taken from confidential-clusters#166, then expanded with perl-core
in the buildroot.

Assisted-By: Claude Opus 4.8
Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Co-authored-by: Uri Lublin <uril@redhat.com>
Jakob-Naucke added a commit to Jakob-Naucke/confidential-clusters-operator that referenced this pull request Sep 1, 2026
Activate network isolation for buildroot, which is already required
for releasing a new buildroot, so that we can merge confidential-clusters#168.

- .tekton: set hermetic=true and prefetch-input on buildroot
- rpm prefetch: add per-component lockfiles:
    .konflux/buildroot/rpms.{in,lock}.yaml (rust toolchain, base ubi9/go-toolset)

Most changes selectively taken from confidential-clusters#166, then expanded with perl-core
in the buildroot.

Assisted-By: Claude Opus 4.8
Signed-off-by: Jakob Naucke <jnaucke@redhat.com>
Co-authored-by: Uri Lublin <uril@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants