diff --git a/cmd/coordinator/cmd/cni_types.go b/cmd/coordinator/cmd/cni_types.go index 56c8c722c0..676f69f33e 100644 --- a/cmd/coordinator/cmd/cni_types.go +++ b/cmd/coordinator/cmd/cni_types.go @@ -16,7 +16,7 @@ import ( "github.com/containernetworking/cni/pkg/types" "github.com/containernetworking/cni/pkg/version" "github.com/go-openapi/strfmt" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/api/v1/agent/models" "github.com/spidernet-io/spiderpool/pkg/logutils" @@ -141,7 +141,7 @@ func ParseConfig(stdin []byte, coordinatorConfig *models.CoordinatorConfig) (*Co } if conf.IPConflict == nil && coordinatorConfig.DetectIPConflict { - conf.IPConflict = pointer.Bool(true) + conf.IPConflict = ptr.To(true) } conf.DetectOptions, err = ValidateDelectOptions(conf.DetectOptions) @@ -150,19 +150,19 @@ func ParseConfig(stdin []byte, coordinatorConfig *models.CoordinatorConfig) (*Co } if conf.HostRuleTable == nil && coordinatorConfig.HostRuleTable > 0 { - conf.HostRuleTable = pointer.Int64(coordinatorConfig.HostRuleTable) + conf.HostRuleTable = ptr.To(coordinatorConfig.HostRuleTable) } if conf.TxQueueLen == nil { - conf.TxQueueLen = pointer.Int64(coordinatorConfig.TxQueueLen) + conf.TxQueueLen = ptr.To(coordinatorConfig.TxQueueLen) } if conf.HostRuleTable == nil { - conf.HostRuleTable = pointer.Int64(500) + conf.HostRuleTable = ptr.To(int64(500)) } if conf.DetectGateway == nil { - conf.DetectGateway = pointer.Bool(coordinatorConfig.DetectGateway) + conf.DetectGateway = ptr.To(coordinatorConfig.DetectGateway) } if conf.TunePodRoutes == nil { diff --git a/cmd/spiderpool-agent/cmd/daemon.go b/cmd/spiderpool-agent/cmd/daemon.go index a31a112f14..25e75ca88f 100644 --- a/cmd/spiderpool-agent/cmd/daemon.go +++ b/cmd/spiderpool-agent/cmd/daemon.go @@ -19,7 +19,7 @@ import ( "github.com/grafana/pyroscope-go" apiruntime "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/rest" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "github.com/spidernet-io/spiderpool/pkg/ipam" @@ -142,7 +142,7 @@ func DaemonMain() { AgentNamespace: agentContext.Cfg.AgentPodNamespace, } if len(agentContext.Cfg.MultusClusterNetwork) != 0 { - ipamConfig.MultusClusterNetwork = pointer.String(agentContext.Cfg.MultusClusterNetwork) + ipamConfig.MultusClusterNetwork = ptr.To(agentContext.Cfg.MultusClusterNetwork) } ipam, err := ipam.NewIPAM( ipamConfig, diff --git a/cmd/spiderpool-init/cmd/config.go b/cmd/spiderpool-init/cmd/config.go index b64958feac..2fabb12fb3 100644 --- a/cmd/spiderpool-init/cmd/config.go +++ b/cmd/spiderpool-init/cmd/config.go @@ -11,7 +11,7 @@ import ( "github.com/containernetworking/cni/libcni" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" coordinatorcmd "github.com/spidernet-io/spiderpool/cmd/coordinator/cmd" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -363,8 +363,8 @@ func getMultusCniConfig(cniName, cniType string, ns string) *spiderpoolv2beta1.S Annotations: annotations, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(cniType), - EnableCoordinator: pointer.Bool(false), + CniType: ptr.To(cniType), + EnableCoordinator: ptr.To(false), }, } } diff --git a/cmd/spiderpool-init/cmd/root.go b/cmd/spiderpool-init/cmd/root.go index 283d9f2f2d..83fb319e74 100644 --- a/cmd/spiderpool-init/cmd/root.go +++ b/cmd/spiderpool-init/cmd/root.go @@ -9,7 +9,7 @@ import ( "go.uber.org/zap" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" spiderpoolv2beta1 "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" @@ -65,13 +65,13 @@ func Execute() { Name: config.V4SubnetName, }, Spec: spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: config.V4CIDR, IPs: config.V4IPRanges, }, } if len(config.V4Gateway) != 0 { - subnet.Spec.Gateway = pointer.String(config.V4Gateway) + subnet.Spec.Gateway = ptr.To(config.V4Gateway) } if err := client.WaitForSubnetCreated(ctx, subnet); err != nil { @@ -87,13 +87,13 @@ func Execute() { Name: config.V6SubnetName, }, Spec: spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(constant.IPv6), + IPVersion: ptr.To(constant.IPv6), Subnet: config.V6CIDR, IPs: config.V6IPRanges, }, } if len(config.V6Gateway) != 0 { - subnet.Spec.Gateway = pointer.String(config.V6Gateway) + subnet.Spec.Gateway = ptr.To(config.V6Gateway) } if err := client.WaitForSubnetCreated(ctx, subnet); err != nil { @@ -109,14 +109,14 @@ func Execute() { Name: config.V4IPPoolName, }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: config.V4CIDR, IPs: config.V4IPRanges, - Default: pointer.Bool(true), + Default: ptr.To(true), }, } if len(config.V4Gateway) != 0 { - ipPool.Spec.Gateway = pointer.String(config.V4Gateway) + ipPool.Spec.Gateway = ptr.To(config.V4Gateway) } if err := client.WaitForIPPoolCreated(ctx, ipPool); err != nil { @@ -132,14 +132,14 @@ func Execute() { Name: config.V6IPPoolName, }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv6), + IPVersion: ptr.To(constant.IPv6), Subnet: config.V6CIDR, IPs: config.V6IPRanges, - Default: pointer.Bool(true), + Default: ptr.To(true), }, } if len(config.V6Gateway) != 0 { - ipPool.Spec.Gateway = pointer.String(config.V6Gateway) + ipPool.Spec.Gateway = ptr.To(config.V6Gateway) } if err := client.WaitForIPPoolCreated(ctx, ipPool); err != nil { diff --git a/cmd/spiderpool/cmd/command_test.go b/cmd/spiderpool/cmd/command_test.go index a49a46039d..6e784989ca 100644 --- a/cmd/spiderpool/cmd/command_test.go +++ b/cmd/spiderpool/cmd/command_test.go @@ -20,7 +20,7 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "github.com/onsi/gomega/ghttp" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/api/v1/agent/models" "github.com/spidernet-io/spiderpool/api/v1/agent/server/restapi/connectivity" @@ -206,19 +206,19 @@ var _ = Describe("spiderpool plugin", Label("unittest", "ipam_plugin_test"), fun }, Ips: []*models.IPConfig{ { - Address: pointer.String("1.2.3.30/24"), + Address: ptr.To("1.2.3.30/24"), Gateway: "1.2.3.1", - Nic: pointer.String("eth0"), - Version: pointer.Int64(constant.IPv4), + Nic: ptr.To("eth0"), + Version: ptr.To(constant.IPv4), }, { - Address: pointer.String("fc00:f853:ccd:e793:f::fc/64"), + Address: ptr.To("fc00:f853:ccd:e793:f::fc/64"), Gateway: "fc00:f853:ccd:e793:f::2", - Nic: pointer.String("eth0"), - Version: pointer.Int64(constant.IPv6), + Nic: ptr.To("eth0"), + Version: ptr.To(constant.IPv6), }, }, - Routes: []*models.Route{{IfName: pointer.String("eth0"), Dst: pointer.String("15.5.6.0/24"), Gw: pointer.String("1.2.3.2")}}, + Routes: []*models.Route{{IfName: ptr.To("eth0"), Dst: ptr.To("15.5.6.0/24"), Gw: ptr.To("1.2.3.2")}}, } return ipamAddResp @@ -262,10 +262,10 @@ var _ = Describe("spiderpool plugin", Label("unittest", "ipam_plugin_test"), fun }, Ips: []*models.IPConfig{ { - Address: pointer.String("10.1.0.6/24"), + Address: ptr.To("10.1.0.6/24"), Gateway: "10.1.0.2", - Nic: pointer.String(ifName), - Version: pointer.Int64(constant.IPv4), + Nic: ptr.To(ifName), + Version: ptr.To(constant.IPv4), }, }, } @@ -301,9 +301,9 @@ var _ = Describe("spiderpool plugin", Label("unittest", "ipam_plugin_test"), fun DNS: &models.DNS{}, Ips: []*models.IPConfig{ { - Address: pointer.String("10.1.0.7/24"), - Nic: pointer.String(ifName), - Version: pointer.Int64(constant.IPv4), + Address: ptr.To("10.1.0.7/24"), + Nic: ptr.To(ifName), + Version: ptr.To(constant.IPv4), }, }, } diff --git a/docs/concepts/coordinator-zh_CN.md b/docs/concepts/coordinator-zh_CN.md index 27c9c2d66d..f084160be7 100644 --- a/docs/concepts/coordinator-zh_CN.md +++ b/docs/concepts/coordinator-zh_CN.md @@ -150,6 +150,65 @@ spec: txQueueLen: 2000 ``` +## 自动获取集群 Service 的 CIDR + +Kubernetes 1.29 开始支持以 ServiceCIDR 资源的方式配置集群 Service 的 CIDR,更多信息参考 [KEP 1880](https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/1880-multiple-service-cidrs/README.md)。如果您的集群支持 ServiceCIDR,Spiderpool-controller 组件 自动监听 ServiceCIDR 资源的变化,将读取到的 Service 子网信息自动更新到 Spidercoordinator 的 Status 中。 + +```shell +~# kubectl get servicecidr kubernetes -o yaml +apiVersion: networking.k8s.io/v1alpha1 +kind: ServiceCIDR +metadata: + creationTimestamp: "2024-01-25T08:36:00Z" + finalizers: + - networking.k8s.io/service-cidr-finalizer + name: kubernetes + resourceVersion: "504422" + uid: 72461b7d-fddd-409d-bdf2-83d1a2c067ca +spec: + cidrs: + - 10.233.0.0/18 + - fd00:10:233::/116 +status: + conditions: + - lastTransitionTime: "2024-01-28T06:38:55Z" + message: Kubernetes Service CIDR is ready + reason: "" + status: "True" + type: Ready + +~# kubectl get spidercoordinators.spiderpool.spidernet.io default -o yaml +apiVersion: spiderpool.spidernet.io/v2beta1 +kind: SpiderCoordinator +metadata: + creationTimestamp: "2024-01-25T08:41:50Z" + finalizers: + - spiderpool.spidernet.io + generation: 1 + name: default + resourceVersion: "41645" + uid: d1e095db-d6e8-4413-b60e-fcf31ad2bf5e +spec: + detectGateway: false + detectIPConflict: false + hijackCIDR: + - 10.244.64.0/18 + - fd00:10:244::/112 + hostRPFilter: 0 + hostRuleTable: 500 + mode: auto + podCIDRType: auto + podDefaultRouteNIC: "" + podMACPrefix: "" + tunePodRoutes: true + txQueueLen: 0 +status: + phase: Synced + serviceCIDR: + - 10.233.0.0/18 + - fd00:10:233::/116 +``` + ## 已知问题 - underlay 模式下,underlay Pod 与 Overlay Pod(calico or cilium) 进行 TCP 通信失败 diff --git a/docs/concepts/coordinator.md b/docs/concepts/coordinator.md index 91ef067dd5..e2e588c3e8 100644 --- a/docs/concepts/coordinator.md +++ b/docs/concepts/coordinator.md @@ -152,6 +152,65 @@ spec: txQueueLen: 2000 ``` +## Automatically get the CIDR of a clustered Service + +Kubernetes 1.29 starts to support configuring the CIDR of a clustered Service as a ServiceCIDR resource, for more information refer to [KEP 1880](https://github.com/kubernetes/enhancements/blob/master/keps/ sig-network/1880-multiple-service-cidrs/README.md). If your cluster supports ServiceCIDR, the Spiderpool-controller component automatically listens for changes to the ServiceCIDR resource and automatically updates the Service subnet information it reads into the Status of the Spidercoordinator. + +```shell +~# kubectl get servicecidr kubernetes -o yaml +apiVersion: networking.k8s.io/v1alpha1 +kind: ServiceCIDR +metadata: + creationTimestamp: "2024-01-25T08:36:00Z" + finalizers: + - networking.k8s.io/service-cidr-finalizer + name: kubernetes + resourceVersion: "504422" + uid: 72461b7d-fddd-409d-bdf2-83d1a2c067ca +spec: + cidrs: + - 10.233.0.0/18 + - fd00:10:233::/116 +status: + conditions: + - lastTransitionTime: "2024-01-28T06:38:55Z" + message: Kubernetes Service CIDR is ready + reason: "" + status: "True" + type: Ready + +~# kubectl get spidercoordinators.spiderpool.spidernet.io default -o yaml +apiVersion: spiderpool.spidernet.io/v2beta1 +kind: SpiderCoordinator +metadata: + creationTimestamp: "2024-01-25T08:41:50Z" + finalizers: + - spiderpool.spidernet.io + generation: 1 + name: default + resourceVersion: "41645" + uid: d1e095db-d6e8-4413-b60e-fcf31ad2bf5e +spec: + detectGateway: false + detectIPConflict: false + hijackCIDR: + - 10.244.64.0/18 + - fd00:10:244::/112 + hostRPFilter: 0 + hostRuleTable: 500 + mode: auto + podCIDRType: auto + podDefaultRouteNIC: "" + podMACPrefix: "" + tunePodRoutes: true + txQueueLen: 0 +status: + phase: Synced + serviceCIDR: + - 10.233.0.0/18 + - fd00:10:233::/116 +``` + ## Known issues - Underlay mode: TCP communication between underlay Pods and overlay Pods (Calico or Cilium) fails diff --git a/docs/develop/roadmap.md b/docs/develop/roadmap.md index 67cb379fd1..5ff38b51f9 100644 --- a/docs/develop/roadmap.md +++ b/docs/develop/roadmap.md @@ -34,6 +34,9 @@ | CNI version | cni v1.0.0 | v0.4.0 | v0.5.0 | | | ifacer | bond interface | v0.6.0 | v0.8.0 | | | | vlan interface | v0.6.0 | v0.8.0 | | +| SpiderCoordinator | Sync podCIDR for calico | v0.6.0 | v0.8.0 +| | Sync podCIDR for cilium | v0.6.0 | v0.8.0 +| | sync clusterIP CIDR from serviceCIDR to support k8s 1.29 | | v0.10.0 | | Coordinator | support underlay mode | v0.6.0 | v0.7.0 | | | | support overlay mode | v0.6.0 | v0.8.0 | | | | CRD spidercoordinators for multus configuration | v0.6.0 | v0.8.0 | | diff --git a/go.mod b/go.mod index f193e0b3e7..b415eab0ca 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/sasha-s/go-deadlock v0.3.1 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - github.com/spidernet-io/e2eframework v0.0.0-20231218105341-1c8a58f971b5 + github.com/spidernet-io/e2eframework v0.0.0-20240127082814-64fbda07e655 github.com/tigera/operator v1.32.4 github.com/vishvananda/netlink v1.2.1-beta.2.0.20230621221334-77712cff8739 go.opentelemetry.io/otel v1.21.0 diff --git a/go.sum b/go.sum index 0cb6f151a3..7d10682404 100644 --- a/go.sum +++ b/go.sum @@ -509,8 +509,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= -github.com/spidernet-io/e2eframework v0.0.0-20231218105341-1c8a58f971b5 h1:oKhkpiVOognuXejQ0qjzJ1goCYbtB7QALDrXcrSd4JU= -github.com/spidernet-io/e2eframework v0.0.0-20231218105341-1c8a58f971b5/go.mod h1:hfCPYyT5sIQUe22Hz1E7QiJ2ugm8fxAbN1o1AtaIaNc= +github.com/spidernet-io/e2eframework v0.0.0-20240127082814-64fbda07e655 h1:l0ZpCKTS/rj1RF0TnbtJBOMyKRt7iurvn7tHm3RUBQM= +github.com/spidernet-io/e2eframework v0.0.0-20240127082814-64fbda07e655/go.mod h1:k0KYxyNjZYyEG1bsGzSbMx5Q+Z1H6oOjEq5qz9UlBzY= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= diff --git a/pkg/applicationcontroller/app_controller_test.go b/pkg/applicationcontroller/app_controller_test.go index 2136e22710..7056731c01 100644 --- a/pkg/applicationcontroller/app_controller_test.go +++ b/pkg/applicationcontroller/app_controller_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "github.com/spidernet-io/spiderpool/pkg/applicationcontroller/applicationinformers" @@ -49,7 +49,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { UID: types.UID("123"), }, Spec: appsv1.DeploymentSpec{ - Replicas: pointer.Int32(1), + Replicas: ptr.To(int32(1)), Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ @@ -71,7 +71,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { UID: types.UID("123"), }, Spec: appsv1.ReplicaSetSpec{ - Replicas: pointer.Int32(1), + Replicas: ptr.To(int32(1)), Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ @@ -114,7 +114,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { UID: types.UID("123"), }, Spec: appsv1.StatefulSetSpec{ - Replicas: pointer.Int32(1), + Replicas: ptr.To(int32(1)), Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ @@ -508,7 +508,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { It("change deployment replicas with spider subnet annotation", func() { deployment2 := deployment1.DeepCopy() - deployment2.Spec.Replicas = pointer.Int32(2) + deployment2.Spec.Replicas = ptr.To(int32(2)) err := reconcileFunc(ctx, deployment1, deployment2) Expect(err).NotTo(HaveOccurred()) }) @@ -548,7 +548,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { It("change replicaSet replicas with spider subnet annotation", func() { replicaSet2 := replicaSet1.DeepCopy() - replicaSet2.Spec.Replicas = pointer.Int32(2) + replicaSet2.Spec.Replicas = ptr.To(int32(2)) err := reconcileFunc(ctx, replicaSet1, replicaSet2) Expect(err).NotTo(HaveOccurred()) }) @@ -635,7 +635,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { It("change statefulset replicas with spider subnet annotation", func() { statefulSet2 := statefulSet1.DeepCopy() - statefulSet2.Spec.Replicas = pointer.Int32(2) + statefulSet2.Spec.Replicas = ptr.To(int32(2)) err := reconcileFunc(ctx, statefulSet1, statefulSet2) Expect(err).NotTo(HaveOccurred()) }) @@ -675,7 +675,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { It("change job replicas with spider subnet annotation", func() { job2 := job1.DeepCopy() - job2.Spec.Parallelism = pointer.Int32(2) + job2.Spec.Parallelism = ptr.To(int32(2)) err := reconcileFunc(ctx, job1, job2) Expect(err).NotTo(HaveOccurred()) }) @@ -722,7 +722,7 @@ var _ = Describe("AppController", Label("app_controller_test"), func() { It("change cronJob replicas with spider subnet annotation", func() { cronJob2 := cronJob1.DeepCopy() - cronJob2.Spec.JobTemplate.Spec.Parallelism = pointer.Int32(3) + cronJob2.Spec.JobTemplate.Spec.Parallelism = ptr.To(int32(3)) err := reconcileFunc(ctx, cronJob1, cronJob2) Expect(err).NotTo(HaveOccurred()) }) diff --git a/pkg/applicationcontroller/applicationinformers/utils.go b/pkg/applicationcontroller/applicationinformers/utils.go index 530642bee0..4e2c798a09 100644 --- a/pkg/applicationcontroller/applicationinformers/utils.go +++ b/pkg/applicationcontroller/applicationinformers/utils.go @@ -24,7 +24,7 @@ import ( apitypes "k8s.io/apimachinery/pkg/types" k8svalidation "k8s.io/apimachinery/pkg/util/validation" "k8s.io/client-go/dynamic" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "k8s.io/utils/strings/slices" "sigs.k8s.io/controller-runtime/pkg/client" @@ -224,13 +224,13 @@ func GetSubnetAnnoConfig(podAnnotations map[string]string, log *zap.Logger) (*ty } if isFlexible { - subnetAnnoConfig.FlexibleIPNum = pointer.Int(ipNum) + subnetAnnoConfig.FlexibleIPNum = ptr.To(ipNum) } else { subnetAnnoConfig.AssignIPNum = ipNum } } else { log.Sugar().Debugf("no specified IPPool IP number, default to use cluster default subnet flexible IP number: %d", *ClusterSubnetDefaultFlexibleIPNumber) - subnetAnnoConfig.FlexibleIPNum = pointer.Int(*ClusterSubnetDefaultFlexibleIPNumber) + subnetAnnoConfig.FlexibleIPNum = ptr.To(*ClusterSubnetDefaultFlexibleIPNumber) } // annotation: "ipam.spidernet.io/reclaim-ippool", reclaim IPPool or not (default true) diff --git a/pkg/applicationcontroller/applicationinformers/utils_test.go b/pkg/applicationcontroller/applicationinformers/utils_test.go index 0b848d451d..0ef533f35a 100644 --- a/pkg/applicationcontroller/applicationinformers/utils_test.go +++ b/pkg/applicationcontroller/applicationinformers/utils_test.go @@ -15,7 +15,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" apitypes "k8s.io/apimachinery/pkg/types" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" spiderpoolip "github.com/spidernet-io/spiderpool/pkg/ip" @@ -157,7 +157,7 @@ var _ = Describe("Utils", func() { It("GetAppReplicas", Label("unittest", "GetAppReplicas"), func() { Expect(GetAppReplicas(nil)).To(Equal(0)) - Expect(GetAppReplicas(pointer.Int32(4))).To(Equal(4)) + Expect(GetAppReplicas(ptr.To(int32(4)))).To(Equal(4)) }) Context("GenSubnetFreeIPs", Label("unittest", "GenSubnetFreeIPs"), func() { @@ -166,7 +166,7 @@ var _ = Describe("Utils", func() { BeforeEach(func() { subnet = spiderpoolv2beta1.SpiderSubnet{ Spec: spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), IPs: []string{ "10.0.0.10-10.0.0.100", "10.0.1.10-10.0.1.101", @@ -187,8 +187,8 @@ var _ = Describe("Utils", func() { pools, err := convert.MarshalSubnetAllocatedIPPools(controlledIPPools) Expect(err).NotTo(HaveOccurred()) subnet.Status.ControlledIPPools = pools - subnet.Status.TotalIPCount = pointer.Int64(182) - subnet.Status.AllocatedIPCount = pointer.Int64(91) + subnet.Status.TotalIPCount = ptr.To(int64(182)) + subnet.Status.AllocatedIPCount = ptr.To(int64(91)) }) It("failed to unmarshal SpiderSubnet status", func() { @@ -453,29 +453,29 @@ var _ = Describe("Utils", func() { var jobSpecParallelism, jobSpecCompletions *int32 It("jobSpecParallelism not nil", func() { - jobSpecParallelism = pointer.Int32(0) + jobSpecParallelism = ptr.To(int32(0)) jobSpecCompletions = nil Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(1))) - jobSpecParallelism = pointer.Int32(2) + jobSpecParallelism = ptr.To(int32(2)) Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(2))) }) It("jobSpecCompletions not nil", func() { jobSpecParallelism = nil - jobSpecCompletions = pointer.Int32(0) + jobSpecCompletions = ptr.To(int32(0)) Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(1))) - jobSpecCompletions = pointer.Int32(2) + jobSpecCompletions = ptr.To(int32(2)) Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(2))) }) It("both not nil", func() { - jobSpecParallelism = pointer.Int32(3) - jobSpecCompletions = pointer.Int32(0) + jobSpecParallelism = ptr.To(int32(3)) + jobSpecCompletions = ptr.To(int32(0)) Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(1))) - jobSpecCompletions = pointer.Int32(2) + jobSpecCompletions = ptr.To(int32(2)) Expect(CalculateJobPodNum(jobSpecParallelism, jobSpecCompletions)).To(Equal(int(2))) }) diff --git a/pkg/coordinatormanager/coordinator_informer.go b/pkg/coordinatormanager/coordinator_informer.go index f28e1e25b2..5e60066deb 100644 --- a/pkg/coordinatormanager/coordinator_informer.go +++ b/pkg/coordinatormanager/coordinator_informer.go @@ -77,7 +77,8 @@ type CoordinatorController struct { APIReader client.Reader coordinatorName atomic.Value - caliCtrlCanncel context.CancelFunc + caliCtrlCanncel context.CancelFunc + serviceCtrlCancel context.CancelFunc CoordinatorLister spiderlisters.SpiderCoordinatorLister ConfigmapLister corelister.ConfigMapLister @@ -356,13 +357,13 @@ func (cc *CoordinatorController) fetchPodAndServerCIDR(ctx context.Context, logg } var err error - var cm *corev1.ConfigMap + var cm corev1.ConfigMap var k8sPodCIDR, k8sServiceCIDR []string - if err := cc.APIReader.Get(ctx, types.NamespacedName{Namespace: metav1.NamespaceSystem, Name: "kubeadm-config"}, cm); err == nil && cm != nil { + if err := cc.APIReader.Get(ctx, types.NamespacedName{Namespace: metav1.NamespaceSystem, Name: "kubeadm-config"}, &cm); err == nil { logger.Sugar().Infof("Trying to fetch the ClusterCIDR from kube-system/kubeadm-config") - k8sPodCIDR, k8sServiceCIDR = ExtractK8sCIDRFromKubeadmConfigMap(cm) + k8sPodCIDR, k8sServiceCIDR = ExtractK8sCIDRFromKubeadmConfigMap(&cm) } else { - logger.Sugar().Warn("kube-system/kubeadm-config is no found, trying to fetch the ClusterCIDR from kube-controller-manager Pod") + logger.Sugar().Warnf("failed to get kube-system/kubeadm-config: %v, trying to fetch the ClusterCIDR from kube-controller-manager", err) var cmPodList corev1.PodList err = cc.APIReader.List(ctx, &cmPodList, client.MatchingLabels{"component": "kube-controller-manager"}) if err != nil { @@ -389,10 +390,12 @@ func (cc *CoordinatorController) fetchPodAndServerCIDR(ctx context.Context, logg coordCopy.Status.OverlayPodCIDR = k8sPodCIDR case calico: if err = cc.fetchCalicoIPPools(ctx, logger, coordCopy); err != nil { + coordCopy.Status.Phase = NotReady return coordCopy, err } case cilium: if err = cc.fetchCiliumCIDR(ctx, logger, k8sPodCIDR, coordCopy); err != nil { + coordCopy.Status.Phase = NotReady return coordCopy, err } case none: @@ -400,10 +403,10 @@ func (cc *CoordinatorController) fetchPodAndServerCIDR(ctx context.Context, logg coordCopy.Status.OverlayPodCIDR = []string{} } - //if we can find out the serviceCIDR(any errors), start a goroutine to sync the serviceCIDR + // if we can find out the serviceCIDR(any errors), start a goroutine to sync the serviceCIDR // else we use k8sServiceCIDR if err = cc.fetchServiceCIDR(ctx, logger, coordCopy); err != nil { - logger.Info("serviceCIDR isn't available, sync service cidr from kubeadm-config or kube-controller-manager pod") + logger.Sugar().Warnf("failed to fetch ServiceCIDR: %v, sync service cidr from kubeadm-config or kube-controller-manager pod", err) coordCopy.Status.ServiceCIDR = k8sServiceCIDR } @@ -543,6 +546,12 @@ func (cc *CoordinatorController) fetchCiliumCIDR(ctx context.Context, logger *za } func (cc *CoordinatorController) fetchServiceCIDR(ctx context.Context, logger *zap.Logger, coordCopy *spiderpoolv2beta1.SpiderCoordinator) error { + // close previous goroutine to admit goroutine leak + if cc.serviceCtrlCancel != nil { + cc.serviceCtrlCancel() + cc.serviceCtrlCancel = nil + } + var serviceCIDR networkingv1.ServiceCIDRList err := cc.APIReader.List(ctx, &serviceCIDR) if err != nil && meta.IsNoMatchError(err) { @@ -555,28 +564,22 @@ func (cc *CoordinatorController) fetchServiceCIDR(ctx context.Context, logger *z return err } - if cc.caliCtrlCanncel != nil { - cc.caliCtrlCanncel() - cc.caliCtrlCanncel = nil - } - var serviceCIDRController controller.Controller - serviceCIDRController, err = NewServiceCIDRController(cc.Manager, coordCopy.Name) + serviceCIDRController, err = NewServiceCIDRController(cc.Manager, logger, coordCopy.Name) if err != nil { - setStatus2NoReady(logger, coordCopy) return err } - ctx, cc.caliCtrlCanncel = context.WithCancel(ctx) + ctx, cc.serviceCtrlCancel = context.WithCancel(ctx) go func() { logger.Info("Starting ServiceCIDR controller") if err := serviceCIDRController.Start(ctx); err != nil { logger.Sugar().Errorf("Failed to start ServiceCIDR controller: %v", err) } logger.Info("Shutdown ServiceCIDR controller") - if cc.caliCtrlCanncel != nil { - cc.caliCtrlCanncel() - cc.caliCtrlCanncel = nil + if cc.serviceCtrlCancel != nil { + cc.serviceCtrlCancel() + cc.serviceCtrlCancel = nil } }() diff --git a/pkg/coordinatormanager/coordinator_mutate.go b/pkg/coordinatormanager/coordinator_mutate.go index e2e8380fdf..1179dafa0a 100644 --- a/pkg/coordinatormanager/coordinator_mutate.go +++ b/pkg/coordinatormanager/coordinator_mutate.go @@ -9,7 +9,7 @@ import ( "net/netip" "strings" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -24,26 +24,26 @@ func mutateCoordinator(ctx context.Context, coord *spiderpoolv2beta1.SpiderCoord logger.Info("Start to mutate Coordinator") if coord.Spec.Mode == nil { - coord.Spec.Mode = pointer.String(string(coordinator_cmd.ModeAuto)) + coord.Spec.Mode = ptr.To(string(coordinator_cmd.ModeAuto)) } if coord.Spec.TunePodRoutes == nil { - coord.Spec.TunePodRoutes = pointer.Bool(true) + coord.Spec.TunePodRoutes = ptr.To(true) } if coord.Spec.HostRuleTable == nil { - coord.Spec.HostRuleTable = pointer.Int(500) + coord.Spec.HostRuleTable = ptr.To(500) } if coord.Spec.HostRPFilter == nil { - coord.Spec.HostRPFilter = pointer.Int(0) + coord.Spec.HostRPFilter = ptr.To(0) } if coord.Spec.DetectIPConflict == nil { - coord.Spec.DetectIPConflict = pointer.Bool(false) + coord.Spec.DetectIPConflict = ptr.To(false) } if coord.Spec.DetectGateway == nil { - coord.Spec.DetectGateway = pointer.Bool(false) + coord.Spec.DetectGateway = ptr.To(false) } if coord.Spec.TxQueueLen == nil { - coord.Spec.TxQueueLen = pointer.Int(0) + coord.Spec.TxQueueLen = ptr.To(0) } if coord.DeletionTimestamp != nil { diff --git a/pkg/coordinatormanager/service_cidr_informer.go b/pkg/coordinatormanager/service_cidr_informer.go index 0d7cfb2709..c833fa6cdf 100644 --- a/pkg/coordinatormanager/service_cidr_informer.go +++ b/pkg/coordinatormanager/service_cidr_informer.go @@ -8,6 +8,7 @@ import ( "fmt" "reflect" + "go.uber.org/zap" networkingv1 "k8s.io/api/networking/v1alpha1" "k8s.io/apimachinery/pkg/types" ctrl "sigs.k8s.io/controller-runtime" @@ -20,7 +21,7 @@ import ( spiderpoolv2beta1 "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" ) -func NewServiceCIDRController(mgr ctrl.Manager, coordinatorName string) (controller.Controller, error) { +func NewServiceCIDRController(mgr ctrl.Manager, logger *zap.Logger, coordinatorName string) (controller.Controller, error) { if mgr == nil { return nil, fmt.Errorf("controller-runtime manager %w", constant.ErrMissingRequiredParam) } @@ -30,6 +31,7 @@ func NewServiceCIDRController(mgr ctrl.Manager, coordinatorName string) (control r := &serviceCIDRReconciler{ client: mgr.GetClient(), + logger: logger, coordinatorName: coordinatorName, } @@ -46,17 +48,18 @@ func NewServiceCIDRController(mgr ctrl.Manager, coordinatorName string) (control type serviceCIDRReconciler struct { client client.Client + logger *zap.Logger coordinatorName string } func (r *serviceCIDRReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - var ipPoolList networkingv1.ServiceCIDRList - if err := r.client.List(ctx, &ipPoolList); err != nil { + var svcPoolList networkingv1.ServiceCIDRList + if err := r.client.List(ctx, &svcPoolList); err != nil { return ctrl.Result{Requeue: true}, err } - serviceCIDR := make([]string, 0, len(ipPoolList.Items)) - for _, p := range ipPoolList.Items { + serviceCIDR := make([]string, 0, len(svcPoolList.Items)) + for _, p := range svcPoolList.Items { if p.DeletionTimestamp == nil { serviceCIDR = append(serviceCIDR, p.Spec.CIDRs...) } @@ -74,6 +77,8 @@ func (r *serviceCIDRReconciler) Reconcile(ctx context.Context, req ctrl.Request) origin := coordinator.DeepCopy() coordinator.Status.Phase = Synced coordinator.Status.ServiceCIDR = serviceCIDR + + r.logger.Sugar().Infof("try to patch spidercoordinator serviceCIDR(%v) to %v", origin.Status.ServiceCIDR, serviceCIDR) if err := r.client.Status().Patch(ctx, &coordinator, client.MergeFrom(origin)); err != nil { return ctrl.Result{Requeue: true}, err } diff --git a/pkg/ippoolmanager/ippool_informer.go b/pkg/ippoolmanager/ippool_informer.go index 133dfe5843..61b7a22012 100644 --- a/pkg/ippoolmanager/ippool_informer.go +++ b/pkg/ippoolmanager/ippool_informer.go @@ -18,7 +18,7 @@ import ( "k8s.io/client-go/dynamic" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -312,7 +312,7 @@ func (ic *IPPoolController) syncHandler(ctx context.Context, pool *spiderpoolv2b // initial the original data if pool.Status.AllocatedIPCount == nil { needUpdate = true - pool.Status.AllocatedIPCount = pointer.Int64(0) + pool.Status.AllocatedIPCount = ptr.To(int64(0)) informerLogger.Sugar().Infof("initial SpiderIPPool '%s' status AllocatedIPCount to 0", pool.Name) } @@ -323,7 +323,7 @@ func (ic *IPPoolController) syncHandler(ctx context.Context, pool *spiderpoolv2b if pool.Status.TotalIPCount == nil || *pool.Status.TotalIPCount != int64(len(totalIPs)) { needUpdate = true - pool.Status.TotalIPCount = pointer.Int64(int64(len(totalIPs))) + pool.Status.TotalIPCount = ptr.To(int64(len(totalIPs))) } if needUpdate { diff --git a/pkg/ippoolmanager/ippool_informer_test.go b/pkg/ippoolmanager/ippool_informer_test.go index fb4a974c15..605bea4711 100644 --- a/pkg/ippoolmanager/ippool_informer_test.go +++ b/pkg/ippoolmanager/ippool_informer_test.go @@ -17,7 +17,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" dynamicfake "k8s.io/client-go/dynamic/fake" "k8s.io/client-go/tools/cache" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client/fake" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -49,14 +49,14 @@ var _ = Describe("IPPool-informer", Label("unittest"), Ordered, func() { Labels: map[string]string{}, }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), Subnet: "10.1.0.0/16", IPs: []string{"10.1.0.1-10.1.0.10"}, }, Status: spiderpoolv2beta1.IPPoolStatus{ AllocatedIPs: nil, - TotalIPCount: pointer.Int64(10), - AllocatedIPCount: pointer.Int64(0), + TotalIPCount: ptr.To(int64(10)), + AllocatedIPCount: ptr.To(int64(0)), }, } }) diff --git a/pkg/ippoolmanager/ippool_manager_test.go b/pkg/ippoolmanager/ippool_manager_test.go index 873eaaee9b..f80b31b88d 100644 --- a/pkg/ippoolmanager/ippool_manager_test.go +++ b/pkg/ippoolmanager/ippool_manager_test.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/client-go/tools/cache" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" kubevirtv1 "kubevirt.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/client" @@ -111,7 +111,7 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -276,7 +276,7 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { Return(nil, constant.ErrUnknown). Times(1) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.40") err := fakeClient.Create(ctx, ipPoolT) @@ -298,7 +298,7 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { patches := gomonkey.ApplyMethodReturn(fakeClient.Status(), "Update", constant.ErrUnknown) defer patches.Reset() - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.40") err := fakeClient.Create(ctx, ipPoolT) @@ -320,7 +320,7 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { patches := gomonkey.ApplyMethodReturn(fakeClient.Status(), "Update", apierrors.NewConflict(schema.GroupResource{Resource: "test"}, "other", nil)) defer patches.Reset() - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.40") err := fakeClient.Create(ctx, ipPoolT) @@ -346,10 +346,10 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { ip, ipNet, err := net.ParseCIDR(allocatedIP) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = ipNet.String() ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, ip.String()) - ipPoolT.Spec.Gateway = pointer.String(gateway) + ipPoolT.Spec.Gateway = ptr.To(gateway) err = fakeClient.Create(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -379,10 +379,10 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { ip, ipNet, err := net.ParseCIDR(allocatedIP) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = ipNet.String() ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, ip.String()) - ipPoolT.Spec.Gateway = pointer.String(gateway) + ipPoolT.Spec.Gateway = ptr.To(gateway) err = fakeClient.Create(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -423,10 +423,10 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { ip, ipNet, err := net.ParseCIDR(allocatedIP) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = ipNet.String() ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, ip.String()) - ipPoolT.Spec.Gateway = pointer.String(gateway) + ipPoolT.Spec.Gateway = ptr.To(gateway) key, err := cache.MetaNamespaceKeyFunc(podT) Expect(err).NotTo(HaveOccurred()) @@ -441,9 +441,9 @@ var _ = Describe("IPPoolManager", Label("ippool_manager_test"), func() { Expect(err).NotTo(HaveOccurred()) ipPoolT.Status = spiderpoolv2beta1.IPPoolStatus{ - AllocatedIPs: pointer.String(string(allocatedIPs)), - TotalIPCount: pointer.Int64(1), - AllocatedIPCount: pointer.Int64(1), + AllocatedIPs: ptr.To(string(allocatedIPs)), + TotalIPCount: ptr.To(int64(1)), + AllocatedIPCount: ptr.To(int64(1)), } err = fakeClient.Create(ctx, ipPoolT) diff --git a/pkg/ippoolmanager/ippool_mutate.go b/pkg/ippoolmanager/ippool_mutate.go index 081ed80864..520d2e8227 100644 --- a/pkg/ippoolmanager/ippool_mutate.go +++ b/pkg/ippoolmanager/ippool_mutate.go @@ -9,7 +9,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -145,7 +145,7 @@ func (iw *IPPoolWebhook) setControllerSubnet(ctx context.Context, ipPool *spider func InheritSubnetProperties(subnet *spiderpoolv2beta1.SpiderSubnet, ipPool *spiderpoolv2beta1.SpiderIPPool) { if subnet.Spec.Gateway != nil && ipPool.Spec.Gateway == nil { - ipPool.Spec.Gateway = pointer.String(*subnet.Spec.Gateway) + ipPool.Spec.Gateway = ptr.To(*subnet.Spec.Gateway) } // if customer set empty route for this IPPool, it would not inherit the SpiderSubnet.Spec.Routes diff --git a/pkg/ippoolmanager/ippool_webhook_test.go b/pkg/ippoolmanager/ippool_webhook_test.go index 6637e9def1..e356e43ce8 100644 --- a/pkg/ippoolmanager/ippool_webhook_test.go +++ b/pkg/ippoolmanager/ippool_webhook_test.go @@ -16,7 +16,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/config" @@ -110,7 +110,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -177,7 +177,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to parse 'spec.subnet' as a valid label value", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + ipPoolT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) ipPoolT.Spec.Subnet = "172.18.40.0/24" err := ipPoolWebhook.Default(ctx, ipPoolT) @@ -228,7 +228,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) subnetT.Labels[constant.LabelSubnetCIDR] = cidr - subnetT.Spec.IPVersion = pointer.Int64(ipVersion) + subnetT.Spec.IPVersion = ptr.To(ipVersion) subnetT.Spec.Subnet = subnet subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -265,7 +265,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) subnetT.Labels[constant.LabelSubnetCIDR] = cidr - subnetT.Spec.IPVersion = pointer.Int64(ipVersion) + subnetT.Spec.IPVersion = ptr.To(ipVersion) subnetT.Spec.Subnet = subnet subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -299,7 +299,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) subnetT.Labels[constant.LabelSubnetCIDR] = cidr - subnetT.Spec.IPVersion = pointer.Int64(ipVersion) + subnetT.Spec.IPVersion = ptr.To(ipVersion) subnetT.Spec.Subnet = subnet subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -351,7 +351,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ipVersion'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + ipPoolT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -373,7 +373,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -437,7 +437,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to merge 'spec.excludeIPs' due to the invalid 'spec.ipVersion'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + ipPoolT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, []string{ @@ -459,7 +459,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to merge 'spec.excludeIPs' due to the invalid 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, []string{ @@ -532,7 +532,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) subnetT.Labels[constant.LabelSubnetCIDR] = cidr - subnetT.Spec.IPVersion = pointer.Int64(ipVersion) + subnetT.Spec.IPVersion = ptr.To(ipVersion) subnetT.Spec.Subnet = subnet subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -541,7 +541,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }..., ) - subnetT.Spec.Gateway = pointer.String("172.18.50.0") + subnetT.Spec.Gateway = ptr.To("172.18.50.0") subnetT.Spec.Routes = []spiderpoolv2beta1.Route{ { Dst: "0.0.0.0/0", @@ -585,7 +585,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs invalid 'spec.ipVersion'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + ipPoolT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -601,7 +601,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("creates IPv4 IPPool but IPv4 is disbale'", func() { ipPoolWebhook.EnableIPv4 = false - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -617,7 +617,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("creates IPv6 IPPool but IPv6 is disbale'", func() { ipPoolWebhook.EnableIPv6 = false - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv6) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv6) ipPoolT.Spec.Subnet = "adbc:1234::/120" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -634,7 +634,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.subnet'", func() { It("inputs invalid 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = constant.InvalidCIDR ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -652,7 +652,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { patches := gomonkey.ApplyMethodReturn(fakeClient, "List", constant.ErrUnknown) defer patches.Reset() - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -667,7 +667,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("creates an existing IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -685,14 +685,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("creates an IPPool with the same 'spec.subnet'", func() { - existIPPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + existIPPoolT.Spec.IPVersion = ptr.To(constant.IPv4) existIPPoolT.Spec.Subnet = "172.18.40.0/24" existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, "172.18.41.1-172.18.41.2") err := tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.10") @@ -702,14 +702,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("failed to compare 'spec.subnet' with existing Subnet", func() { - existIPPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + existIPPoolT.Spec.IPVersion = ptr.To(constant.IPv4) existIPPoolT.Spec.Subnet = constant.InvalidCIDR existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, "172.18.41.1-172.18.41.2") err := tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -724,14 +724,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("overlaps with existing Subnet", func() { - existIPPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + existIPPoolT.Spec.IPVersion = ptr.To(constant.IPv4) existIPPoolT.Spec.Subnet = "172.18.40.0/25" existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, "172.18.40.40") err := tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -748,9 +748,9 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.default'", func() { It("creates non-default IPv4 IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" - ipPoolT.Spec.Default = pointer.Bool(false) + ipPoolT.Spec.Default = ptr.To(false) warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -758,9 +758,9 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("creates default IPv4 IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" - ipPoolT.Spec.Default = pointer.Bool(true) + ipPoolT.Spec.Default = ptr.To(true) warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -770,7 +770,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("inputs invalid 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, constant.InvalidIPRange) @@ -780,7 +780,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs 'spec.ips' that do not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -795,7 +795,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("is a empty IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) @@ -811,14 +811,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(cidr).NotTo(BeEmpty()) existIPPoolT.Labels[constant.LabelIPPoolCIDR] = cidr - existIPPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + existIPPoolT.Spec.IPVersion = ptr.To(ipVersion) existIPPoolT.Spec.Subnet = subnet existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, constant.InvalidIPRange) err = tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = subnet ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -840,14 +840,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(cidr).NotTo(BeEmpty()) existIPPoolT.Labels[constant.LabelIPPoolCIDR] = cidr - existIPPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + existIPPoolT.Spec.IPVersion = ptr.To(ipVersion) existIPPoolT.Spec.Subnet = subnet existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, "172.18.40.10") err = tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = subnet ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -864,7 +864,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.excludeIPs'", func() { It("inputs invalid 'spec.excludeIPs'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -880,7 +880,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs 'spec.excludeIPs' that do not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -898,7 +898,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.gateway'", func() { It("inputs invalid 'spec.gateway'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -906,7 +906,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { "172.18.40.10", }..., ) - ipPoolT.Spec.Gateway = pointer.String(constant.InvalidIP) + ipPoolT.Spec.Gateway = ptr.To(constant.InvalidIP) warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -914,7 +914,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs 'spec.gateway' that do not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -922,7 +922,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { "172.18.40.10", }..., ) - ipPoolT.Spec.Gateway = pointer.String("172.18.41.1") + ipPoolT.Spec.Gateway = ptr.To("172.18.41.1") warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -930,7 +930,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("duplicate with 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -938,7 +938,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { "172.18.40.10", }..., ) - ipPoolT.Spec.Gateway = pointer.String("172.18.40.1") + ipPoolT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -946,7 +946,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("excludes gateway address through 'spec.excludeIPs'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -955,7 +955,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }..., ) ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, "172.18.40.1") - ipPoolT.Spec.Gateway = pointer.String("172.18.40.1") + ipPoolT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -965,7 +965,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.routes'", func() { It("inputs default route", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -986,7 +986,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs duplicate routes", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1011,7 +1011,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs invalid destination", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1032,7 +1032,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs invalid gateway", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1053,7 +1053,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("inputs gateway that do not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1080,7 +1080,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("succeed to create orphan IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1096,7 +1096,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("sets owner reference to non-existent Subnet", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1108,7 +1108,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err := controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1124,7 +1124,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("is a empty IPPool", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1139,7 +1139,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) @@ -1149,7 +1149,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("is out of the IP range of the Subnet", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1164,7 +1164,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1181,7 +1181,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.podAffinity'", func() { It("no podAffinity", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1") ipPoolT.Spec.Subnet = "172.18.40.0/24" warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) @@ -1195,7 +1195,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { autoPool = ipPoolT.DeepCopy() autoPool.Spec.IPs = append(autoPool.Spec.IPs, "172.18.40.1") autoPool.Spec.Subnet = "172.18.40.0/24" - autoPool.Spec.IPVersion = pointer.Int64(constant.IPv4) + autoPool.Spec.IPVersion = ptr.To(constant.IPv4) autoPool.Labels = map[string]string{ constant.LabelIPPoolOwnerApplicationGV: applicationinformers.ApplicationLabelGV(appsv1.SchemeGroupVersion.String()), constant.LabelIPPoolOwnerApplicationKind: constant.KindDeployment, @@ -1243,7 +1243,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Context("normal IPPool", func() { It("valid podAffinity", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1") ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.PodAffinity = &metav1.LabelSelector{ @@ -1258,7 +1258,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("invalid podAffinity with invalid label value", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1") ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.PodAffinity = &metav1.LabelSelector{ @@ -1273,7 +1273,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("empty podAffinity is invalid", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1") ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.PodAffinity = &metav1.LabelSelector{ @@ -1290,7 +1290,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("creates IPv4 IPPool with all fields valid", func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1305,7 +1305,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1314,14 +1314,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }..., ) ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, "172.18.40.10") - ipPoolT.Spec.Gateway = pointer.String("172.18.40.1") + ipPoolT.Spec.Gateway = ptr.To("172.18.40.1") ipPoolT.Spec.Routes = append(ipPoolT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "192.168.40.0/24", Gw: "172.18.40.40", }, ) - ipPoolT.Spec.Default = pointer.Bool(true) + ipPoolT.Spec.Default = ptr.To(true) warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -1331,7 +1331,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("creates IPv6 IPPool with all fields valid", func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "abcd:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1346,7 +1346,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv6) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv6) ipPoolT.Spec.Subnet = "abcd:1234::/120" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1355,14 +1355,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }..., ) ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, "abcd:1234::a") - ipPoolT.Spec.Gateway = pointer.String("abcd:1234::1") + ipPoolT.Spec.Gateway = ptr.To("abcd:1234::1") ipPoolT.Spec.Routes = append(ipPoolT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "fd00:40::/120", Gw: "abcd:1234::28", }, ) - ipPoolT.Spec.Default = pointer.Bool(true) + ipPoolT.Spec.Default = ptr.To(true) warns, err := ipPoolWebhook.ValidateCreate(ctx, ipPoolT) Expect(err).NotTo(HaveOccurred()) @@ -1373,7 +1373,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Describe("ValidateUpdate", func() { When("Validating 'spec.ipVersion'", func() { It("updates 'spec.ipVersion' to nil", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1391,7 +1391,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("changes 'spec.ipVersion'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1401,7 +1401,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ) newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.IPVersion = pointer.Int64(constant.IPv6) + newIPPoolT.Spec.IPVersion = ptr.To(constant.IPv6) warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1410,7 +1410,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("updates IPv4 IPPool but IPv4 is disbale'", func() { ipPoolWebhook.EnableIPv4 = false - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1424,7 +1424,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("updates IPv6 IPPool but IPv6 is disbale'", func() { ipPoolWebhook.EnableIPv6 = false - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv6) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv6) ipPoolT.Spec.Subnet = "adbc:1234::/120" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "adbc:1234::1-adbc:1234::2") @@ -1439,7 +1439,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.subnet'", func() { It("changes 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1459,12 +1459,12 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.default'", func() { It("set default IPv4 IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" - ipPoolT.Spec.Default = pointer.Bool(false) + ipPoolT.Spec.Default = ptr.To(false) newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.Default = pointer.Bool(true) + newIPPoolT.Spec.Default = ptr.To(true) warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(err).NotTo(HaveOccurred()) @@ -1474,7 +1474,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("appends invalid IP range to 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1492,7 +1492,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends IP range that do not pertains to 'spec.subnet' to 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1505,7 +1505,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("remove all 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1525,14 +1525,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(cidr).NotTo(BeEmpty()) existIPPoolT.Labels[constant.LabelIPPoolCIDR] = cidr - existIPPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + existIPPoolT.Spec.IPVersion = ptr.To(ipVersion) existIPPoolT.Spec.Subnet = subnet existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, constant.InvalidIPRange) err = tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = subnet ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1552,14 +1552,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(cidr).NotTo(BeEmpty()) existIPPoolT.Labels[constant.LabelIPPoolCIDR] = cidr - existIPPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + existIPPoolT.Spec.IPVersion = ptr.To(ipVersion) existIPPoolT.Spec.Subnet = subnet existIPPoolT.Spec.IPs = append(existIPPoolT.Spec.IPs, "172.18.40.10") err = tracker.Add(existIPPoolT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(ipVersion) + ipPoolT.Spec.IPVersion = ptr.To(ipVersion) ipPoolT.Spec.Subnet = subnet ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1574,7 +1574,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.excludeIPs'", func() { It("appends invalid IP range to 'spec.excludeIPs'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1592,7 +1592,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends IP range that do not pertains to 'spec.subnet' to 'spec.excludeIPs'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1612,7 +1612,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.gateway'", func() { It("updates 'spec.gateway' to invalid gateway", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1622,7 +1622,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ) newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.Gateway = pointer.String(constant.InvalidIP) + newIPPoolT.Spec.Gateway = ptr.To(constant.InvalidIP) warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1630,7 +1630,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("updates 'spec.gateway' to a gateway that do not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1640,7 +1640,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ) newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.Gateway = pointer.String("172.18.41.1") + newIPPoolT.Spec.Gateway = ptr.To("172.18.41.1") warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1648,7 +1648,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("duplicate with 'spec.ips'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1658,7 +1658,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ) newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.Gateway = pointer.String("172.18.40.1") + newIPPoolT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1666,7 +1666,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("excludes gateway address through 'spec.excludeIPs'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1677,7 +1677,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { ipPoolT.Spec.ExcludeIPs = append(ipPoolT.Spec.ExcludeIPs, "172.18.40.1") newIPPoolT := ipPoolT.DeepCopy() - newIPPoolT.Spec.Gateway = pointer.String("172.18.40.1") + newIPPoolT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := ipPoolWebhook.ValidateUpdate(ctx, ipPoolT, newIPPoolT) Expect(err).NotTo(HaveOccurred()) @@ -1687,7 +1687,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.routes'", func() { It("appends default route", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1710,7 +1710,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends duplicate route", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1739,7 +1739,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends route with invalid destination", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1762,7 +1762,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends route with invalid gateway", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1785,7 +1785,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("appends route whose gateway does not pertains to 'spec.subnet'", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, []string{ @@ -1810,7 +1810,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating the IP addresses being used", func() { It("removes IP range that is being used by IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1845,7 +1845,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { }) It("succeed to update orphan IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1859,7 +1859,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("updates the IPPool that sets the owner reference to non-existent Subnet", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1871,7 +1871,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err := controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1885,7 +1885,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("remove all 'spec.ips' of IPPool", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1895,7 +1895,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1909,7 +1909,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("is out of the IP range of the Subnet", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1919,7 +1919,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1933,7 +1933,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("update auto-created IPPool by hand", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1944,7 +1944,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { constant.LabelIPPoolOwnerApplicationNamespace: "test-ns", constant.LabelIPPoolOwnerApplicationName: "test-name", } - autoPool.Spec.IPVersion = pointer.Int64(constant.IPv4) + autoPool.Spec.IPVersion = ptr.To(constant.IPv4) autoPool.Spec.Subnet = "172.18.40.0/24" autoPool.Spec.IPs = append(autoPool.Spec.IPs, "172.18.40.1") @@ -1952,7 +1952,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(err).NotTo(HaveOccurred()) poolIPPreAllocations := spiderpoolv2beta1.PoolIPPreAllocations{autoPool.Name: spiderpoolv2beta1.PoolIPPreAllocation{ IPs: []string{"172.18.40.1"}, - Application: pointer.String(applicationinformers.ApplicationNamespacedName(types.AppNamespacedName{ + Application: ptr.To(applicationinformers.ApplicationNamespacedName(types.AppNamespacedName{ APIVersion: appsv1.SchemeGroupVersion.String(), Kind: constant.KindDeployment, Namespace: "test-ns", @@ -1976,7 +1976,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("update auto-created IPPool annotation", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1987,7 +1987,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { constant.LabelIPPoolOwnerApplicationNamespace: "test-ns", constant.LabelIPPoolOwnerApplicationName: "test-name", } - autoPool.Spec.IPVersion = pointer.Int64(constant.IPv4) + autoPool.Spec.IPVersion = ptr.To(constant.IPv4) autoPool.Spec.Subnet = "172.18.40.0/24" autoPool.Spec.IPs = append(autoPool.Spec.IPs, "172.18.40.1") @@ -1995,7 +1995,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { Expect(err).NotTo(HaveOccurred()) poolIPPreAllocations := spiderpoolv2beta1.PoolIPPreAllocations{autoPool.Name: spiderpoolv2beta1.PoolIPPreAllocation{ IPs: []string{"172.18.40.1"}, - Application: pointer.String(applicationinformers.ApplicationNamespacedName(types.AppNamespacedName{ + Application: ptr.To(applicationinformers.ApplicationNamespacedName(types.AppNamespacedName{ APIVersion: appsv1.SchemeGroupVersion.String(), Kind: constant.KindDeployment, Namespace: "test-ns", @@ -2025,7 +2025,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { When("Validating 'spec.podAffinity'", func() { It("no podAffinity", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.1") ipPoolT.Spec.Subnet = "172.18.40.0/24" @@ -2046,7 +2046,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { controllerutil.AddFinalizer(ipPoolT, constant.SpiderFinalizer) now := metav1.Now() ipPoolT.SetDeletionTimestamp(&now) - ipPoolT.SetDeletionGracePeriodSeconds(pointer.Int64(0)) + ipPoolT.SetDeletionGracePeriodSeconds(ptr.To(int64(0))) newIPPoolT := ipPoolT.DeepCopy() controllerutil.RemoveFinalizer(newIPPoolT, constant.SpiderFinalizer) @@ -2060,7 +2060,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { controllerutil.AddFinalizer(ipPoolT, constant.SpiderFinalizer) now := metav1.Now() ipPoolT.SetDeletionTimestamp(&now) - ipPoolT.SetDeletionGracePeriodSeconds(pointer.Int64(30)) + ipPoolT.SetDeletionGracePeriodSeconds(ptr.To(int64(30))) newIPPoolT := ipPoolT.DeepCopy() @@ -2072,7 +2072,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("updates IPv4 IPPool with all fields valid", func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -2087,14 +2087,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.2-172.18.40.3") newIPPoolT := ipPoolT.DeepCopy() newIPPoolT.Spec.IPs = append(newIPPoolT.Spec.IPs, "172.18.40.10") newIPPoolT.Spec.ExcludeIPs = append(newIPPoolT.Spec.ExcludeIPs, "172.18.40.10") - newIPPoolT.Spec.Gateway = pointer.String("172.18.40.1") + newIPPoolT.Spec.Gateway = ptr.To("172.18.40.1") newIPPoolT.Spec.Routes = append(newIPPoolT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "192.168.40.0/24", @@ -2110,7 +2110,7 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { It("updates IPv6 IPPool with all fields valid", func() { ipPoolWebhook.EnableSpiderSubnet = true subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "abcd:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -2125,14 +2125,14 @@ var _ = Describe("IPPoolWebhook", Label("ippool_webhook_test"), func() { err = controllerutil.SetControllerReference(subnetT, ipPoolT, scheme) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv6) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv6) ipPoolT.Spec.Subnet = "abcd:1234::/120" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "abcd:1234::2-abcd:1234::3") newIPPoolT := ipPoolT.DeepCopy() newIPPoolT.Spec.IPs = append(newIPPoolT.Spec.IPs, "abcd:1234::a") newIPPoolT.Spec.ExcludeIPs = append(newIPPoolT.Spec.ExcludeIPs, "abcd:1234::a") - newIPPoolT.Spec.Gateway = pointer.String("abcd:1234::1") + newIPPoolT.Spec.Gateway = ptr.To("abcd:1234::1") newIPPoolT.Spec.Routes = append(newIPPoolT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "fd00:40::/120", diff --git a/pkg/multuscniconfig/multusconfig_mutate.go b/pkg/multuscniconfig/multusconfig_mutate.go index ab64d56559..6610358e26 100644 --- a/pkg/multuscniconfig/multusconfig_mutate.go +++ b/pkg/multuscniconfig/multusconfig_mutate.go @@ -5,12 +5,11 @@ package multuscniconfig import ( "context" - "k8s.io/utils/pointer" - coordinator_cmd "github.com/spidernet-io/spiderpool/cmd/coordinator/cmd" "github.com/spidernet-io/spiderpool/pkg/constant" spiderpoolv2beta1 "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" "github.com/spidernet-io/spiderpool/pkg/logutils" + "k8s.io/utils/ptr" ) func mutateSpiderMultusConfig(ctx context.Context, smc *spiderpoolv2beta1.SpiderMultusConfig) { @@ -20,7 +19,7 @@ func mutateSpiderMultusConfig(ctx context.Context, smc *spiderpoolv2beta1.Spider // In the SpiderMultusConfig resource first creation, if we don't set `Spec.CniType` field, we need to set it to `custom`. // The kubernetes webhook is called before OpenAPI JSONSchema validation if (*smc).Spec.CniType == nil { - (*smc).Spec.CniType = pointer.String(constant.CustomCNI) + (*smc).Spec.CniType = ptr.To(constant.CustomCNI) } switch *smc.Spec.CniType { case constant.MacvlanCNI: @@ -37,14 +36,14 @@ func mutateSpiderMultusConfig(ctx context.Context, smc *spiderpoolv2beta1.Spider setOvsDefaultConfig(smc.Spec.OvsConfig) case constant.CustomCNI: if smc.Spec.CustomCNIConfig == nil { - smc.Spec.CustomCNIConfig = pointer.String("") + smc.Spec.CustomCNIConfig = ptr.To("") } } // with custom CNI configuration, we don't need to add Coordinator configuration if *smc.Spec.CniType == constant.CustomCNI { smc.Spec.CoordinatorConfig = nil - smc.Spec.EnableCoordinator = pointer.Bool(false) + smc.Spec.EnableCoordinator = ptr.To(false) } else { smc.Spec.CoordinatorConfig = setCoordinatorDefaultConfig(smc.Spec.CoordinatorConfig) } @@ -56,7 +55,7 @@ func setMacvlanDefaultConfig(macvlanConfig *spiderpoolv2beta1.SpiderMacvlanCniCo } if macvlanConfig.VlanID == nil { - macvlanConfig.VlanID = pointer.Int32(0) + macvlanConfig.VlanID = ptr.To(int32(0)) } if macvlanConfig.Bond != nil { @@ -73,7 +72,7 @@ func setMacvlanDefaultConfig(macvlanConfig *spiderpoolv2beta1.SpiderMacvlanCniCo func setBondDefaultConfig(bond *spiderpoolv2beta1.BondConfig) *spiderpoolv2beta1.BondConfig { if bond.Options == nil { - bond.Options = pointer.String("") + bond.Options = ptr.To("") } return bond } @@ -84,7 +83,7 @@ func setIPVlanDefaultConfig(ipvlanConfig *spiderpoolv2beta1.SpiderIPvlanCniConfi } if ipvlanConfig.VlanID == nil { - ipvlanConfig.VlanID = pointer.Int32(0) + ipvlanConfig.VlanID = ptr.To(int32(0)) } if ipvlanConfig.Bond != nil { @@ -105,15 +104,15 @@ func setSriovDefaultConfig(sriovConfig *spiderpoolv2beta1.SpiderSRIOVCniConfig) } if sriovConfig.VlanID == nil { - sriovConfig.VlanID = pointer.Int32(0) + sriovConfig.VlanID = ptr.To(int32(0)) } if sriovConfig.MinTxRateMbps == nil { - sriovConfig.MinTxRateMbps = pointer.Int(0) + sriovConfig.MinTxRateMbps = ptr.To(0) } if sriovConfig.MaxTxRateMbps == nil { - sriovConfig.MaxTxRateMbps = pointer.Int(0) + sriovConfig.MaxTxRateMbps = ptr.To(0) } if sriovConfig.SpiderpoolConfigPools == nil { @@ -130,19 +129,19 @@ func setIBSriovDefaultConfig(ibsriovConfig *spiderpoolv2beta1.SpiderIBSriovCniCo } if ibsriovConfig.Pkey == nil { - ibsriovConfig.Pkey = pointer.String("") + ibsriovConfig.Pkey = ptr.To("") } if ibsriovConfig.IbKubernetesEnabled == nil { - ibsriovConfig.IbKubernetesEnabled = pointer.Bool(false) + ibsriovConfig.IbKubernetesEnabled = ptr.To(false) } if ibsriovConfig.RdmaIsolation == nil { - ibsriovConfig.RdmaIsolation = pointer.Bool(true) + ibsriovConfig.RdmaIsolation = ptr.To(true) } if ibsriovConfig.LinkState == nil { - ibsriovConfig.LinkState = pointer.String("enable") + ibsriovConfig.LinkState = ptr.To("enable") } if ibsriovConfig.SpiderpoolConfigPools == nil { @@ -171,7 +170,7 @@ func setOvsDefaultConfig(ovsConfig *spiderpoolv2beta1.SpiderOvsCniConfig) { } if ovsConfig.VlanTag == nil { - ovsConfig.VlanTag = pointer.Int32(0) + ovsConfig.VlanTag = ptr.To(int32(0)) } if ovsConfig.SpiderpoolConfigPools == nil { @@ -185,18 +184,18 @@ func setOvsDefaultConfig(ovsConfig *spiderpoolv2beta1.SpiderOvsCniConfig) { func setCoordinatorDefaultConfig(coordinator *spiderpoolv2beta1.CoordinatorSpec) *spiderpoolv2beta1.CoordinatorSpec { if coordinator == nil { return &spiderpoolv2beta1.CoordinatorSpec{ - Mode: pointer.String(string(coordinator_cmd.ModeAuto)), + Mode: ptr.To(string(coordinator_cmd.ModeAuto)), HijackCIDR: []string{}, - DetectGateway: pointer.Bool(false), - DetectIPConflict: pointer.Bool(false), - PodMACPrefix: pointer.String(""), - PodDefaultRouteNIC: pointer.String(""), - TunePodRoutes: pointer.Bool(true), + DetectGateway: ptr.To(false), + DetectIPConflict: ptr.To(false), + PodMACPrefix: ptr.To(""), + PodDefaultRouteNIC: ptr.To(""), + TunePodRoutes: ptr.To(true), } } if coordinator.Mode == nil { - coordinator.Mode = pointer.String(string(coordinator_cmd.ModeAuto)) + coordinator.Mode = ptr.To(string(coordinator_cmd.ModeAuto)) } if coordinator.HijackCIDR == nil { @@ -204,27 +203,27 @@ func setCoordinatorDefaultConfig(coordinator *spiderpoolv2beta1.CoordinatorSpec) } if coordinator.DetectGateway == nil { - coordinator.DetectGateway = pointer.Bool(false) + coordinator.DetectGateway = ptr.To(false) } if coordinator.DetectIPConflict == nil { - coordinator.DetectIPConflict = pointer.Bool(false) + coordinator.DetectIPConflict = ptr.To(false) } if coordinator.PodMACPrefix == nil { - coordinator.PodMACPrefix = pointer.String("") + coordinator.PodMACPrefix = ptr.To("") } if coordinator.PodDefaultRouteNIC == nil { - coordinator.PodDefaultRouteNIC = pointer.String("") + coordinator.PodDefaultRouteNIC = ptr.To("") } if coordinator.TunePodRoutes == nil { - coordinator.TunePodRoutes = pointer.Bool(false) + coordinator.TunePodRoutes = ptr.To(false) } if coordinator.TxQueueLen == nil { - coordinator.TxQueueLen = pointer.Int(0) + coordinator.TxQueueLen = ptr.To(0) } return coordinator diff --git a/pkg/namespacemanager/namespace_manager_test.go b/pkg/namespacemanager/namespace_manager_test.go index 8fec367b14..2c5f70fae8 100644 --- a/pkg/namespacemanager/namespace_manager_test.go +++ b/pkg/namespacemanager/namespace_manager_test.go @@ -15,7 +15,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -69,7 +69,7 @@ var _ = Describe("NamespaceManager", Label("namespace_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } diff --git a/pkg/nodemanager/node_manager_test.go b/pkg/nodemanager/node_manager_test.go index 89be5635b6..3a7ef98e03 100644 --- a/pkg/nodemanager/node_manager_test.go +++ b/pkg/nodemanager/node_manager_test.go @@ -15,7 +15,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -69,7 +69,7 @@ var _ = Describe("NodeManager", Label("node_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } diff --git a/pkg/podmanager/pod_manager_test.go b/pkg/podmanager/pod_manager_test.go index 46d3f75a11..ebe126b31c 100644 --- a/pkg/podmanager/pod_manager_test.go +++ b/pkg/podmanager/pod_manager_test.go @@ -19,7 +19,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "k8s.io/utils/strings/slices" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -78,7 +78,7 @@ var _ = Describe("PodManager", Label("pod_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } diff --git a/pkg/podmanager/utils_test.go b/pkg/podmanager/utils_test.go index 167da5fdb7..b91c7f8c50 100644 --- a/pkg/podmanager/utils_test.go +++ b/pkg/podmanager/utils_test.go @@ -8,7 +8,7 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/podmanager" ) @@ -40,7 +40,7 @@ var _ = Describe("PodManager utils", Label("pod_manager_utils_test"), func() { It("checks terminating Pod", func() { now := metav1.Now() podT.SetDeletionTimestamp(&now) - podT.SetDeletionGracePeriodSeconds(pointer.Int64(30)) + podT.SetDeletionGracePeriodSeconds(ptr.To(int64(30))) isAlive := podmanager.IsPodAlive(podT) Expect(isAlive).To(BeFalse()) diff --git a/pkg/reservedipmanager/reservedip_manager_test.go b/pkg/reservedipmanager/reservedip_manager_test.go index f37569cbd5..8a79611eba 100644 --- a/pkg/reservedipmanager/reservedip_manager_test.go +++ b/pkg/reservedipmanager/reservedip_manager_test.go @@ -15,7 +15,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -72,11 +72,11 @@ var _ = Describe("ReservedIPManager", Label("reservedip_manager_test"), func() { }, ObjectMeta: metav1.ObjectMeta{ Name: "terminating-ipv4-reservedip", - DeletionGracePeriodSeconds: pointer.Int64(30), + DeletionGracePeriodSeconds: ptr.To(int64(30)), Finalizers: []string{constant.SpiderFinalizer}, }, Spec: spiderpoolv2beta1.ReservedIPSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), IPs: []string{ "172.18.40.40", }, @@ -89,7 +89,7 @@ var _ = Describe("ReservedIPManager", Label("reservedip_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -253,7 +253,7 @@ var _ = Describe("ReservedIPManager", Label("reservedip_manager_test"), func() { }) It("does not assemble terminating IPv4 reserved-IP addresses", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = []string{ "172.18.40.1-172.18.40.2", "172.18.40.10", @@ -281,7 +281,7 @@ var _ = Describe("ReservedIPManager", Label("reservedip_manager_test"), func() { }) It("exists invalid ReservedIPs in the cluster", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, constant.InvalidIPRange) err := fakeClient.Create(ctx, rIPT) diff --git a/pkg/reservedipmanager/reservedip_webhook_test.go b/pkg/reservedipmanager/reservedip_webhook_test.go index 66716f8292..ed862a14ff 100644 --- a/pkg/reservedipmanager/reservedip_webhook_test.go +++ b/pkg/reservedipmanager/reservedip_webhook_test.go @@ -12,7 +12,7 @@ import ( . "github.com/onsi/gomega" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/config" @@ -72,7 +72,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -119,7 +119,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ipVersion'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + rIPT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ "172.18.40.10", @@ -140,7 +140,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ips'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ constant.InvalidIPRange, @@ -163,7 +163,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("merges IPv4 'spec.ips'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ "172.18.40.10", @@ -183,7 +183,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("merges IPv6 'spec.ips'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + rIPT.Spec.IPVersion = ptr.To(constant.IPv6) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ "abcd:1234::a", @@ -212,7 +212,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("inputs invalid 'spec.ipVersion'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + rIPT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) warns, err := rIPWebhook.ValidateCreate(ctx, rIPT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -221,7 +221,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { It("creates IPv4 ReservedIP but IPv4 is disbale'", func() { rIPWebhook.EnableIPv4 = false - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) warns, err := rIPWebhook.ValidateCreate(ctx, rIPT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -230,7 +230,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { It("creates IPv6 ReservedIP but IPv6 is disbale'", func() { rIPWebhook.EnableIPv6 = false - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + rIPT.Spec.IPVersion = ptr.To(constant.IPv6) warns, err := rIPWebhook.ValidateCreate(ctx, rIPT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -240,7 +240,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("inputs invalid 'spec.ips'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, constant.InvalidIPRange) warns, err := rIPWebhook.ValidateCreate(ctx, rIPT) @@ -250,7 +250,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("creates IPv4 ReservedIP with all fields valid", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ "172.18.40.1-172.18.40.2", @@ -264,7 +264,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("creates IPv6 ReservedIP with all fields valid", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + rIPT.Spec.IPVersion = ptr.To(constant.IPv6) rIPT.Spec.IPs = append(rIPT.Spec.IPs, []string{ "abcd:1234::1-abcd:1234::2", @@ -281,7 +281,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { Describe("ValidateUpdate", func() { When("Validating 'spec.ipVersion'", func() { It("updates 'spec.ipVersion' to nil", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) newRIPT := rIPT.DeepCopy() newRIPT.Spec.IPVersion = nil @@ -292,10 +292,10 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("changes 'spec.ipVersion'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) newRIPT := rIPT.DeepCopy() - newRIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + newRIPT.Spec.IPVersion = ptr.To(constant.IPv6) warns, err := rIPWebhook.ValidateUpdate(ctx, rIPT, newRIPT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -304,7 +304,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { It("updates IPv4 ReservedIP but IPv4 is disbale'", func() { rIPWebhook.EnableIPv4 = false - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) newRIPT := rIPT.DeepCopy() newRIPT.Spec.IPs = append(newRIPT.Spec.IPs, "172.18.40.10") @@ -316,7 +316,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { It("updates IPv6 ReservedIP but IPv6 is disbale'", func() { rIPWebhook.EnableIPv6 = false - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + rIPT.Spec.IPVersion = ptr.To(constant.IPv6) newRIPT := rIPT.DeepCopy() newRIPT.Spec.IPs = append(newRIPT.Spec.IPs, "adbc:1234::a") @@ -329,7 +329,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("appends invalid IP range to 'spec.ips'", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) newRIPT := rIPT.DeepCopy() newRIPT.Spec.IPs = append(newRIPT.Spec.IPs, constant.InvalidIPRange) @@ -344,7 +344,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { newRIPT := rIPT.DeepCopy() now := metav1.Now() newRIPT.SetDeletionTimestamp(&now) - newRIPT.SetDeletionGracePeriodSeconds(pointer.Int64(0)) + newRIPT.SetDeletionGracePeriodSeconds(ptr.To(int64(0))) warns, err := rIPWebhook.ValidateUpdate(ctx, rIPT, newRIPT) Expect(err).NotTo(HaveOccurred()) @@ -354,7 +354,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { It("updates terminating ReservedIP", func() { now := metav1.Now() rIPT.SetDeletionTimestamp(&now) - rIPT.SetDeletionGracePeriodSeconds(pointer.Int64(30)) + rIPT.SetDeletionGracePeriodSeconds(ptr.To(int64(30))) newRIPT := rIPT.DeepCopy() warns, err := rIPWebhook.ValidateUpdate(ctx, rIPT, newRIPT) @@ -363,7 +363,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("updates IPv4 ReservedIP with all fields valid", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv4) + rIPT.Spec.IPVersion = ptr.To(constant.IPv4) rIPT.Spec.IPs = append(rIPT.Spec.IPs, "172.18.40.1-172.18.40.2") newRIPT := rIPT.DeepCopy() @@ -375,7 +375,7 @@ var _ = Describe("ReservedIPWebhook", Label("reservedip_webhook_test"), func() { }) It("updates IPv6 ReservedIP with all fields valid", func() { - rIPT.Spec.IPVersion = pointer.Int64(constant.IPv6) + rIPT.Spec.IPVersion = ptr.To(constant.IPv6) rIPT.Spec.IPs = append(rIPT.Spec.IPs, "abcd:1234::1-abcd:1234::2") newRIPT := rIPT.DeepCopy() diff --git a/pkg/statefulsetmanager/sts_manager_test.go b/pkg/statefulsetmanager/sts_manager_test.go index ed0a89c743..4edef01936 100644 --- a/pkg/statefulsetmanager/sts_manager_test.go +++ b/pkg/statefulsetmanager/sts_manager_test.go @@ -16,7 +16,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -73,7 +73,7 @@ var _ = Describe("StatefulSetManager", Label("sts_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -280,7 +280,7 @@ var _ = Describe("StatefulSetManager", Label("sts_manager_test"), func() { }) It("invalid pod mismatches the StatefulSet start ordinal", func() { - stsT.Spec.Replicas = pointer.Int32(1) + stsT.Spec.Replicas = ptr.To(int32(1)) stsT.Spec.Ordinals = &appsv1.StatefulSetOrdinals{Start: 2} err := tracker.Add(stsT) @@ -292,7 +292,7 @@ var _ = Describe("StatefulSetManager", Label("sts_manager_test"), func() { }) It("a valid pod matches the StatefulSet start ordinal", func() { - stsT.Spec.Replicas = pointer.Int32(1) + stsT.Spec.Replicas = ptr.To(int32(1)) stsT.Spec.Ordinals = &appsv1.StatefulSetOrdinals{Start: 2} err := tracker.Add(stsT) diff --git a/pkg/subnetmanager/subnet_informer_test.go b/pkg/subnetmanager/subnet_informer_test.go index ba705216fd..423870f5e5 100644 --- a/pkg/subnetmanager/subnet_informer_test.go +++ b/pkg/subnetmanager/subnet_informer_test.go @@ -19,7 +19,7 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/testing" "k8s.io/client-go/tools/cache" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -119,7 +119,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -160,7 +160,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { It("sets the owner reference of the controlled IPPools", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" err := fakeClient.Create(ctx, subnetT) @@ -169,7 +169,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { err = subnetIndexer.Add(subnetT) Expect(err).NotTo(HaveOccurred()) - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" err = fakeClient.Create(ctx, ipPoolT) @@ -198,7 +198,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { }) It("sets the owner reference for the orphan IPPool", func() { - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" err := fakeClient.Create(ctx, ipPoolT) @@ -208,7 +208,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { Expect(err).NotTo(HaveOccurred()) subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" err = fakeClient.Create(ctx, subnetT) @@ -238,7 +238,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { It("aggregates pre-allocation status", func() { subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.10") @@ -249,7 +249,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { Expect(err).NotTo(HaveOccurred()) ipPoolT.Labels[constant.LabelIPPoolOwnerSpiderSubnet] = subnetT.Name - ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) ipPoolT.Spec.Subnet = "172.18.40.0/24" ipPoolT.Spec.IPs = append(ipPoolT.Spec.IPs, "172.18.40.10") @@ -282,7 +282,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { It("cascades delete Subnet and the IPPools it controls", func() { controllerutil.AddFinalizer(subnetT, constant.SpiderFinalizer) subnetT.SetUID(uuid.NewUUID()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" err := fakeClient.Create(ctx, subnetT) @@ -303,7 +303,7 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { // TODO(iiiceoo): Depends on K8s GC. // ctrl.SetControllerReference(subnetT, ipPoolT, scheme) // ipPoolT.Labels[constant.LabelIPPoolOwnerSpiderSubnet] = subnetT.Name - // ipPoolT.Spec.IPVersion = pointer.Int64(constant.IPv4) + // ipPoolT.Spec.IPVersion = ptr.To(constant.IPv4) // ipPoolT.Spec.Subnet = "172.18.40.0/24" // err = fakeClient.Create(ctx, ipPoolT) @@ -327,14 +327,14 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { It("third-party controller exist with auto-created IPPool", func() { subnet := subnetT.DeepCopy() subnet.Spec = spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), Subnet: "172.16.0.0/16", IPs: []string{"172.16.41.1-172.16.41.200"}, } subnet.Status = spiderpoolv2beta1.SubnetStatus{ - ControlledIPPools: pointer.String(`{"auto4-cloneset-demo-eth0-db543":{"ips":["172.16.41.1-172.16.41.2"],"application":"apps.kruise.io_v1alpha1_CloneSet_default_cloneset-demo"}}`), - TotalIPCount: pointer.Int64(200), - AllocatedIPCount: pointer.Int64(2), + ControlledIPPools: ptr.To(`{"auto4-cloneset-demo-eth0-db543":{"ips":["172.16.41.1-172.16.41.2"],"application":"apps.kruise.io_v1alpha1_CloneSet_default_cloneset-demo"}}`), + TotalIPCount: ptr.To(int64(200)), + AllocatedIPCount: ptr.To(int64(2)), } patches := gomonkey.ApplyFuncReturn(applicationinformers.IsAppExist, true, types.UID("a-b-c"), nil) @@ -357,14 +357,14 @@ var _ = Describe("SubnetController", Label("subnet_controller_test"), func() { It("third-party controller exist with auto-created IPPool", func() { subnet := subnetT.DeepCopy() subnet.Spec = spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), Subnet: "172.16.0.0/16", IPs: []string{"172.16.41.1-172.16.41.200"}, } subnet.Status = spiderpoolv2beta1.SubnetStatus{ - ControlledIPPools: pointer.String(`{"auto4-cloneset-demo-eth0-db543":{"ips":["172.16.41.1-172.16.41.2"],"application":"apps.kruise.io_v1alpha1_CloneSet_default_cloneset-demo"}}`), - TotalIPCount: pointer.Int64(200), - AllocatedIPCount: pointer.Int64(2), + ControlledIPPools: ptr.To(`{"auto4-cloneset-demo-eth0-db543":{"ips":["172.16.41.1-172.16.41.2"],"application":"apps.kruise.io_v1alpha1_CloneSet_default_cloneset-demo"}}`), + TotalIPCount: ptr.To(int64(200)), + AllocatedIPCount: ptr.To(int64(2)), } patches := gomonkey.ApplyFuncReturn(applicationinformers.IsAppExist, false, types.UID(""), nil) diff --git a/pkg/subnetmanager/subnet_manager.go b/pkg/subnetmanager/subnet_manager.go index 527d24c16f..bf2af54c8f 100644 --- a/pkg/subnetmanager/subnet_manager.go +++ b/pkg/subnetmanager/subnet_manager.go @@ -12,7 +12,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apitypes "k8s.io/apimachinery/pkg/types" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -143,7 +143,7 @@ func (sm *subnetManager) ReconcileAutoIPPool(ctx context.Context, pool *spiderpo Name: applicationinformers.AutoPoolName(podController.Name, autoPoolProperty.IPVersion, autoPoolProperty.IfName, podController.UID), }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(autoPoolProperty.IPVersion), + IPVersion: ptr.To(autoPoolProperty.IPVersion), Subnet: subnet.Spec.Subnet, Gateway: subnet.Spec.Gateway, //Vlan: subnet.Spec.Vlan, @@ -330,7 +330,7 @@ func (sm *subnetManager) preAllocateIPsFromSubnet(ctx context.Context, subnet *s } subnetControlledIPPools[pool.Name] = spiderpoolv2beta1.PoolIPPreAllocation{ IPs: poolIPRange, - Application: pointer.String(applicationinformers.ApplicationNamespacedName(podController.AppNamespacedName)), + Application: ptr.To(applicationinformers.ApplicationNamespacedName(podController.AppNamespacedName)), } marshalSubnetAllocatedIPPools, err := convert.MarshalSubnetAllocatedIPPools(subnetControlledIPPools) if nil != err { @@ -388,7 +388,7 @@ func (sm *subnetManager) preAllocateIPsFromSubnet(ctx context.Context, subnet *s subnetControlledIPPools[pool.Name] = spiderpoolv2beta1.PoolIPPreAllocation{ IPs: allocateIPRange, - Application: pointer.String(applicationinformers.ApplicationNamespacedName(podController.AppNamespacedName)), + Application: ptr.To(applicationinformers.ApplicationNamespacedName(podController.AppNamespacedName)), } marshalSubnetAllocatedIPPools, err := convert.MarshalSubnetAllocatedIPPools(subnetControlledIPPools) if nil != err { diff --git a/pkg/subnetmanager/subnet_manager_test.go b/pkg/subnetmanager/subnet_manager_test.go index b783b8b038..63f8c0158b 100644 --- a/pkg/subnetmanager/subnet_manager_test.go +++ b/pkg/subnetmanager/subnet_manager_test.go @@ -15,7 +15,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -77,7 +77,7 @@ var _ = Describe("SubnetManager", Label("subnet_manager_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -226,7 +226,7 @@ var _ = Describe("SubnetManager", Label("subnet_manager_test"), func() { It("reconcile an auto IPPool for Deployment", func() { subnet := subnetT.DeepCopy() subnet.Spec = spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), Subnet: "172.16.0.0/16", IPs: []string{"172.16.41.1-172.16.41.200"}, } diff --git a/pkg/subnetmanager/subnet_webhook_test.go b/pkg/subnetmanager/subnet_webhook_test.go index e6ccf0d707..5a9da1517e 100644 --- a/pkg/subnetmanager/subnet_webhook_test.go +++ b/pkg/subnetmanager/subnet_webhook_test.go @@ -14,7 +14,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/config" @@ -89,7 +89,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } @@ -142,7 +142,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to parse 'spec.subnet' as a valid label value", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + subnetT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) subnetT.Spec.Subnet = "172.18.40.0/24" err := subnetWebhook.Default(ctx, subnetT) @@ -194,7 +194,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ipVersion'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + subnetT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -216,7 +216,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to merge 'spec.ips' due to the invalid 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -280,7 +280,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to merge 'spec.excludeIPs' due to the invalid 'spec.ipVersion'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + subnetT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, []string{ @@ -302,7 +302,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to merge 'spec.excludeIPs' due to the invalid 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, []string{ @@ -383,7 +383,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs invalid 'spec.ipVersion'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.InvalidIPVersion) + subnetT.Spec.IPVersion = ptr.To(constant.InvalidIPVersion) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -399,7 +399,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { It("creates IPv4 Subnet but IPv4 is disbale'", func() { subnetWebhook.EnableIPv4 = false - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -415,7 +415,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { It("creates IPv6 Subnet but IPv6 is disbale'", func() { subnetWebhook.EnableIPv6 = false - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "adbc:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -432,7 +432,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.subnet'", func() { It("inputs invalid 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = constant.InvalidCIDR subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -450,7 +450,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { patches := gomonkey.ApplyMethodReturn(fakeAPIReader, "List", constant.ErrUnknown) defer patches.Reset() - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -465,7 +465,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("creates an existing Subnet", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -483,14 +483,14 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("failed to compare 'spec.subnet' with existing Subnet", func() { - existSubnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + existSubnetT.Spec.IPVersion = ptr.To(constant.IPv4) existSubnetT.Spec.Subnet = constant.InvalidCIDR existSubnetT.Spec.IPs = append(existSubnetT.Spec.IPs, "172.18.41.1-172.18.41.2") err := tracker.Add(existSubnetT) Expect(err).NotTo(HaveOccurred()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -505,14 +505,14 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("overlaps with existing Subnet", func() { - existSubnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + existSubnetT.Spec.IPVersion = ptr.To(constant.IPv4) existSubnetT.Spec.Subnet = "172.18.40.0/25" existSubnetT.Spec.IPs = append(existSubnetT.Spec.IPs, "172.18.40.40") err := tracker.Add(existSubnetT) Expect(err).NotTo(HaveOccurred()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -536,7 +536,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { Name: "orphanPool", }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: "172.18.40.0/25", IPs: []string{"172.18.40.40"}, }, @@ -554,7 +554,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { err := tracker.Add(orphanPool) Expect(err).NotTo(HaveOccurred()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -571,7 +571,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("inputs invalid 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, constant.InvalidIPRange) @@ -581,7 +581,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs 'spec.ips' that do not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -605,7 +605,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { Name: "orphanPool", }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: "172.18.40.0/25", IPs: []string{"172.18.40.40-172.18.40.45"}, }, @@ -623,7 +623,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { err := tracker.Add(orphanPool) Expect(err).NotTo(HaveOccurred()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/25" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -639,7 +639,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.excludeIPs'", func() { It("inputs invalid 'spec.excludeIPs'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -655,7 +655,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs 'spec.excludeIPs' that do not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -673,7 +673,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.gateway'", func() { It("inputs invalid 'spec.gateway'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -681,7 +681,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { "172.18.40.10", }..., ) - subnetT.Spec.Gateway = pointer.String(constant.InvalidIP) + subnetT.Spec.Gateway = ptr.To(constant.InvalidIP) warns, err := subnetWebhook.ValidateCreate(ctx, subnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -689,7 +689,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs 'spec.gateway' that do not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -697,7 +697,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { "172.18.40.10", }..., ) - subnetT.Spec.Gateway = pointer.String("172.18.41.1") + subnetT.Spec.Gateway = ptr.To("172.18.41.1") warns, err := subnetWebhook.ValidateCreate(ctx, subnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -705,7 +705,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("duplicate with 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -713,7 +713,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { "172.18.40.10", }..., ) - subnetT.Spec.Gateway = pointer.String("172.18.40.1") + subnetT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := subnetWebhook.ValidateCreate(ctx, subnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -721,7 +721,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("excludes gateway address through 'spec.excludeIPs'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -730,7 +730,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }..., ) subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, "172.18.40.1") - subnetT.Spec.Gateway = pointer.String("172.18.40.1") + subnetT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := subnetWebhook.ValidateCreate(ctx, subnetT) Expect(err).NotTo(HaveOccurred()) @@ -740,7 +740,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.routes'", func() { It("inputs default route", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -761,7 +761,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs duplicate routes", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -786,7 +786,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs invalid destination", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -807,7 +807,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs invalid gateway", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -828,7 +828,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("inputs gateway that do not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -850,7 +850,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("creates IPv4 Subnet with all fields valid", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -859,7 +859,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }..., ) subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, "172.18.40.10") - subnetT.Spec.Gateway = pointer.String("172.18.40.1") + subnetT.Spec.Gateway = ptr.To("172.18.40.1") subnetT.Spec.Routes = append(subnetT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "192.168.40.0/24", @@ -873,7 +873,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("creates IPv6 Subnet with all fields valid", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "abcd:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -882,7 +882,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }..., ) subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, "abcd:1234::a") - subnetT.Spec.Gateway = pointer.String("abcd:1234::1") + subnetT.Spec.Gateway = ptr.To("abcd:1234::1") subnetT.Spec.Routes = append(subnetT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "fd00:40::/120", @@ -905,7 +905,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { Name: "orphanPool", }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: "172.18.40.0/25", IPs: []string{"172.18.40.40-172.18.40.41"}, }, @@ -923,7 +923,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { err := tracker.Add(orphanPool) Expect(err).NotTo(HaveOccurred()) - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/25" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -940,7 +940,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { Describe("ValidateUpdate", func() { When("Validating 'spec.ipVersion'", func() { It("updates 'spec.ipVersion' to nil", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -958,7 +958,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("changes 'spec.ipVersion'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -968,7 +968,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { ) newSubnetT := subnetT.DeepCopy() - newSubnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + newSubnetT.Spec.IPVersion = ptr.To(constant.IPv6) warns, err := subnetWebhook.ValidateUpdate(ctx, subnetT, newSubnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -977,7 +977,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { It("updates IPv4 Subnet but IPv4 is disbale'", func() { subnetWebhook.EnableIPv4 = false - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -991,7 +991,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { It("updates IPv6 Subnet but IPv6 is disbale'", func() { subnetWebhook.EnableIPv6 = false - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "adbc:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "adbc:1234::1-adbc:1234::2") @@ -1006,7 +1006,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.subnet'", func() { It("changes 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1026,7 +1026,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.ips'", func() { It("appends invalid IP range to 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1044,7 +1044,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends IP range that do not pertains to 'spec.subnet' to 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.1-172.18.40.2") @@ -1059,7 +1059,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.excludeIPs'", func() { It("appends invalid IP range to 'spec.excludeIPs'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1077,7 +1077,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends IP range that do not pertains to 'spec.subnet' to 'spec.excludeIPs'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1097,7 +1097,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.gateway'", func() { It("updates 'spec.gateway' to invalid gateway", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1107,7 +1107,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { ) newSubnetT := subnetT.DeepCopy() - newSubnetT.Spec.Gateway = pointer.String(constant.InvalidIP) + newSubnetT.Spec.Gateway = ptr.To(constant.InvalidIP) warns, err := subnetWebhook.ValidateUpdate(ctx, subnetT, newSubnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1115,7 +1115,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("updates 'spec.gateway' to a gateway that do not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1125,7 +1125,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { ) newSubnetT := subnetT.DeepCopy() - newSubnetT.Spec.Gateway = pointer.String("172.18.41.1") + newSubnetT.Spec.Gateway = ptr.To("172.18.41.1") warns, err := subnetWebhook.ValidateUpdate(ctx, subnetT, newSubnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1133,7 +1133,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("duplicate with 'spec.ips'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1143,7 +1143,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { ) newSubnetT := subnetT.DeepCopy() - newSubnetT.Spec.Gateway = pointer.String("172.18.40.1") + newSubnetT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := subnetWebhook.ValidateUpdate(ctx, subnetT, newSubnetT) Expect(apierrors.IsInvalid(err)).To(BeTrue()) @@ -1151,7 +1151,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("excludes gateway address through 'spec.excludeIPs'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1162,7 +1162,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { subnetT.Spec.ExcludeIPs = append(subnetT.Spec.ExcludeIPs, "172.18.40.1") newSubnetT := subnetT.DeepCopy() - newSubnetT.Spec.Gateway = pointer.String("172.18.40.1") + newSubnetT.Spec.Gateway = ptr.To("172.18.40.1") warns, err := subnetWebhook.ValidateUpdate(ctx, subnetT, newSubnetT) Expect(err).NotTo(HaveOccurred()) @@ -1172,7 +1172,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { When("Validating 'spec.routes'", func() { It("appends default route", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1195,7 +1195,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends default route", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1224,7 +1224,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends route with invalid destination", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1247,7 +1247,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends route with invalid gateway", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1270,7 +1270,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("appends route whose gateway does not pertains to 'spec.subnet'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1298,7 +1298,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { patches := gomonkey.ApplyFuncReturn(spiderpoolip.AssembleTotalIPs, nil, constant.ErrUnknown) defer patches.Reset() - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1327,7 +1327,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("has invalid 'status.controlledIPPools'", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1354,7 +1354,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("removes IP ranges that is being used by IPPool", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1383,7 +1383,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("removes IP ranges not used by IPPool", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, []string{ @@ -1416,7 +1416,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { controllerutil.AddFinalizer(subnetT, constant.SpiderFinalizer) now := metav1.Now() subnetT.SetDeletionTimestamp(&now) - subnetT.SetDeletionGracePeriodSeconds(pointer.Int64(0)) + subnetT.SetDeletionGracePeriodSeconds(ptr.To(int64(0))) newSubnetT := subnetT.DeepCopy() controllerutil.RemoveFinalizer(newSubnetT, constant.SpiderFinalizer) @@ -1430,7 +1430,7 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { controllerutil.AddFinalizer(subnetT, constant.SpiderFinalizer) now := metav1.Now() subnetT.SetDeletionTimestamp(&now) - subnetT.SetDeletionGracePeriodSeconds(pointer.Int64(30)) + subnetT.SetDeletionGracePeriodSeconds(ptr.To(int64(30))) newSubnetT := subnetT.DeepCopy() @@ -1440,14 +1440,14 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("updates IPv4 Subnet with all fields valid", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv4) + subnetT.Spec.IPVersion = ptr.To(constant.IPv4) subnetT.Spec.Subnet = "172.18.40.0/24" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "172.18.40.2-172.18.40.3") newSubnetT := subnetT.DeepCopy() newSubnetT.Spec.IPs = append(newSubnetT.Spec.IPs, "172.18.40.10") newSubnetT.Spec.ExcludeIPs = append(newSubnetT.Spec.ExcludeIPs, "172.18.40.10") - newSubnetT.Spec.Gateway = pointer.String("172.18.40.1") + newSubnetT.Spec.Gateway = ptr.To("172.18.40.1") newSubnetT.Spec.Routes = append(newSubnetT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "192.168.40.0/24", @@ -1461,14 +1461,14 @@ var _ = Describe("SubnetWebhook", Label("subnet_webhook_test"), func() { }) It("updates IPv6 Subnet with all fields valid", func() { - subnetT.Spec.IPVersion = pointer.Int64(constant.IPv6) + subnetT.Spec.IPVersion = ptr.To(constant.IPv6) subnetT.Spec.Subnet = "abcd:1234::/120" subnetT.Spec.IPs = append(subnetT.Spec.IPs, "abcd:1234::2-abcd:1234::3") newSubnetT := subnetT.DeepCopy() newSubnetT.Spec.IPs = append(newSubnetT.Spec.IPs, "abcd:1234::a") newSubnetT.Spec.ExcludeIPs = append(newSubnetT.Spec.ExcludeIPs, "abcd:1234::a") - newSubnetT.Spec.Gateway = pointer.String("abcd:1234::1") + newSubnetT.Spec.Gateway = ptr.To("abcd:1234::1") newSubnetT.Spec.Routes = append(newSubnetT.Spec.Routes, spiderpoolv2beta1.Route{ Dst: "fd00:40::/120", diff --git a/pkg/utils/convert/convert.go b/pkg/utils/convert/convert.go index 0517dcb17d..ad565437e2 100644 --- a/pkg/utils/convert/convert.go +++ b/pkg/utils/convert/convert.go @@ -11,7 +11,7 @@ import ( "strings" "github.com/asaskevich/govalidator" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/api/v1/agent/models" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -119,8 +119,8 @@ func ConvertResultsToIPDetails(results []*types.AllocationResult, isMultipleNicW var gateway *string var cleanGateway *bool if r.IP.Gateway != "" { - gateway = pointer.String(r.IP.Gateway) - cleanGateway = pointer.Bool(r.CleanGateway) + gateway = ptr.To(r.IP.Gateway) + cleanGateway = ptr.To(r.CleanGateway) } address := *r.IP.Address diff --git a/pkg/workloadendpointmanager/utils_test.go b/pkg/workloadendpointmanager/utils_test.go index e06c0020df..68eadb6787 100644 --- a/pkg/workloadendpointmanager/utils_test.go +++ b/pkg/workloadendpointmanager/utils_test.go @@ -10,7 +10,7 @@ import ( . "github.com/onsi/gomega" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" spiderpoolv2beta1 "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" @@ -49,15 +49,15 @@ var _ = Describe("WorkloadEndpointManager utils", Label("workloadendpoint_manage IPs: []spiderpoolv2beta1.IPAllocationDetail{ { NIC: nic1, - Vlan: pointer.Int64(0), - IPv4: pointer.String("172.18.40.10/24"), - IPv4Pool: pointer.String("ipv4-ippool-1"), + Vlan: ptr.To(int64(0)), + IPv4: ptr.To("172.18.40.10/24"), + IPv4Pool: ptr.To("ipv4-ippool-1"), }, { NIC: nic2, - Vlan: pointer.Int64(0), - IPv4: pointer.String("192.168.40.9/24"), - IPv4Pool: pointer.String("ipv4-ippool-2"), + Vlan: ptr.To(int64(0)), + IPv4: ptr.To("192.168.40.9/24"), + IPv4Pool: ptr.To("ipv4-ippool-2"), }, }, } @@ -94,9 +94,9 @@ var _ = Describe("WorkloadEndpointManager utils", Label("workloadendpoint_manage It("retrieves the IP allocation of empty nic", func() { allocationT.IPs = append(allocationT.IPs, spiderpoolv2beta1.IPAllocationDetail{ NIC: "", - Vlan: pointer.Int64(0), - IPv4: pointer.String("10.60.1.2/24"), - IPv4Pool: pointer.String("ipv4-ippool-3"), + Vlan: ptr.To(int64(0)), + IPv4: ptr.To("10.60.1.2/24"), + IPv4Pool: ptr.To("ipv4-ippool-3"), }) endpointT.Status.Current = allocationT diff --git a/pkg/workloadendpointmanager/workloadendpoint_manager_test.go b/pkg/workloadendpointmanager/workloadendpoint_manager_test.go index 74d8e93804..ac4987b5bc 100644 --- a/pkg/workloadendpointmanager/workloadendpoint_manager_test.go +++ b/pkg/workloadendpointmanager/workloadendpoint_manager_test.go @@ -18,7 +18,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" kubevirtv1 "kubevirt.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -91,7 +91,7 @@ var _ = Describe("WorkloadEndpointManager", Label("workloadendpoint_manager_test AfterEach(func() { policy := metav1.DeletePropagationForeground deleteOption = &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), PropagationPolicy: &policy, } diff --git a/test/Makefile b/test/Makefile index ba58e0400c..9c428a2945 100644 --- a/test/Makefile +++ b/test/Makefile @@ -28,7 +28,7 @@ init_env_with_release: .PHONY: kind-init kind-init: check_env prepare @echo -e "\033[35m [Step 3] Init kind for the cluster: $(E2E_CLUSTER_NAME) \033[0m" - make setup_kind + E2E_KIND_IMAGE_TAG=$(E2E_KIND_IMAGE_TAG) make setup_kind @echo -e "\033[35m [Step 4] Init network config for kind-node \033[0m" E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_CLUSTER_NAME=$(E2E_CLUSTER_NAME) \ diff --git a/test/e2e/annotation/annotation_test.go b/test/e2e/annotation/annotation_test.go index f3b0e0cd8e..a850c9236f 100644 --- a/test/e2e/annotation/annotation_test.go +++ b/test/e2e/annotation/annotation_test.go @@ -15,7 +15,7 @@ import ( "github.com/spidernet-io/e2eframework/tools" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" pkgconstant "github.com/spidernet-io/spiderpool/pkg/constant" spiderpool "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" @@ -226,7 +226,7 @@ var _ = Describe("test annotation", Label("annotation"), func() { // Create IPv4Pool and IPv6Pool Eventually(func() error { v4PoolName, iPv4PoolObj = common.GenerateExampleIpv4poolObject(ipNum) - iPv4PoolObj.Spec.Vlan = pointer.Int64(ipv4Vlan) + iPv4PoolObj.Spec.Vlan = ptr.To(ipv4Vlan) GinkgoWriter.Printf("try to create ipv4pool: %v \n", v4PoolName) if frame.Info.SpiderSubnetEnabled { ctx, cancel := context.WithTimeout(context.Background(), common.PodStartTimeout) @@ -241,7 +241,7 @@ var _ = Describe("test annotation", Label("annotation"), func() { } v6PoolName, iPv6PoolObj = common.GenerateExampleIpv6poolObject(ipNum) - iPv6PoolObj.Spec.Vlan = pointer.Int64(ipv6Vlan) + iPv6PoolObj.Spec.Vlan = ptr.To(ipv6Vlan) GinkgoWriter.Printf("try to create ipv6pool: %v \n", v6PoolName) if frame.Info.SpiderSubnetEnabled { ctx, cancel := context.WithTimeout(context.Background(), common.PodStartTimeout) diff --git a/test/e2e/common/deployment.go b/test/e2e/common/deployment.go index 7e4d38575c..89318ad106 100644 --- a/test/e2e/common/deployment.go +++ b/test/e2e/common/deployment.go @@ -18,7 +18,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ) func GenerateExampleDeploymentYaml(dpmName, namespace string, replica int32) *appsv1.Deployment { @@ -31,7 +31,7 @@ func GenerateExampleDeploymentYaml(dpmName, namespace string, replica int32) *ap Name: dpmName, }, Spec: appsv1.DeploymentSpec{ - Replicas: pointer.Int32(replica), + Replicas: ptr.To(replica), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": dpmName, diff --git a/test/e2e/common/job.go b/test/e2e/common/job.go index a78d65c0f8..18eef00070 100644 --- a/test/e2e/common/job.go +++ b/test/e2e/common/job.go @@ -8,7 +8,7 @@ import ( batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ) type JobBehave string @@ -33,9 +33,9 @@ func GenerateExampleJobYaml(behavior JobBehave, jdName, namespace string, parall Kind: "Job", }, Spec: batchv1.JobSpec{ - BackoffLimit: pointer.Int32(0), + BackoffLimit: ptr.To(int32(0)), Parallelism: parallelism, - ManualSelector: pointer.Bool(true), + ManualSelector: ptr.To(true), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ diff --git a/test/e2e/common/kruise.go b/test/e2e/common/kruise.go index 1b3e68d664..cb6c318ca7 100644 --- a/test/e2e/common/kruise.go +++ b/test/e2e/common/kruise.go @@ -10,7 +10,7 @@ import ( frame "github.com/spidernet-io/e2eframework/framework" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -21,7 +21,7 @@ func GenerateExampleKruiseCloneSetYaml(name, namespace string, replica int32) *k Name: name, }, Spec: kruisev1.CloneSetSpec{ - Replicas: pointer.Int32(replica), + Replicas: ptr.To(replica), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": name, @@ -56,7 +56,7 @@ func GenerateExampleKruiseStatefulSetYaml(name, namespace string, replica int32) Name: name, }, Spec: kruisev1.StatefulSetSpec{ - Replicas: pointer.Int32(replica), + Replicas: ptr.To(replica), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": name, diff --git a/test/e2e/common/replicaset.go b/test/e2e/common/replicaset.go index dd039218de..11bd0fcdd0 100644 --- a/test/e2e/common/replicaset.go +++ b/test/e2e/common/replicaset.go @@ -13,7 +13,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ) func GenerateExampleReplicaSetYaml(rsName, namespace string, replica int32) *appsv1.ReplicaSet { @@ -26,7 +26,7 @@ func GenerateExampleReplicaSetYaml(rsName, namespace string, replica int32) *app Name: rsName, }, Spec: appsv1.ReplicaSetSpec{ - Replicas: pointer.Int32(replica), + Replicas: ptr.To(replica), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": rsName, diff --git a/test/e2e/common/spidersubnet.go b/test/e2e/common/spidersubnet.go index bebb210db6..1698b5fded 100644 --- a/test/e2e/common/spidersubnet.go +++ b/test/e2e/common/spidersubnet.go @@ -18,7 +18,6 @@ import ( ip "github.com/spidernet-io/spiderpool/pkg/ip" spiderpool "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" "github.com/spidernet-io/spiderpool/pkg/types" - "k8s.io/utils/pointer" . "github.com/onsi/ginkgo/v2" frame "github.com/spidernet-io/e2eframework/framework" @@ -26,6 +25,7 @@ import ( api_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apitypes "k8s.io/apimachinery/pkg/types" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -45,7 +45,7 @@ func GenerateExampleV4SubnetObject(f *frame.Framework, ipNum int) (string, *spid Name: subnetName, }, Spec: spiderpool.SubnetSpec{ - IPVersion: pointer.Int64(4), + IPVersion: ptr.To(int64(4)), }, } @@ -88,7 +88,7 @@ func GenerateExampleV6SubnetObject(f *frame.Framework, ipNum int) (string, *spid Name: subnetName, }, Spec: spiderpool.SubnetSpec{ - IPVersion: pointer.Int64(6), + IPVersion: ptr.To(int64(6)), }, } for i := 0; i < 5; i++ { diff --git a/test/e2e/common/statefulset.go b/test/e2e/common/statefulset.go index 7e2f3915de..b0f7bd9977 100644 --- a/test/e2e/common/statefulset.go +++ b/test/e2e/common/statefulset.go @@ -13,7 +13,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ) func GenerateExampleStatefulSetYaml(stsName, namespace string, replica int32) *appsv1.StatefulSet { @@ -26,7 +26,7 @@ func GenerateExampleStatefulSetYaml(stsName, namespace string, replica int32) *a Name: stsName, }, Spec: appsv1.StatefulSetSpec{ - Replicas: pointer.Int32(replica), + Replicas: ptr.To(replica), Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "app": stsName, diff --git a/test/e2e/coordinator/macvlan-overlay-one/macvlan_overlay_one_test.go b/test/e2e/coordinator/macvlan-overlay-one/macvlan_overlay_one_test.go index 3d521bef48..60065c45ef 100644 --- a/test/e2e/coordinator/macvlan-overlay-one/macvlan_overlay_one_test.go +++ b/test/e2e/coordinator/macvlan-overlay-one/macvlan_overlay_one_test.go @@ -19,7 +19,7 @@ import ( "github.com/spidernet-io/e2eframework/tools" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" apitypes "k8s.io/apimachinery/pkg/types" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" "github.com/spidernet-io/spiderpool/pkg/ip" @@ -215,7 +215,7 @@ var _ = Describe("MacvlanOverlayOne", Label("overlay", "one-nic", "coordinator") Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -395,7 +395,7 @@ var _ = Describe("MacvlanOverlayOne", Label("overlay", "one-nic", "coordinator") Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -495,10 +495,10 @@ var _ = Describe("MacvlanOverlayOne", Label("overlay", "one-nic", "coordinator") Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, - VlanID: pointer.Int32(200), + VlanID: ptr.To(int32(200)), }, CoordinatorConfig: &spiderpoolv2beta1.CoordinatorSpec{ Mode: &mode, @@ -718,7 +718,7 @@ var _ = Describe("MacvlanOverlayOne", Label("overlay", "one-nic", "coordinator") Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, diff --git a/test/e2e/coordinator/macvlan-underlay-one/macvlan_underlay_one_test.go b/test/e2e/coordinator/macvlan-underlay-one/macvlan_underlay_one_test.go index 81a136c283..63b2c39ca2 100644 --- a/test/e2e/coordinator/macvlan-underlay-one/macvlan_underlay_one_test.go +++ b/test/e2e/coordinator/macvlan-underlay-one/macvlan_underlay_one_test.go @@ -17,7 +17,7 @@ import ( "github.com/spidernet-io/e2eframework/tools" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" apitypes "k8s.io/apimachinery/pkg/types" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" "github.com/spidernet-io/spiderpool/pkg/ip" @@ -196,10 +196,10 @@ var _ = Describe("MacvlanUnderlayOne", Serial, Label("underlay", "one-interface" Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, - VlanID: pointer.Int32(100), + VlanID: ptr.To(int32(100)), }, CoordinatorConfig: &spiderpoolv2beta1.CoordinatorSpec{ PodDefaultRouteNIC: &common.NIC2, diff --git a/test/e2e/ifacer/ifacer_test.go b/test/e2e/ifacer/ifacer_test.go index 6d28670cc5..b0a4e1b5d9 100644 --- a/test/e2e/ifacer/ifacer_test.go +++ b/test/e2e/ifacer/ifacer_test.go @@ -11,7 +11,7 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/e2eframework/tools" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -43,10 +43,10 @@ var _ = Describe("test ifacer", Label("ifacer"), func() { Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, - VlanID: pointer.Int32(int32(vlanInterface)), + VlanID: ptr.To(int32(vlanInterface)), SpiderpoolConfigPools: &spiderpoolv2beta1.SpiderpoolPools{ IPv4IPPool: []string{common.SpiderPoolIPv4PoolDefault}, IPv6IPPool: []string{common.SpiderPoolIPv6PoolDefault}, @@ -251,10 +251,10 @@ var _ = Describe("test ifacer", Label("ifacer"), func() { Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{mainInterface}, - VlanID: pointer.Int32(int32(sameVlanInterface)), + VlanID: ptr.To(int32(sameVlanInterface)), SpiderpoolConfigPools: &spiderpoolv2beta1.SpiderpoolPools{ IPv4IPPool: []string{common.SpiderPoolIPv4PoolDefault}, IPv6IPPool: []string{common.SpiderPoolIPv6PoolDefault}, diff --git a/test/e2e/ippoolcr/ippoolcr_test.go b/test/e2e/ippoolcr/ippoolcr_test.go index 03c5051048..79190dbdb9 100644 --- a/test/e2e/ippoolcr/ippoolcr_test.go +++ b/test/e2e/ippoolcr/ippoolcr_test.go @@ -15,7 +15,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/e2eframework/tools" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -644,7 +644,7 @@ var _ = Describe("test ippool CR", Label("ippoolCR"), func() { Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, SpiderpoolConfigPools: &spiderpoolv2beta1.SpiderpoolPools{ @@ -1009,7 +1009,7 @@ var _ = Describe("test ippool CR", Label("ippoolCR"), func() { Name: poolName, }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: subnet, IPs: []string{ips}, }, @@ -1024,10 +1024,10 @@ var _ = Describe("test ippool CR", Label("ippoolCR"), func() { Name: subnetName, }, Spec: spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(constant.IPv4), + IPVersion: ptr.To(constant.IPv4), Subnet: subnet, IPs: []string{ips}, - Gateway: pointer.String(gateway), + Gateway: ptr.To(gateway), Routes: []spiderpoolv2beta1.Route{route}, }, } @@ -1084,10 +1084,10 @@ var _ = Describe("test ippool CR", Label("ippoolCR"), func() { Name: subnetName, }, Spec: spiderpoolv2beta1.SubnetSpec{ - IPVersion: pointer.Int64(constant.IPv6), + IPVersion: ptr.To(constant.IPv6), Subnet: subnet, IPs: []string{ips}, - Gateway: pointer.String(gateway), + Gateway: ptr.To(gateway), Routes: []spiderpoolv2beta1.Route{route}, }, } @@ -1106,7 +1106,7 @@ var _ = Describe("test ippool CR", Label("ippoolCR"), func() { Name: poolName, }, Spec: spiderpoolv2beta1.IPPoolSpec{ - IPVersion: pointer.Int64(constant.IPv6), + IPVersion: ptr.To(constant.IPv6), Subnet: subnet, IPs: []string{ips}, }, diff --git a/test/e2e/reclaim/reclaim_test.go b/test/e2e/reclaim/reclaim_test.go index d811f836a3..fb336f7f8e 100644 --- a/test/e2e/reclaim/reclaim_test.go +++ b/test/e2e/reclaim/reclaim_test.go @@ -18,7 +18,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -69,7 +69,7 @@ var _ = Describe("test ip with reclaim ip case", Label("reclaim"), func() { // Generate job yaml with different behaviour and create it GinkgoWriter.Printf("try to create Job %v/%v with job behavior is %v \n", namespace, jdName, behavior) - jd := common.GenerateExampleJobYaml(behavior, jdName, namespace, pointer.Int32(1)) + jd := common.GenerateExampleJobYaml(behavior, jdName, namespace, ptr.To(int32(1))) podIppoolAnnoStr := common.GeneratePodIPPoolAnnotations(frame, common.NIC1, globalDefaultV4IPPoolList, globalDefaultV6IPPoolList) jd.Spec.Template.Annotations = map[string]string{constant.AnnoPodIPPool: podIppoolAnnoStr} switch behavior { @@ -212,7 +212,7 @@ var _ = Describe("test ip with reclaim ip case", Label("reclaim"), func() { rsName string = "rs-" + tools.RandomName() rsReplicasNum int32 = 1 jobName string = "job-" + tools.RandomName() - jobNum int32 = *pointer.Int32(1) + jobNum int32 = *ptr.To(int32(1)) ) // Create different controller resources @@ -305,7 +305,7 @@ var _ = Describe("test ip with reclaim ip case", Label("reclaim"), func() { By("G00004: The IP should be reclaimed when deleting the pod with 0 second of grace period") opt := &client.DeleteOptions{ - GracePeriodSeconds: pointer.Int64(0), + GracePeriodSeconds: ptr.To(int64(0)), } // Delete resources with 0 second of grace period GinkgoWriter.Printf("delete pod %v/%v\n", namespace, podName) @@ -511,7 +511,7 @@ var _ = Describe("test ip with reclaim ip case", Label("reclaim"), func() { allocatedIPCount := *v4poolObj.Status.AllocatedIPCount allocatedIPCount++ GinkgoWriter.Printf("allocatedIPCount: %v\n", allocatedIPCount) - v4poolObj.Status.AllocatedIPCount = pointer.Int64(allocatedIPCount) + v4poolObj.Status.AllocatedIPCount = ptr.To(allocatedIPCount) allocatedRecords, err := convert.UnmarshalIPPoolAllocatedIPs(v4poolObj.Status.AllocatedIPs) Expect(err).NotTo(HaveOccurred()) @@ -541,7 +541,7 @@ var _ = Describe("test ip with reclaim ip case", Label("reclaim"), func() { allocatedIPCount := *v6poolObj.Status.AllocatedIPCount allocatedIPCount++ GinkgoWriter.Printf("allocatedIPCount: %v\n", allocatedIPCount) - v6poolObj.Status.AllocatedIPCount = pointer.Int64(allocatedIPCount) + v6poolObj.Status.AllocatedIPCount = ptr.To(allocatedIPCount) allocatedRecords, err := convert.UnmarshalIPPoolAllocatedIPs(v6poolObj.Status.AllocatedIPs) Expect(err).NotTo(HaveOccurred()) diff --git a/test/e2e/spidercoordinator/spidercoordinator_suite_test.go b/test/e2e/spidercoordinator/spidercoordinator_suite_test.go index dd5c94e08b..4778a89c21 100644 --- a/test/e2e/spidercoordinator/spidercoordinator_suite_test.go +++ b/test/e2e/spidercoordinator/spidercoordinator_suite_test.go @@ -39,7 +39,7 @@ var v4PodCIDRString, v6PodCIDRString string var _ = BeforeSuite(func() { defer GinkgoRecover() var e error - frame, e = e2e.NewFramework(GinkgoT(), []func(*runtime.Scheme) error{spiderpoolv2beta1.AddToScheme}) + frame, e = e2e.NewFramework(GinkgoT(), []func(*runtime.Scheme) error{spiderpoolv2beta1.AddToScheme, networkingv1.AddToScheme}) Expect(e).NotTo(HaveOccurred()) if !common.CheckRunOverlayCNI() && !common.CheckCalicoFeatureOn() && !common.CheckCiliumFeatureOn() { diff --git a/test/e2e/spidercoordinator/spidercoordinator_test.go b/test/e2e/spidercoordinator/spidercoordinator_test.go index cf2821587a..aa0a3fb868 100644 --- a/test/e2e/spidercoordinator/spidercoordinator_test.go +++ b/test/e2e/spidercoordinator/spidercoordinator_test.go @@ -6,6 +6,7 @@ import ( "context" "fmt" "reflect" + "strings" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -15,7 +16,7 @@ import ( spiderpoolv2beta1 "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" "github.com/spidernet-io/spiderpool/test/e2e/common" corev1 "k8s.io/api/core/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -183,7 +184,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser // Switch podCIDRType to `auto`. spcCopy := spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(common.PodCIDRTypeAuto) + spcCopy.Spec.PodCIDRType = ptr.To(common.PodCIDRTypeAuto) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) Eventually(func() bool { @@ -230,7 +231,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser // This is a failure scenario where the cluster's default CNI is calico, but the podCIDRType is set to cilium. // Instead, when defaulting to Cilium, set podCIDRType to Calico spcCopy := spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(invalidPodCIDRType) + spcCopy.Spec.PodCIDRType = ptr.To(invalidPodCIDRType) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) Eventually(func() bool { spc, err := GetSpiderCoordinator(common.SpidercoodinatorDefaultName) @@ -255,25 +256,39 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser deployObject.Spec.Template.Annotations = annotations ctx, cancel := context.WithTimeout(context.Background(), common.PodStartTimeout) defer cancel() + podList, err := common.CreateDeployUntilExpectedReplicas(frame, deployObject, ctx) Expect(err).NotTo(HaveOccurred()) ctx, cancel = context.WithTimeout(context.Background(), common.EventOccurTimeout) defer cancel() + errLog := "spidercoordinator: default no ready" for _, pod := range podList.Items { - err = frame.WaitExceptEventOccurred(ctx, common.OwnerPod, pod.Name, pod.Namespace, errLog) - Expect(err).To(Succeed(), "Failed to get 'spidercoordinator not ready', error is: %v", err) + events, err := frame.GetEvents(ctx, common.OwnerPod, pod.Name, pod.Namespace) + Expect(err).To(Succeed(), "Failed to get pod events: %v", err) + + found := false + for _, event := range events.Items { + if strings.Contains(event.Message, errLog) { + found = true + break + } + } + + if !found { + return false + } } return true - }, common.ExecCommandTimeout, common.ForcedWaitingTime).Should(BeTrue()) + }, common.ExecCommandTimeout, common.ForcedWaitingTime*2).Should(BeTrue()) spc, err = GetSpiderCoordinator(common.SpidercoodinatorDefaultName) Expect(err).NotTo(HaveOccurred(), "failed to get SpiderCoordinator, error is %v", err) GinkgoWriter.Printf("Display the default spider coordinator information: %+v \n", spc) spcCopy = spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(validPodCIDRType) + spcCopy.Spec.PodCIDRType = ptr.To(validPodCIDRType) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) Eventually(func() bool { spc, err := GetSpiderCoordinator(common.SpidercoodinatorDefaultName) @@ -311,7 +326,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser // Switch podCIDRType to `None`. spcCopy := spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(common.PodCIDRTypeNone) + spcCopy.Spec.PodCIDRType = ptr.To(common.PodCIDRTypeNone) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) Eventually(func() bool { spc, err := GetSpiderCoordinator(common.SpidercoodinatorDefaultName) @@ -357,7 +372,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser // Switch podCIDRType to `cluster`. spcCopy := spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(common.PodCIDRTypeCluster) + spcCopy.Spec.PodCIDRType = ptr.To(common.PodCIDRTypeCluster) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) DeferCleanup(func() { @@ -367,7 +382,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser // Switch podCIDRType to `auto`. spcCopy := spc.DeepCopy() - spcCopy.Spec.PodCIDRType = pointer.String(common.PodCIDRTypeAuto) + spcCopy.Spec.PodCIDRType = ptr.To(common.PodCIDRTypeAuto) Expect(PatchSpiderCoordinator(spcCopy, spc)).NotTo(HaveOccurred()) Eventually(func() bool { @@ -506,7 +521,7 @@ var _ = Describe("SpiderCoordinator", Label("spidercoordinator", "overlay"), Ser return v4Found && v6Found }, common.ExecCommandTimeout, common.ForcedWaitingTime).Should(BeTrue()) - // delete the serviceCIDR resource + // delete the serviceCIDR resource and see if we can back it err = DeleteServiceCIDR("test") Expect(err).NotTo(HaveOccurred(), "failed to delete service cidr: %v") diff --git a/test/e2e/spidermultus/spidermultus_test.go b/test/e2e/spidermultus/spidermultus_test.go index 21b2fcf44b..8376fc8ef9 100644 --- a/test/e2e/spidermultus/spidermultus_test.go +++ b/test/e2e/spidermultus/spidermultus_test.go @@ -16,7 +16,7 @@ import ( api_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" k8svalidation "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/spiderpool/pkg/constant" "github.com/spidernet-io/spiderpool/pkg/k8s/apis/spiderpool.spidernet.io/v2beta1" @@ -59,7 +59,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -138,7 +138,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -242,7 +242,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -279,7 +279,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.IPVlanCNI), + CniType: ptr.To(constant.IPVlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, @@ -301,10 +301,10 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, - VlanID: pointer.Int32(-1), + VlanID: ptr.To(int32(-1)), }, }, } @@ -320,10 +320,10 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, - VlanID: pointer.Int32(4095), + VlanID: ptr.To(int32(4095)), }, }, } @@ -343,7 +343,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.IPVlanCNI), + CniType: ptr.To(constant.IPVlanCNI), IPVlanConfig: &spiderpoolv2beta1.SpiderIPvlanCniConfig{ Master: []string{common.NIC3}, }, @@ -376,7 +376,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.SriovCNI), + CniType: ptr.To(constant.SriovCNI), SriovConfig: &spiderpoolv2beta1.SpiderSRIOVCniConfig{ ResourceName: "sriov-test", }, @@ -410,7 +410,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: v2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.CustomCNI), + CniType: ptr.To(constant.CustomCNI), CustomCNIConfig: &invalidJson, }, } @@ -451,7 +451,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.SriovCNI), + CniType: ptr.To(constant.SriovCNI), SriovConfig: &spiderpoolv2beta1.SpiderSRIOVCniConfig{ ResourceName: "spidernet.io/mellanoxrdma", EnableRdma: true, @@ -517,11 +517,11 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{"eth0"}, }, - EnableCoordinator: pointer.Bool(false), + EnableCoordinator: ptr.To(false), }, } err := frame.CreateSpiderMultusInstance(smc) @@ -555,7 +555,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu // update the SpiderMultusConfig with bond smc.Spec.MacvlanConfig = &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{"eth0", "eth1"}, - VlanID: pointer.Int32(10), + VlanID: ptr.To(int32(10)), Bond: &spiderpoolv2beta1.BondConfig{ Name: "ens1", Mode: 0, @@ -603,11 +603,11 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig", "overlay"), fu Namespace: namespace, }, Spec: spiderpoolv2beta1.MultusCNIConfigSpec{ - CniType: pointer.String(constant.MacvlanCNI), + CniType: ptr.To(constant.MacvlanCNI), MacvlanConfig: &spiderpoolv2beta1.SpiderMacvlanCniConfig{ Master: []string{common.NIC1}, }, - DisableIPAM: pointer.Bool(true), + DisableIPAM: ptr.To(true), }, } GinkgoWriter.Printf("spidermultus cr: %+v \n", smc) diff --git a/test/e2e/subnet/subnet_test.go b/test/e2e/subnet/subnet_test.go index 388a031e7f..a1fa85ba6e 100644 --- a/test/e2e/subnet/subnet_test.go +++ b/test/e2e/subnet/subnet_test.go @@ -19,7 +19,7 @@ import ( corev1 "k8s.io/api/core/v1" api_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/spidernet-io/spiderpool/pkg/constant" @@ -1403,7 +1403,7 @@ var _ = Describe("test subnet", Label("subnet"), func() { Expect(frame.CreateDaemonSet(dsObject)).To(Succeed()) GinkgoWriter.Printf("create Job %s/%s. \n", namespace, jobName) - jobObject := common.GenerateExampleJobYaml(common.JobTypeRunningForever, jobName, namespace, pointer.Int32(replicasNum)) + jobObject := common.GenerateExampleJobYaml(common.JobTypeRunningForever, jobName, namespace, ptr.To(replicasNum)) Expect(jobObject).NotTo(BeNil()) Expect(frame.CreateJob(jobObject)).To(Succeed()) @@ -1892,7 +1892,7 @@ var _ = Describe("test subnet", Label("subnet"), func() { Eventually(func() bool { v4SubnetObject, err = common.GetSubnetByName(frame, v4SubnetName) Expect(err).NotTo(HaveOccurred()) - v4SubnetObject.Status.AllocatedIPCount = pointer.Int64(1) + v4SubnetObject.Status.AllocatedIPCount = ptr.To(int64(1)) v4SubnetObject.Status.ControlledIPPools = MarshalPreAllocations GinkgoWriter.Printf("update subnet %v for adding dirty record: %+v \n", v4SubnetName, *v4SubnetObject) if err = frame.UpdateResourceStatus(v4SubnetObject); err != nil { @@ -1940,7 +1940,7 @@ var _ = Describe("test subnet", Label("subnet"), func() { Eventually(func() bool { v6SubnetObject, err = common.GetSubnetByName(frame, v6SubnetName) Expect(err).NotTo(HaveOccurred()) - v6SubnetObject.Status.AllocatedIPCount = pointer.Int64(1) + v6SubnetObject.Status.AllocatedIPCount = ptr.To(int64(1)) v6SubnetObject.Status.ControlledIPPools = MarshalPreAllocations GinkgoWriter.Printf("update subnet %v for adding dirty record: %+v \n", v6SubnetName, *v6SubnetObject) if err = frame.UpdateResourceStatus(v6SubnetObject); err != nil { diff --git a/test/yamls/global-kind.yaml b/test/yamls/global-kind.yaml index 8e49fd99be..2911ca0a24 100644 --- a/test/yamls/global-kind.yaml +++ b/test/yamls/global-kind.yaml @@ -18,5 +18,7 @@ kubeadmConfigPatches: nodes: - role: control-plane - role: worker -featureGates: {"AllAlpha":true} -runtimeConfig: {"api/alpha":"true"} +featureGates: + "MultiCIDRServiceAllocator": true +runtimeConfig: + "api/alpha": "true" diff --git a/vendor/github.com/spidernet-io/e2eframework/framework/deployment.go b/vendor/github.com/spidernet-io/e2eframework/framework/deployment.go index 4445e1d356..515f2cc163 100644 --- a/vendor/github.com/spidernet-io/e2eframework/framework/deployment.go +++ b/vendor/github.com/spidernet-io/e2eframework/framework/deployment.go @@ -16,7 +16,7 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/watch" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -110,7 +110,7 @@ func (f *Framework) ScaleDeployment(dpm *appsv1.Deployment, replicas int32) (*ap return nil, ErrWrongInput } - dpm.Spec.Replicas = pointer.Int32(replicas) + dpm.Spec.Replicas = ptr.To(replicas) err := f.UpdateResource(dpm) if err != nil { return nil, err diff --git a/vendor/github.com/spidernet-io/e2eframework/framework/framework.go b/vendor/github.com/spidernet-io/e2eframework/framework/framework.go index c3346ca4d2..86a3e9fdce 100644 --- a/vendor/github.com/spidernet-io/e2eframework/framework/framework.go +++ b/vendor/github.com/spidernet-io/e2eframework/framework/framework.go @@ -10,6 +10,7 @@ import ( "github.com/mohae/deepcopy" batchv1 "k8s.io/api/batch/v1" + network_v1alpha1 "k8s.io/api/networking/v1alpha1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -180,6 +181,11 @@ func NewFramework(t TestingT, schemeRegisterList []func(*runtime.Scheme) error, return nil, fmt.Errorf("failed to add batchv1 Scheme") } + err = network_v1alpha1.AddToScheme(scheme) + if err != nil { + return nil, fmt.Errorf("failed to add networking Scheme") + } + err = apiextensions_v1.AddToScheme(scheme) if err != nil { return nil, fmt.Errorf("failed to add apiextensions_v1 Scheme : %v", err) diff --git a/vendor/github.com/spidernet-io/e2eframework/framework/replicaset.go b/vendor/github.com/spidernet-io/e2eframework/framework/replicaset.go index 79e002e5a3..edfff46ed4 100644 --- a/vendor/github.com/spidernet-io/e2eframework/framework/replicaset.go +++ b/vendor/github.com/spidernet-io/e2eframework/framework/replicaset.go @@ -14,7 +14,7 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/watch" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -107,7 +107,7 @@ func (f *Framework) ScaleReplicaSet(rs *appsv1.ReplicaSet, replicas int32) (*app if rs == nil { return nil, ErrWrongInput } - rs.Spec.Replicas = pointer.Int32(replicas) + rs.Spec.Replicas = ptr.To(replicas) err := f.UpdateResource(rs) if err != nil { return nil, err diff --git a/vendor/github.com/spidernet-io/e2eframework/framework/statefulset.go b/vendor/github.com/spidernet-io/e2eframework/framework/statefulset.go index 9d394172f7..326a112f1c 100644 --- a/vendor/github.com/spidernet-io/e2eframework/framework/statefulset.go +++ b/vendor/github.com/spidernet-io/e2eframework/framework/statefulset.go @@ -6,7 +6,7 @@ import ( "context" "time" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" "github.com/spidernet-io/e2eframework/tools" appsv1 "k8s.io/api/apps/v1" @@ -108,7 +108,7 @@ func (f *Framework) ScaleStatefulSet(sts *appsv1.StatefulSet, replicas int32) (* if sts == nil { return nil, ErrWrongInput } - sts.Spec.Replicas = pointer.Int32(replicas) + sts.Spec.Replicas = ptr.To(replicas) err := f.UpdateResource(sts) if err != nil { return nil, err diff --git a/vendor/modules.txt b/vendor/modules.txt index 64749c9485..8a0c1b1eba 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -550,8 +550,8 @@ github.com/spf13/viper/internal/encoding/javaproperties github.com/spf13/viper/internal/encoding/json github.com/spf13/viper/internal/encoding/toml github.com/spf13/viper/internal/encoding/yaml -# github.com/spidernet-io/e2eframework v0.0.0-20231218105341-1c8a58f971b5 -## explicit; go 1.20 +# github.com/spidernet-io/e2eframework v0.0.0-20240127082814-64fbda07e655 +## explicit; go 1.21 github.com/spidernet-io/e2eframework/framework github.com/spidernet-io/e2eframework/tools # github.com/subosito/gotenv v1.4.2