Skip to content

Introduce MachineSet scale test - #162

Draft
Jakob-Naucke wants to merge 4 commits into
confidential-clusters:mainfrom
Jakob-Naucke:scale-test
Draft

Introduce MachineSet scale test#162
Jakob-Naucke wants to merge 4 commits into
confidential-clusters:mainfrom
Jakob-Naucke:scale-test

Conversation

@Jakob-Naucke

@Jakob-Naucke Jakob-Naucke commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

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.

In a separate, revertable commit, add a workaround for openshift/api#2978.

Before that, update operator and drift cache. Add a skill to do so.

Bundle build is expected to fail until trusted-execution-clusters/operator#337 is merged and can be pulled in.

Comment thread tests/scale.rs
let client = self.test_ctx.client();
let machine_name = &self.machine_name;

self.test_ctx.info("Cleaning up");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps start with setting replicas=0 for the machine-set (or is it done as part of the tests?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, have added

Comment thread tests/scale.rs
spec: MachineConfigSpec {
os_image_url: Some(bootc_image),
..Default::default()
},

@uril uril Aug 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wasn't there one more required configuration for a machine to become a node -- such that OpenShift accepts the custom RHCOS image ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None that I remember, but I can't really test it right now

Comment thread tests/scale.rs
test_ctx.info("Updating MachineSet replicas to 0");
let rp = Default::default();
machinesets.replace(machine_name, &rp, &mset).await?;
scale_ctx.has_replicas(0, scaled_duration(60)).await?;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: in a later PR we can write a function to update the machineset replicas (and possibly another one that also waits for the replicas to come up)

@uril uril left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, with some comments

Comment thread tests/scale.rs Outdated
@Jakob-Naucke
Jakob-Naucke force-pushed the scale-test branch 2 times, most recently from 132dd36 to 7e7133d Compare August 21, 2026 16:44
@Jakob-Naucke

Copy link
Copy Markdown
Contributor Author

@uril I added the adaptation for the single Containerfile from @yairpod, if it's too big we can also get this from a separate PR. In any case we need #163 first.

@Jakob-Naucke
Jakob-Naucke force-pushed the scale-test branch 5 times, most recently from e90051d to 346ffd6 Compare August 27, 2026 14:59
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

uril commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Now that a single Containerfile is used, 'build_target' must be passed to buildah.
These are set under .tekton/ for example:

diff --git a/.tekton/attestation-key-register-pull-request.yaml b/.tekton/attestation-key-register-pull-request.yaml
index 90ec16d..3806e91 100644
--- a/.tekton/attestation-key-register-pull-request.yaml
+++ b/.tekton/attestation-key-register-pull-request.yaml
@@ -31,6 +31,7 @@ spec:
   - name: build-args
     value:
     - build_type=release
+    - build_target=attestation-key-register
   pipelineSpec:
     description: |
       This pipeline is ideal for building container images from a Containerfile while maintaining trust after pipeline customization.

Comment thread Containerfile
ARG build_target=operator

# Unified builder stage, compiles all binaries in a single cargo invocation.
FROM quay.io/redhat-user-workloads/cocl-operator-tenant/buildroot@sha256:34806c0eb874b00bcd0fc90241746404e051070b278ac0351e5c8873ffda8b39

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... AS builder

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a fix for that in #166

@uril

uril commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Now that a single Containerfile is used, 'build_target' must be passed to buildah.

I added a fix for that in #166

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