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..2fedecc17f 100644 --- a/pkg/controller/installation/core_controller.go +++ b/pkg/controller/installation/core_controller.go @@ -624,9 +624,11 @@ 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 = 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..6afabd7736 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)) @@ -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",