diff --git a/pkg/daemon/update.go b/pkg/daemon/update.go index 8d28c6592f..c2e645c3bb 100644 --- a/pkg/daemon/update.go +++ b/pkg/daemon/update.go @@ -1733,8 +1733,11 @@ func generateKargs(oldKernelArguments, newKernelArguments []string) []string { // kernel arguments which have been applied by MCO previously and append all of the // kernel arguments present in the new rendered MachineConfig. // See https://bugzilla.redhat.com/show_bug.cgi?id=1866546#c10. + // Use --delete-if-present instead of --delete to tolerate drift between + // the old MachineConfig spec and the actual state. + // See https://issues.redhat.com/browse/OCPBUGS-75894. for _, arg := range oldKargs { - cmdArgs = append(cmdArgs, "--delete="+arg) + cmdArgs = append(cmdArgs, "--delete-if-present="+arg) } for _, arg := range newKargs { cmdArgs = append(cmdArgs, "--append="+arg) diff --git a/pkg/daemon/update_test.go b/pkg/daemon/update_test.go index aa5e0c7d20..84d1e8ef14 100644 --- a/pkg/daemon/update_test.go +++ b/pkg/daemon/update_test.go @@ -301,29 +301,29 @@ func TestKernelAguments(t *testing.T) { { oldKargs: []string{"hello=world"}, newKargs: nil, - out: []string{"--delete=hello=world"}, + out: []string{"--delete-if-present=hello=world"}, }, { oldKargs: []string{"foo", "bar=1", "hello=world"}, newKargs: []string{"hello=world"}, - out: []string{"--delete=foo", "--delete=bar=1", "--delete=hello=world", "--append=hello=world"}, + out: []string{"--delete-if-present=foo", "--delete-if-present=bar=1", "--delete-if-present=hello=world", "--append=hello=world"}, }, { oldKargs: []string{"foo", "bar=1 hello=world", "baz"}, newKargs: []string{"foo", "bar=1", "hello=world"}, - out: []string{"--delete=foo", "--delete=bar=1", "--delete=hello=world", "--delete=baz", + out: []string{"--delete-if-present=foo", "--delete-if-present=bar=1", "--delete-if-present=hello=world", "--delete-if-present=baz", "--append=foo", "--append=bar=1", "--append=hello=world"}, }, { oldKargs: []string{" baz=test bar=\"hello world\""}, newKargs: []string{" baz=test bar=\"hello world\"", "foo"}, - out: []string{"--delete=baz=test", "--delete=bar=\"hello world\"", + out: []string{"--delete-if-present=baz=test", "--delete-if-present=bar=\"hello world\"", "--append=baz=test", "--append=bar=\"hello world\"", "--append=foo"}, }, { oldKargs: []string{"hugepagesz=1G hugepages=4", "hugepagesz=2M hugepages=4"}, newKargs: []string{"hugepagesz=1G hugepages=4", "hugepagesz=2M hugepages=6"}, - out: []string{"--delete=hugepagesz=1G", "--delete=hugepages=4", "--delete=hugepagesz=2M", "--delete=hugepages=4", + out: []string{"--delete-if-present=hugepagesz=1G", "--delete-if-present=hugepages=4", "--delete-if-present=hugepagesz=2M", "--delete-if-present=hugepages=4", "--append=hugepagesz=1G", "--append=hugepages=4", "--append=hugepagesz=2M", "--append=hugepages=6"}, }, }