Skip to content

[ARO-26611] Add workaround controller for copyfail to mitigate control plane nodes#4808

Merged
cloudygreybeard merged 4 commits intomasterfrom
hawkowl/ARO-26611
May 1, 2026
Merged

[ARO-26611] Add workaround controller for copyfail to mitigate control plane nodes#4808
cloudygreybeard merged 4 commits intomasterfrom
hawkowl/ARO-26611

Conversation

@hawkowl
Copy link
Copy Markdown
Collaborator

@hawkowl hawkowl commented May 1, 2026

Which issue this PR addresses:

Fixes ARO-26611

What this PR does / why we need it:

Adds a workaround controller to add a mitigation for copyfail to control planes, exempting FIPS ones since they can't be mitigated via this method

Test plan for issue:

Manual testing

Copilot AI review requested due to automatic review settings May 1, 2026 05:30
@hawkowl hawkowl added priority-high High priority issue or pull request size-small Size small next-up labels May 1, 2026
@hawkowl hawkowl added the next-release To be included in the next RP release rollout label May 1, 2026
@hawkowl hawkowl added the go Pull requests that update Go code label May 1, 2026
@hawkowl hawkowl added the skippy pull requests raised by member of Team Skippy label May 1, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new “copy fail” mitigation workaround intended to protect control plane nodes (skipping FIPS clusters), and updates the workaround controller interface to support context + error-returning requirement checks.

Changes:

  • Extend Workaround.IsRequired to accept context.Context and return (bool, error); update controller logic and mocks accordingly.
  • Introduce aro.workaround.copyfail.enabled operator flag (default enabled).
  • Add copyfailworkaround implementation (MachineConfig applying initcall_blacklist=algif_aead_init) plus unit tests.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pkg/util/mocks/operator/controllers/workaround/workaround.go Updates gomock stub to match new IsRequired(ctx, ...) (bool, error) signature.
pkg/operator/flags.go Adds CopyFailWorkaroundEnabled flag and defaults it to true.
pkg/operator/controllers/workaround/workaround_controller_test.go Updates gomock call arity for IsRequired (now takes ctx), but needs return-value fixes.
pkg/operator/controllers/workaround/workaround_controller.go Updates reconcile loop to call new IsRequired signature and aggregate errors.
pkg/operator/controllers/workaround/workaround.go Updates the Workaround interface signature for IsRequired.
pkg/operator/controllers/workaround/systemreserved.go Updates systemreserved workaround to new IsRequired signature.
pkg/operator/controllers/workaround/copyfailworkaround.go Adds the new copyfail workaround implementation using a master MachineConfig.
pkg/operator/controllers/workaround/copyfailworkaround_test.go Adds unit tests for the copyfail workaround enablement/FIPS/error behaviors.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/operator/controllers/workaround/workaround_controller.go Outdated
Comment thread pkg/operator/controllers/workaround/workaround_controller.go
Comment thread pkg/operator/controllers/workaround/workaround_controller_test.go Outdated
Comment thread pkg/operator/controllers/workaround/copyfailworkaround_test.go Outdated
Comment thread pkg/operator/controllers/workaround/copyfailworkaround_test.go Outdated
Copy link
Copy Markdown
Collaborator

@yjst2012 yjst2012 left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the idea and quick implementation, appreciate it!

@cloudygreybeard cloudygreybeard merged commit 2acf55f into master May 1, 2026
33 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

go Pull requests that update Go code next-release To be included in the next RP release rollout next-up priority-high High priority issue or pull request ready-for-review size-small Size small skippy pull requests raised by member of Team Skippy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants