From 7eaf6a7305b7d1ae58f321fb7eda3918d9c41796 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 Aug 2025 08:50:03 +0000 Subject: [PATCH 1/3] Initial plan From 8cd37d6fd7208b8f3e3fc9ea183ede7747b39717 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 Aug 2025 09:01:20 +0000 Subject: [PATCH 2/3] Change default linuxPolicySetupTimeoutSeconds from 0 to 90 seconds - Update API documentation to reflect new default value - Update defaulting logic in installation controller - Update installation defaulting tests to expect 90 instead of 0 Co-authored-by: fasaxc <469264+fasaxc@users.noreply.github.com> --- api/v1/installation_types.go | 2 +- pkg/controller/installation/core_controller.go | 2 +- pkg/controller/installation/defaults_test.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/v1/installation_types.go b/api/v1/installation_types.go index aa844a3e3f..654ae0519b 100644 --- a/api/v1/installation_types.go +++ b/api/v1/installation_types.go @@ -643,7 +643,7 @@ type CalicoNetworkSpec struct { // // * A value of 0 disables pod startup delays. // - // Default: 0 + // Default: 90 // +optional LinuxPolicySetupTimeoutSeconds *int32 `json:"linuxPolicySetupTimeoutSeconds,omitempty"` } diff --git a/pkg/controller/installation/core_controller.go b/pkg/controller/installation/core_controller.go index 7a0e9801c3..f88cbba244 100644 --- a/pkg/controller/installation/core_controller.go +++ b/pkg/controller/installation/core_controller.go @@ -626,7 +626,7 @@ func fillDefaults(instance *operator.Installation, currentPools *crdv1.IPPoolLis if instance.Spec.CNI.Type == operator.PluginCalico && *instance.Spec.CalicoNetwork.LinuxDataplane == operator.LinuxDataplaneIptables && instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds == nil { - var delay int32 = 0 + var delay int32 = 90 instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds = &delay } diff --git a/pkg/controller/installation/defaults_test.go b/pkg/controller/installation/defaults_test.go index 27e62346fc..8c4ca78437 100644 --- a/pkg/controller/installation/defaults_test.go +++ b/pkg/controller/installation/defaults_test.go @@ -61,7 +61,7 @@ var _ = Describe("Defaulting logic tests", func() { Expect(instance.Spec.CalicoNetwork.WindowsDataplane).ToNot(BeNil()) Expect(*instance.Spec.CalicoNetwork.WindowsDataplane).To(Equal(operator.WindowsDataplaneDisabled)) Expect(*instance.Spec.CalicoNetwork.BGP).To(Equal(operator.BGPEnabled)) - Expect(*instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds).To(BeZero()) + Expect(*instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds).To(Equal(int32(90))) Expect(*instance.Spec.ControlPlaneReplicas).To(Equal(int32(2))) Expect(instance.Spec.NonPrivileged).NotTo(BeNil()) Expect(*instance.Spec.NonPrivileged).To(Equal(operator.NonPrivilegedDisabled)) @@ -98,7 +98,7 @@ var _ = Describe("Defaulting logic tests", func() { Expect(instance.Spec.CalicoNetwork.WindowsDataplane).ToNot(BeNil()) Expect(*instance.Spec.CalicoNetwork.WindowsDataplane).To(Equal(operator.WindowsDataplaneDisabled)) Expect(*instance.Spec.CalicoNetwork.BGP).To(Equal(operator.BGPEnabled)) - Expect(*instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds).To(BeZero()) + Expect(*instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds).To(Equal(int32(90))) Expect(*instance.Spec.ControlPlaneReplicas).To(Equal(int32(2))) Expect(instance.Spec.NonPrivileged).NotTo(BeNil()) Expect(*instance.Spec.NonPrivileged).To(Equal(operator.NonPrivilegedDisabled)) From ef15d24f31dfa7f796215a2384c416c3fdcea34e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 Aug 2025 09:04:50 +0000 Subject: [PATCH 3/3] Extend defaulting to support BPF and Nftables dataplanes and fix BPF test - Update defaulting logic to also apply 90s default for BPF and Nftables dataplanes - Fix BPF test to include LinuxPolicySetupTimeoutSeconds to maintain test intent Co-authored-by: fasaxc <469264+fasaxc@users.noreply.github.com> --- pkg/controller/installation/core_controller.go | 4 +++- pkg/controller/installation/defaults_test.go | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/controller/installation/core_controller.go b/pkg/controller/installation/core_controller.go index f88cbba244..2fedecc17f 100644 --- a/pkg/controller/installation/core_controller.go +++ b/pkg/controller/installation/core_controller.go @@ -624,7 +624,9 @@ func fillDefaults(instance *operator.Installation, currentPools *crdv1.IPPoolLis } if instance.Spec.CNI.Type == operator.PluginCalico && - *instance.Spec.CalicoNetwork.LinuxDataplane == operator.LinuxDataplaneIptables && + (*instance.Spec.CalicoNetwork.LinuxDataplane == operator.LinuxDataplaneIptables || + *instance.Spec.CalicoNetwork.LinuxDataplane == operator.LinuxDataplaneBPF || + *instance.Spec.CalicoNetwork.LinuxDataplane == operator.LinuxDataplaneNftables) && instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds == nil { var delay int32 = 90 instance.Spec.CalicoNetwork.LinuxPolicySetupTimeoutSeconds = &delay diff --git a/pkg/controller/installation/defaults_test.go b/pkg/controller/installation/defaults_test.go index 8c4ca78437..6afabd7736 100644 --- a/pkg/controller/installation/defaults_test.go +++ b/pkg/controller/installation/defaults_test.go @@ -209,6 +209,7 @@ var _ = Describe("Defaulting logic tests", func() { var nodeMetricsPort int32 = 9081 false_ := false var twentySeven int32 = 27 + var linuxPolicySetupTimeoutSeconds int32 = 123 // Custom value to test that it's not overridden var one intstr.IntOrString = intstr.FromInt(1) var replicas int32 = 3 var logFileMaxCount uint32 = 5 @@ -244,8 +245,9 @@ var _ = Describe("Defaulting logic tests", func() { ConfDir: &cniConfDir, }, CalicoNetwork: &operator.CalicoNetworkSpec{ - LinuxDataplane: &dpBPF, // Actually the default but BPF would make other values invalid. - WindowsDataplane: &winDataplaneDisabled, + LinuxDataplane: &dpBPF, // Actually the default but BPF would make other values invalid. + WindowsDataplane: &winDataplaneDisabled, + LinuxPolicySetupTimeoutSeconds: &linuxPolicySetupTimeoutSeconds, IPPools: []operator.IPPool{ { CIDR: "1.2.3.0/24",