Skip to content

Conversation

@ngopalak-redhat
Copy link
Contributor

@ngopalak-redhat ngopalak-redhat commented Nov 13, 2025

- What I did

  • Added compressible kubelet MachineConfig creation at controller startup using the templated kubelet configuration
  • Implemented ensureCompressibleMachineConfigs() to create 50--compressible-kubelet-override MachineConfigs for all pools
  • Added waitForTemplateGeneration() to ensure ControllerConfig is reconciled before creating compressible MachineConfigs
  • Created bootstrap support via RunCompressibleBootstrap() for cluster installation
  • Followed the same pattern as [release-4.17] OCPBUGS-38292: controller: default to runc when upgrading clusters from 4.17 to 4.18 #4715 (container runtime default change)

- How to verify it

  • Install a 4.20 cluster and verify 50-master-compressible-kubelet-override and 50-worker-compressible-kubelet-override MachineConfigs are created
  • Verify the MachineConfigs contain the current templated kubelet configuration with resolved template variables (e.g., ClusterDNSIP)
  • Create a custom KubeletConfig and verify it overrides the compressible MachineConfig
  • Upgrade from 4.20 to 4.21 and verify system reserved compressible resources are NOT enabled by default (due to the override MachineConfig)
  • Delete the compressible MachineConfig after 4.21 upgrade and verify system reserved compressible becomes enabled with 4.21 defaults

- Description for the changelog

This patch enables 4.20 clusters to upgrade to 4.21 by creating a compressible kubelet MachineConfig that preserves 4.20 kubelet defaults. When upgrading to
4.21 (where system reserved compressible resources are enabled by default), this MachineConfig prevents automatic enablement. Customers can delete the
MachineConfig post-upgrade to adopt 4.21 defaults. This patch is mandatory for 4.20→4.21 upgrades; Cincinnati will block upgrades without it.


Testing Results

Fresh Installation:

  • Created a release image from this branch and installed a new cluster
  • Verified that compressible MachineConfigs (50-master-compressible-kubelet-override and 50-worker-compressible-kubelet-override) were successfully created

Upgrade Scenario:

  • Created a release image from this branch and upgraded a cluster from 4.20 to this patched version
  • Verified that compressible MachineConfigs were successfully created post-upgrade

Performance Profile Integration:

  • Applied a Performance Profile and verified that reserved CPUs were correctly set in the kubeletconfig of worker nodes
  • This confirms that the Node Tuning Operator (NTO) processing of Performance Profiles is not impacted by this change

All scenarios confirmed that the compressible MachineConfig creation works as expected without interfering with existing operators.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 13, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 13, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 13, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ngopalak-redhat
Once this PR has been reviewed and has the lgtm label, please assign isabella-janssen for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ngopalak-redhat ngopalak-redhat force-pushed the ngopalak/release-4.20-system-compressible branch from 6772384 to 0637b9d Compare November 17, 2025 03:23
@ngopalak-redhat
Copy link
Contributor Author

/test all

@ngopalak-redhat
Copy link
Contributor Author

/test all

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 19, 2025

@ngopalak-redhat: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-op-1of2 b6094ff link true /test e2e-gcp-op-1of2
ci/prow/e2e-aws-ovn-upgrade b6094ff link true /test e2e-aws-ovn-upgrade
ci/prow/e2e-gcp-op-2of2 b6094ff link true /test e2e-gcp-op-2of2
ci/prow/e2e-gcp-op-single-node b6094ff link true /test e2e-gcp-op-single-node
ci/prow/periodics-images b6094ff link true /test periodics-images
ci/prow/bootstrap-unit b6094ff link false /test bootstrap-unit
ci/prow/images b6094ff link true /test images
ci/prow/okd-scos-images b6094ff link true /test okd-scos-images
ci/prow/e2e-aws-ovn b6094ff link true /test e2e-aws-ovn
ci/prow/e2e-hypershift b6094ff link true /test e2e-hypershift

Full PR test history. Your PR dashboard.

Instructions 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant