diff --git a/cmd/yurt-manager/names/controller_names.go b/cmd/yurt-manager/names/controller_names.go index a334c2696dd..107edb970e3 100644 --- a/cmd/yurt-manager/names/controller_names.go +++ b/cmd/yurt-manager/names/controller_names.go @@ -32,7 +32,7 @@ const ( PodBindingController = "pod-binding-controller" GatewayPickupController = "gateway-pickup-controller" GatewayInternalServiceController = "gateway-internal-service-controller" - GatewayPublicServiceController = "gateway-public-service" + GatewayPublicServiceController = "gateway-public-service-controller" GatewayDNSController = "gateway-dns-controller" NodeLifeCycleController = "node-life-cycle-controller" ) diff --git a/pkg/yurtmanager/controller/raven/common.go b/pkg/yurtmanager/controller/raven/common.go deleted file mode 100644 index b69473e47c5..00000000000 --- a/pkg/yurtmanager/controller/raven/common.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2023 The OpenYurt Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package raven - -var ( - ConcurrentReconciles = 1 -) diff --git a/pkg/yurtmanager/controller/raven/dns/dns_controller.go b/pkg/yurtmanager/controller/raven/dns/dns_controller.go index 18a28c8fdd4..88cc5990d0d 100644 --- a/pkg/yurtmanager/controller/raven/dns/dns_controller.go +++ b/pkg/yurtmanager/controller/raven/dns/dns_controller.go @@ -41,8 +41,7 @@ import ( appconfig "github.com/openyurtio/openyurt/cmd/yurt-manager/app/config" "github.com/openyurtio/openyurt/cmd/yurt-manager/names" - common "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) func Format(format string, args ...interface{}) string { @@ -77,7 +76,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(names.GatewayDNSController, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: common.ConcurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: util.ConcurrentReconciles, }) if err != nil { return err @@ -93,7 +92,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { if svc.Spec.Type != corev1.ServiceTypeClusterIP { return false } - return svc.Namespace == utils.WorkingNamespace && svc.Name == utils.GatewayProxyInternalService + return svc.Namespace == util.WorkingNamespace && svc.Name == util.GatewayProxyInternalService })) if err != nil { return err @@ -114,29 +113,29 @@ func (r *ReconcileDns) Reconcile(ctx context.Context, req reconcile.Request) (re }() var proxyAddress = "" //1. ensure configmap to record dns - cm, err := r.getProxyDNS(ctx, client.ObjectKey{Namespace: utils.WorkingNamespace, Name: utils.RavenProxyNodesConfig}) + cm, err := r.getProxyDNS(ctx, client.ObjectKey{Namespace: util.WorkingNamespace, Name: util.RavenProxyNodesConfig}) if err != nil { return reconcile.Result{Requeue: true, RequeueAfter: 2 * time.Second}, err } // 2. acquired raven global config to check whether the proxy s enabled - enableProxy, _ := utils.CheckServer(ctx, r.Client) + enableProxy, _ := util.CheckServer(ctx, r.Client) if !enableProxy { r.recorder.Event(cm.DeepCopy(), corev1.EventTypeNormal, "MaintainDNSRecord", "The Raven Layer 7 proxy feature is not enabled for the cluster") } else { - svc, err := r.getService(ctx, types.NamespacedName{Namespace: utils.WorkingNamespace, Name: utils.GatewayProxyInternalService}) + svc, err := r.getService(ctx, types.NamespacedName{Namespace: util.WorkingNamespace, Name: util.GatewayProxyInternalService}) if err != nil && !apierrors.IsNotFound(err) { - klog.V(2).Infof(Format("failed to get service %s/%s", utils.WorkingNamespace, utils.GatewayProxyInternalService)) + klog.V(2).Infof(Format("failed to get service %s/%s", util.WorkingNamespace, util.GatewayProxyInternalService)) return reconcile.Result{Requeue: true, RequeueAfter: 2 * time.Second}, err } if apierrors.IsNotFound(err) || svc.DeletionTimestamp != nil { r.recorder.Event(cm.DeepCopy(), corev1.EventTypeNormal, "MaintainDNSRecord", - fmt.Sprintf("The Raven Layer 7 proxy lacks service %s/%s", utils.WorkingNamespace, utils.GatewayProxyInternalService)) + fmt.Sprintf("The Raven Layer 7 proxy lacks service %s/%s", util.WorkingNamespace, util.GatewayProxyInternalService)) } if svc != nil { if svc.Spec.ClusterIP == "" { r.recorder.Event(cm.DeepCopy(), corev1.EventTypeNormal, "MaintainDNSRecord", - fmt.Sprintf("The service %s/%s cluster IP is empty", utils.WorkingNamespace, utils.GatewayProxyInternalService)) + fmt.Sprintf("The service %s/%s cluster IP is empty", util.WorkingNamespace, util.GatewayProxyInternalService)) } else { proxyAddress = svc.Spec.ClusterIP } @@ -149,7 +148,7 @@ func (r *ReconcileDns) Reconcile(ctx context.Context, req reconcile.Request) (re if err != nil { return reconcile.Result{Requeue: true, RequeueAfter: 2 * time.Second}, fmt.Errorf("failed to list node, error %s", err.Error()) } - cm.Data[utils.ProxyNodesKey] = buildDNSRecords(nodeList, enableProxy, proxyAddress) + cm.Data[util.ProxyNodesKey] = buildDNSRecords(nodeList, enableProxy, proxyAddress) err = r.updateDNS(cm) if err != nil { return reconcile.Result{Requeue: true, RequeueAfter: 2 * time.Second}, fmt.Errorf("failed to update configmap %s/%s, error %s", @@ -185,11 +184,11 @@ func (r ReconcileDns) getProxyDNS(ctx context.Context, objKey client.ObjectKey) func (r *ReconcileDns) buildRavenDNSConfigMap() error { cm := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ - Name: utils.RavenProxyNodesConfig, - Namespace: utils.WorkingNamespace, + Name: util.RavenProxyNodesConfig, + Namespace: util.WorkingNamespace, }, Data: map[string]string{ - utils.ProxyNodesKey: "", + util.ProxyNodesKey: "", }, } err := r.Client.Create(context.TODO(), cm, &client.CreateOptions{}) diff --git a/pkg/yurtmanager/controller/raven/dns/dns_controller_test.go b/pkg/yurtmanager/controller/raven/dns/dns_controller_test.go index 034673839df..ef243e603dd 100644 --- a/pkg/yurtmanager/controller/raven/dns/dns_controller_test.go +++ b/pkg/yurtmanager/controller/raven/dns/dns_controller_test.go @@ -32,7 +32,7 @@ import ( "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1v1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) const ( @@ -118,7 +118,7 @@ func mockKubeClient() client.Client { { ObjectMeta: metav1.ObjectMeta{ Name: MockProxySvc, - Namespace: utils.WorkingNamespace, + Namespace: util.WorkingNamespace, Labels: map[string]string{ raven.LabelCurrentGateway: MockGateway, raven.LabelCurrentGatewayType: ravenv1v1beta1.Proxy, @@ -137,11 +137,11 @@ func mockKubeClient() client.Client { Items: []v1.ConfigMap{ { ObjectMeta: metav1.ObjectMeta{ - Name: utils.RavenProxyNodesConfig, - Namespace: utils.WorkingNamespace, + Name: util.RavenProxyNodesConfig, + Namespace: util.WorkingNamespace, }, Data: map[string]string{ - utils.ProxyNodesKey: "", + util.ProxyNodesKey: "", }, }, }, @@ -160,7 +160,7 @@ func mockReconciler() *ReconcileDns { func TestReconcileDns_Reconcile(t *testing.T) { r := mockReconciler() t.Run("get dns configmap", func(t *testing.T) { - res, err := r.Reconcile(context.Background(), reconcile.Request{NamespacedName: types.NamespacedName{Namespace: utils.WorkingNamespace, Name: utils.RavenProxyNodesConfig}}) + res, err := r.Reconcile(context.Background(), reconcile.Request{NamespacedName: types.NamespacedName{Namespace: util.WorkingNamespace, Name: util.RavenProxyNodesConfig}}) assert.Equal(t, reconcile.Result{}, res) assert.Equal(t, err, nil) }) diff --git a/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers.go b/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers.go index 08d4871bb13..23a29ceb436 100644 --- a/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers.go +++ b/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers.go @@ -22,7 +22,7 @@ import ( "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/event" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) type EnqueueRequestForServiceEvent struct{} @@ -38,8 +38,8 @@ func (h *EnqueueRequestForServiceEvent) Create(e event.CreateEvent, q workqueue. return } - klog.V(2).Infof(Format("enqueue configmap %s/%s due to service create event", utils.WorkingNamespace, utils.RavenProxyNodesConfig)) - utils.AddDNSConfigmapToWorkQueue(q) + klog.V(2).Infof(Format("enqueue configmap %s/%s due to service create event", util.WorkingNamespace, util.RavenProxyNodesConfig)) + util.AddDNSConfigmapToWorkQueue(q) } func (h *EnqueueRequestForServiceEvent) Update(e event.UpdateEvent, q workqueue.RateLimitingInterface) { @@ -54,8 +54,8 @@ func (h *EnqueueRequestForServiceEvent) Update(e event.UpdateEvent, q workqueue. return } if newSvc.Spec.ClusterIP != oldSvc.Spec.ClusterIP { - klog.V(2).Infof(Format("enqueue configmap %s/%s due to service update event", utils.WorkingNamespace, utils.RavenProxyNodesConfig)) - utils.AddDNSConfigmapToWorkQueue(q) + klog.V(2).Infof(Format("enqueue configmap %s/%s due to service update event", util.WorkingNamespace, util.RavenProxyNodesConfig)) + util.AddDNSConfigmapToWorkQueue(q) } } @@ -65,8 +65,8 @@ func (h *EnqueueRequestForServiceEvent) Delete(e event.DeleteEvent, q workqueue. klog.Error(Format("fail to assert runtime Object to v1.Service")) return } - klog.V(2).Infof(Format("enqueue configmap %s/%s due to service update event", utils.WorkingNamespace, utils.RavenProxyNodesConfig)) - utils.AddDNSConfigmapToWorkQueue(q) + klog.V(2).Infof(Format("enqueue configmap %s/%s due to service update event", util.WorkingNamespace, util.RavenProxyNodesConfig)) + util.AddDNSConfigmapToWorkQueue(q) return } @@ -82,8 +82,8 @@ func (h *EnqueueRequestForNodeEvent) Create(e event.CreateEvent, q workqueue.Rat klog.Error(Format("fail to assert runtime Object to v1.Node")) return } - klog.V(2).Infof(Format("enqueue configmap %s/%s due to node create event", utils.WorkingNamespace, utils.RavenProxyNodesConfig)) - utils.AddDNSConfigmapToWorkQueue(q) + klog.V(2).Infof(Format("enqueue configmap %s/%s due to node create event", util.WorkingNamespace, util.RavenProxyNodesConfig)) + util.AddDNSConfigmapToWorkQueue(q) } func (h *EnqueueRequestForNodeEvent) Update(e event.UpdateEvent, q workqueue.RateLimitingInterface) { @@ -96,8 +96,8 @@ func (h *EnqueueRequestForNodeEvent) Delete(e event.DeleteEvent, q workqueue.Rat klog.Error(Format("fail to assert runtime Object to v1.Node")) return } - klog.V(2).Infof(Format("enqueue configmap %s/%s due to node delete event", utils.WorkingNamespace, utils.RavenProxyNodesConfig)) - utils.AddDNSConfigmapToWorkQueue(q) + klog.V(2).Infof(Format("enqueue configmap %s/%s due to node delete event", util.WorkingNamespace, util.RavenProxyNodesConfig)) + util.AddDNSConfigmapToWorkQueue(q) } func (h *EnqueueRequestForNodeEvent) Generic(e event.GenericEvent, q workqueue.RateLimitingInterface) { diff --git a/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers_test.go b/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers_test.go index c91cfe382bf..bb6ff14a945 100644 --- a/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers_test.go +++ b/pkg/yurtmanager/controller/raven/dns/dns_enqueue_handlers_test.go @@ -25,14 +25,14 @@ import ( "k8s.io/client-go/util/workqueue" "sigs.k8s.io/controller-runtime/pkg/event" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) func mockService() *corev1.Service { return &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ - Namespace: utils.WorkingNamespace, - Name: utils.GatewayProxyInternalService, + Namespace: util.WorkingNamespace, + Name: util.GatewayProxyInternalService, }, Spec: corev1.ServiceSpec{ Type: corev1.ServiceTypeClusterIP, diff --git a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller.go b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller.go index 112713c41c0..bc25e4bf0a8 100644 --- a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller.go +++ b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller.go @@ -45,8 +45,7 @@ import ( appconfig "github.com/openyurtio/openyurt/cmd/yurt-manager/app/config" "github.com/openyurtio/openyurt/cmd/yurt-manager/names" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - common "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) const ( @@ -72,7 +71,7 @@ type ReconcileService struct { client.Client scheme *runtime.Scheme recorder record.EventRecorder - option utils.Option + option util.Option } // newReconciler returns a new reconcile.Reconciler @@ -81,7 +80,7 @@ func newReconciler(c *appconfig.CompletedConfig, mgr manager.Manager) reconcile. Client: mgr.GetClient(), scheme: mgr.GetScheme(), recorder: mgr.GetEventRecorderFor(names.GatewayInternalServiceController), - option: utils.NewOption(), + option: util.NewOption(), } } @@ -89,7 +88,7 @@ func newReconciler(c *appconfig.CompletedConfig, mgr manager.Manager) reconcile. func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(names.GatewayInternalServiceController, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: common.ConcurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: util.ConcurrentReconciles, }) if err != nil { return err @@ -108,10 +107,10 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { if !ok { return false } - if cm.GetNamespace() != utils.WorkingNamespace { + if cm.GetNamespace() != util.WorkingNamespace { return false } - if cm.GetName() != utils.RavenAgentConfig { + if cm.GetName() != util.RavenAgentConfig { return false } return true @@ -137,7 +136,7 @@ func (r *ReconcileService) Reconcile(ctx context.Context, req reconcile.Request) return reconcile.Result{Requeue: true}, err } - enableProxy, _ := utils.CheckServer(ctx, r.Client) + enableProxy, _ := util.CheckServer(ctx, r.Client) r.option.SetProxyOption(enableProxy) if err := r.reconcileService(ctx, req, gwList); err != nil { err = fmt.Errorf(Format("unable to reconcile service: %s", err)) @@ -230,20 +229,20 @@ func (r *ReconcileService) getTargetPort() (insecurePort, securePort int32) { insecurePort = ravenv1beta1.DefaultProxyServerInsecurePort securePort = ravenv1beta1.DefaultProxyServerSecurePort var cm corev1.ConfigMap - err := r.Get(context.TODO(), types.NamespacedName{Namespace: utils.WorkingNamespace, Name: utils.RavenAgentConfig}, &cm) + err := r.Get(context.TODO(), types.NamespacedName{Namespace: util.WorkingNamespace, Name: util.RavenAgentConfig}, &cm) if err != nil { return } if cm.Data == nil { return } - _, internalInsecurePort, err := net.SplitHostPort(cm.Data[utils.ProxyServerInsecurePortKey]) + _, internalInsecurePort, err := net.SplitHostPort(cm.Data[util.ProxyServerInsecurePortKey]) if err == nil { insecure, _ := strconv.Atoi(internalInsecurePort) insecurePort = int32(insecure) } - _, internalSecurePort, err := net.SplitHostPort(cm.Data[utils.ProxyServerSecurePortKey]) + _, internalSecurePort, err := net.SplitHostPort(cm.Data[util.ProxyServerSecurePortKey]) if err == nil { secure, _ := strconv.Atoi(internalSecurePort) securePort = int32(secure) @@ -367,7 +366,7 @@ func (r *ReconcileService) ensureSpecEndpoints(ctx context.Context, gateways []* continue } specAddresses = append(specAddresses, corev1.EndpointAddress{ - IP: utils.GetNodeInternalIP(node), + IP: util.GetNodeInternalIP(node), NodeName: func(n corev1.Node) *string { return &n.Name }(node), }) } diff --git a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller_test.go b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller_test.go index 12166e8b267..9225973b0b2 100644 --- a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller_test.go +++ b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_controller_test.go @@ -32,7 +32,7 @@ import ( "github.com/openyurtio/openyurt/pkg/apis" "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) const ( @@ -114,12 +114,12 @@ func MockReconcile() *ReconcileService { Items: []corev1.ConfigMap{ { ObjectMeta: metav1.ObjectMeta{ - Name: utils.RavenGlobalConfig, - Namespace: utils.WorkingNamespace, + Name: util.RavenGlobalConfig, + Namespace: util.WorkingNamespace, }, Data: map[string]string{ - utils.RavenEnableProxy: "true", - utils.RavenEnableTunnel: "true", + util.RavenEnableProxy: "true", + util.RavenEnableTunnel: "true", }, }, }, @@ -199,14 +199,14 @@ func MockReconcile() *ReconcileService { return &ReconcileService{ Client: fake.NewClientBuilder().WithScheme(scheme).WithRuntimeObjects(objs...).Build(), recorder: record.NewFakeRecorder(100), - option: utils.NewOption(), + option: util.NewOption(), } } func TestReconcileService_Reconcile(t *testing.T) { r := MockReconcile() - _, err := r.Reconcile(context.Background(), reconcile.Request{NamespacedName: types.NamespacedName{Name: utils.GatewayProxyInternalService, Namespace: utils.WorkingNamespace}}) + _, err := r.Reconcile(context.Background(), reconcile.Request{NamespacedName: types.NamespacedName{Name: util.GatewayProxyInternalService, Namespace: util.WorkingNamespace}}) if err != nil { - t.Errorf("failed to reconcile service %s/%s", utils.WorkingNamespace, utils.GatewayProxyInternalService) + t.Errorf("failed to reconcile service %s/%s", util.WorkingNamespace, util.GatewayProxyInternalService) } } diff --git a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_enqueue_handlers.go b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_enqueue_handlers.go index 3c888edb4c4..5b2251a5524 100644 --- a/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_enqueue_handlers.go +++ b/pkg/yurtmanager/controller/raven/gatewayinternalservice/gateway_internal_service_enqueue_handlers.go @@ -25,7 +25,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/event" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) type EnqueueRequestForGatewayEvent struct{} @@ -39,8 +39,8 @@ func (h *EnqueueRequestForGatewayEvent) Create(e event.CreateEvent, q workqueue. if gw.Spec.ExposeType == "" { return } - klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s create event", utils.WorkingNamespace, utils.GatewayProxyInternalService, gw.GetName())) - utils.AddGatewayProxyInternalService(q) + klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s create event", util.WorkingNamespace, util.GatewayProxyInternalService, gw.GetName())) + util.AddGatewayProxyInternalService(q) } func (h *EnqueueRequestForGatewayEvent) Update(e event.UpdateEvent, q workqueue.RateLimitingInterface) { @@ -57,8 +57,8 @@ func (h *EnqueueRequestForGatewayEvent) Update(e event.UpdateEvent, q workqueue. if oldGw.Spec.ExposeType == "" && newGw.Spec.ExposeType == "" { return } - klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s update event", utils.WorkingNamespace, utils.GatewayProxyInternalService, newGw.GetName())) - utils.AddGatewayProxyInternalService(q) + klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s update event", util.WorkingNamespace, util.GatewayProxyInternalService, newGw.GetName())) + util.AddGatewayProxyInternalService(q) } func (h *EnqueueRequestForGatewayEvent) Delete(e event.DeleteEvent, q workqueue.RateLimitingInterface) { @@ -70,8 +70,8 @@ func (h *EnqueueRequestForGatewayEvent) Delete(e event.DeleteEvent, q workqueue. if gw.Spec.ExposeType == "" { return } - klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s delete event", utils.WorkingNamespace, utils.GatewayProxyInternalService, gw.GetName())) - utils.AddGatewayProxyInternalService(q) + klog.V(2).Infof(Format("enqueue service %s/%s due to gateway %s delete event", util.WorkingNamespace, util.GatewayProxyInternalService, gw.GetName())) + util.AddGatewayProxyInternalService(q) } func (h *EnqueueRequestForGatewayEvent) Generic(e event.GenericEvent, q workqueue.RateLimitingInterface) { @@ -89,18 +89,18 @@ func (h *EnqueueRequestForConfigEvent) Create(e event.CreateEvent, q workqueue.R if cm.Data == nil { return } - _, _, err := net.SplitHostPort(cm.Data[utils.ProxyServerInsecurePortKey]) + _, _, err := net.SplitHostPort(cm.Data[util.ProxyServerInsecurePortKey]) if err == nil { klog.V(2).Infof(Format("enqueue service %s/%s due to config %s/%s create event", - utils.WorkingNamespace, utils.GatewayProxyInternalService, utils.WorkingNamespace, utils.RavenAgentConfig)) - utils.AddGatewayProxyInternalService(q) + util.WorkingNamespace, util.GatewayProxyInternalService, util.WorkingNamespace, util.RavenAgentConfig)) + util.AddGatewayProxyInternalService(q) return } - _, _, err = net.SplitHostPort(cm.Data[utils.ProxyServerSecurePortKey]) + _, _, err = net.SplitHostPort(cm.Data[util.ProxyServerSecurePortKey]) if err == nil { klog.V(2).Infof(Format("enqueue service %s/%s due to config %s/%s create event", - utils.WorkingNamespace, utils.GatewayProxyInternalService, utils.WorkingNamespace, utils.RavenAgentConfig)) - utils.AddGatewayProxyInternalService(q) + util.WorkingNamespace, util.GatewayProxyInternalService, util.WorkingNamespace, util.RavenAgentConfig)) + util.AddGatewayProxyInternalService(q) return } } @@ -116,23 +116,23 @@ func (h *EnqueueRequestForConfigEvent) Update(e event.UpdateEvent, q workqueue.R klog.Error(Format("fail to assert runtime Object %s/%s to v1.Configmap", e.ObjectOld.GetNamespace(), e.ObjectOld.GetName())) return } - _, newInsecurePort, newErr := net.SplitHostPort(newCm.Data[utils.ProxyServerInsecurePortKey]) - _, oldInsecurePort, oldErr := net.SplitHostPort(oldCm.Data[utils.ProxyServerInsecurePortKey]) + _, newInsecurePort, newErr := net.SplitHostPort(newCm.Data[util.ProxyServerInsecurePortKey]) + _, oldInsecurePort, oldErr := net.SplitHostPort(oldCm.Data[util.ProxyServerInsecurePortKey]) if newErr == nil && oldErr == nil { if newInsecurePort != oldInsecurePort { klog.V(2).Infof(Format("enqueue service %s/%s due to config %s/%s update event", - utils.WorkingNamespace, utils.GatewayProxyInternalService, utils.WorkingNamespace, utils.RavenAgentConfig)) - utils.AddGatewayProxyInternalService(q) + util.WorkingNamespace, util.GatewayProxyInternalService, util.WorkingNamespace, util.RavenAgentConfig)) + util.AddGatewayProxyInternalService(q) return } } - _, newSecurePort, newErr := net.SplitHostPort(newCm.Data[utils.ProxyServerSecurePortKey]) - _, oldSecurePort, oldErr := net.SplitHostPort(oldCm.Data[utils.ProxyServerSecurePortKey]) + _, newSecurePort, newErr := net.SplitHostPort(newCm.Data[util.ProxyServerSecurePortKey]) + _, oldSecurePort, oldErr := net.SplitHostPort(oldCm.Data[util.ProxyServerSecurePortKey]) if newErr == nil && oldErr == nil { if newSecurePort != oldSecurePort { klog.V(2).Infof(Format("enqueue service %s/%s due to config %s/%s update event", - utils.WorkingNamespace, utils.GatewayProxyInternalService, utils.WorkingNamespace, utils.RavenAgentConfig)) - utils.AddGatewayProxyInternalService(q) + util.WorkingNamespace, util.GatewayProxyInternalService, util.WorkingNamespace, util.RavenAgentConfig)) + util.AddGatewayProxyInternalService(q) return } } diff --git a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go index 49239234832..ed22958459b 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go +++ b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go @@ -44,9 +44,8 @@ import ( calicov3 "github.com/openyurtio/openyurt/pkg/apis/calico/v3" "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - common "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven" "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/gatewaypickup/config" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" nodeutil "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/util/node" ) @@ -100,7 +99,7 @@ func newReconciler(c *appconfig.CompletedConfig, mgr manager.Manager) reconcile. func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(names.GatewayPickupController, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: common.ConcurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: util.ConcurrentReconciles, }) if err != nil { return err @@ -124,10 +123,10 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { if !ok { return false } - if cm.GetNamespace() != utils.WorkingNamespace { + if cm.GetNamespace() != util.WorkingNamespace { return false } - if cm.GetName() != utils.RavenGlobalConfig { + if cm.GetName() != util.RavenGlobalConfig { return false } return true @@ -193,7 +192,7 @@ func (r *ReconcileGateway) Reconcile(ctx context.Context, req reconcile.Request) } nodes = append(nodes, ravenv1beta1.NodeInfo{ NodeName: v.Name, - PrivateIP: utils.GetNodeInternalIP(v), + PrivateIP: util.GetNodeInternalIP(v), Subnets: podCIDRs, }) } @@ -251,7 +250,7 @@ func (r *ReconcileGateway) electActiveEndpoint(nodeList corev1.NodeList, gw *rav } klog.V(1).Infof(Format("Ready node has %d, node %v", len(readyNodes), readyNodes)) // init a endpoints slice - enableProxy, enableTunnel := utils.CheckServer(context.TODO(), r.Client) + enableProxy, enableTunnel := util.CheckServer(context.TODO(), r.Client) eps := make([]*ravenv1beta1.Endpoint, 0) if enableProxy { eps = append(eps, electEndpoints(gw, ravenv1beta1.Proxy, readyNodes)...) @@ -368,16 +367,16 @@ func getActiveEndpointsInfo(eps []*ravenv1beta1.Endpoint) (map[string][]string, } func (r *ReconcileGateway) configEndpoints(ctx context.Context, gw *ravenv1beta1.Gateway) { - enableProxy, enableTunnel := utils.CheckServer(ctx, r.Client) + enableProxy, enableTunnel := util.CheckServer(ctx, r.Client) for idx, val := range gw.Status.ActiveEndpoints { if gw.Status.ActiveEndpoints[idx].Config == nil { gw.Status.ActiveEndpoints[idx].Config = make(map[string]string) } switch val.Type { case ravenv1beta1.Proxy: - gw.Status.ActiveEndpoints[idx].Config[utils.RavenEnableProxy] = strconv.FormatBool(enableProxy) + gw.Status.ActiveEndpoints[idx].Config[util.RavenEnableProxy] = strconv.FormatBool(enableProxy) case ravenv1beta1.Tunnel: - gw.Status.ActiveEndpoints[idx].Config[utils.RavenEnableTunnel] = strconv.FormatBool(enableTunnel) + gw.Status.ActiveEndpoints[idx].Config[util.RavenEnableTunnel] = strconv.FormatBool(enableTunnel) default: } } diff --git a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller_test.go b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller_test.go index 585d6f2fc23..20eb477125d 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller_test.go +++ b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller_test.go @@ -27,7 +27,7 @@ import ( ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/gatewaypickup/config" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) var ( @@ -52,12 +52,12 @@ var ( func TestReconcileGateway_electActiveEndpoint(t *testing.T) { obj := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ - Name: utils.RavenGlobalConfig, - Namespace: utils.WorkingNamespace, + Name: util.RavenGlobalConfig, + Namespace: util.WorkingNamespace, }, Data: map[string]string{ - utils.RavenEnableProxy: "true", - utils.RavenEnableTunnel: "true", + util.RavenEnableProxy: "true", + util.RavenEnableTunnel: "true", }, } diff --git a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_enqueue_handlers.go b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_enqueue_handlers.go index 4d628735257..ed9fc81066d 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_enqueue_handlers.go +++ b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_enqueue_handlers.go @@ -27,7 +27,7 @@ import ( "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) type EnqueueGatewayForNode struct{} @@ -42,7 +42,7 @@ func (e *EnqueueGatewayForNode) Create(evt event.CreateEvent, q workqueue.RateLi klog.V(5).Infof(Format("will enqueue gateway as node(%s) has been created", node.GetName())) if gwName, exist := node.Labels[raven.LabelCurrentGateway]; exist { - utils.AddGatewayToWorkQueue(gwName, q) + util.AddGatewayToWorkQueue(gwName, q) return } klog.V(4).Infof(Format("node(%s) does not belong to any gateway", node.GetName())) @@ -74,8 +74,8 @@ func (e *EnqueueGatewayForNode) Update(evt event.UpdateEvent, q workqueue.RateLi } if oldGwName != newGwName || statusChanged(oldNode, newNode) { - utils.AddGatewayToWorkQueue(oldGwName, q) - utils.AddGatewayToWorkQueue(newGwName, q) + util.AddGatewayToWorkQueue(oldGwName, q) + util.AddGatewayToWorkQueue(newGwName, q) } } @@ -95,7 +95,7 @@ func (e *EnqueueGatewayForNode) Delete(evt event.DeleteEvent, q workqueue.RateLi // enqueue the gateway that the node belongs to klog.V(5).Infof(Format("Will enqueue pool(%s) as node(%s) has been deleted", gwName, node.GetName())) - utils.AddGatewayToWorkQueue(gwName, q) + util.AddGatewayToWorkQueue(gwName, q) } // Generic implements EventHandler @@ -132,7 +132,7 @@ func (e *EnqueueGatewayForRavenConfig) Update(evt event.UpdateEvent, q workqueue return } - if oldCm.Data[utils.RavenEnableProxy] != newCm.Data[utils.RavenEnableProxy] { + if oldCm.Data[util.RavenEnableProxy] != newCm.Data[util.RavenEnableProxy] { klog.V(2).Infof(Format("Will config all gateway as raven-cfg has been updated")) if err := e.enqueueGateways(q); err != nil { klog.Error(Format("failed to config all gateway, error %s", err.Error())) @@ -140,7 +140,7 @@ func (e *EnqueueGatewayForRavenConfig) Update(evt event.UpdateEvent, q workqueue } } - if oldCm.Data[utils.RavenEnableTunnel] != newCm.Data[utils.RavenEnableTunnel] { + if oldCm.Data[util.RavenEnableTunnel] != newCm.Data[util.RavenEnableTunnel] { klog.V(2).Infof(Format("Will config all gateway as raven-cfg has been updated")) if err := e.enqueueGateways(q); err != nil { klog.Error(Format("failed to config all gateway, error %s", err.Error())) @@ -173,7 +173,7 @@ func (e *EnqueueGatewayForRavenConfig) enqueueGateways(q workqueue.RateLimitingI return err } for _, gw := range gwList.Items { - utils.AddGatewayToWorkQueue(gw.Name, q) + util.AddGatewayToWorkQueue(gw.Name, q) } return nil } diff --git a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller.go b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller.go index 9d6e42e34d9..448c123fafc 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller.go +++ b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller.go @@ -44,8 +44,7 @@ import ( "github.com/openyurtio/openyurt/cmd/yurt-manager/names" "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - common "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) const ( @@ -96,7 +95,7 @@ type ReconcileService struct { client.Client scheme *runtime.Scheme recorder record.EventRecorder - option utils.Option + option util.Option svcInfo *serviceInformation } @@ -106,7 +105,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { Client: mgr.GetClient(), scheme: mgr.GetScheme(), recorder: mgr.GetEventRecorderFor(names.GatewayPublicServiceController), - option: utils.NewOption(), + option: util.NewOption(), svcInfo: newServiceInfo(), } } @@ -115,7 +114,7 @@ func newReconciler(mgr manager.Manager) reconcile.Reconciler { func add(mgr manager.Manager, r reconcile.Reconciler) error { // Create a new controller c, err := controller.New(names.GatewayPublicServiceController, mgr, controller.Options{ - Reconciler: r, MaxConcurrentReconciles: common.ConcurrentReconciles, + Reconciler: r, MaxConcurrentReconciles: util.ConcurrentReconciles, }) if err != nil { return err @@ -134,10 +133,10 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { if !ok { return false } - if cm.GetNamespace() != utils.WorkingNamespace { + if cm.GetNamespace() != util.WorkingNamespace { return false } - if cm.GetName() != utils.RavenAgentConfig { + if cm.GetName() != util.RavenAgentConfig { return false } return true @@ -204,7 +203,7 @@ func (r *ReconcileService) setOptions(ctx context.Context, gw *ravenv1beta1.Gate return } - enableProxy, enableTunnel := utils.CheckServer(ctx, r.Client) + enableProxy, enableTunnel := util.CheckServer(ctx, r.Client) if !enableTunnel { r.option.SetTunnelOption(enableTunnel) klog.V(4).Info(Format("set option for tunnel (%t), reason: raven-cfg close tunnel ", false)) @@ -228,7 +227,7 @@ func (r *ReconcileService) getGateway(ctx context.Context, req reconcile.Request func (r *ReconcileService) generateServiceName(services []corev1.Service) { for _, svc := range services { - epName := svc.Labels[utils.LabelCurrentGatewayEndpoints] + epName := svc.Labels[util.LabelCurrentGatewayEndpoints] epType := svc.Labels[raven.LabelCurrentGatewayType] if epName == "" || epType == "" { continue @@ -401,19 +400,19 @@ func (r *ReconcileService) getTargetPort() (proxyPort, tunnelPort int32) { proxyPort = ravenv1beta1.DefaultProxyServerExposedPort tunnelPort = ravenv1beta1.DefaultTunnelServerExposedPort var cm corev1.ConfigMap - err := r.Get(context.TODO(), types.NamespacedName{Namespace: utils.WorkingNamespace, Name: utils.RavenAgentConfig}, &cm) + err := r.Get(context.TODO(), types.NamespacedName{Namespace: util.WorkingNamespace, Name: util.RavenAgentConfig}, &cm) if err != nil { return } if cm.Data == nil { return } - _, proxyExposedPort, err := net.SplitHostPort(cm.Data[utils.ProxyServerExposedPortKey]) + _, proxyExposedPort, err := net.SplitHostPort(cm.Data[util.ProxyServerExposedPortKey]) if err == nil { proxy, _ := strconv.Atoi(proxyExposedPort) proxyPort = int32(proxy) } - _, tunnelExposedPort, err := net.SplitHostPort(cm.Data[utils.VPNServerExposedPortKey]) + _, tunnelExposedPort, err := net.SplitHostPort(cm.Data[util.VPNServerExposedPortKey]) if err == nil { tunnel, _ := strconv.Atoi(tunnelExposedPort) tunnelPort = int32(tunnel) @@ -475,11 +474,11 @@ func (r *ReconcileService) acquiredSpecEndpoints(ctx context.Context, gateway *r endpoints = append(endpoints, corev1.Endpoints{ ObjectMeta: metav1.ObjectMeta{ Name: name, - Namespace: utils.WorkingNamespace, + Namespace: util.WorkingNamespace, Labels: map[string]string{ - raven.LabelCurrentGateway: gateway.GetName(), - raven.LabelCurrentGatewayType: ravenv1beta1.Proxy, - utils.LabelCurrentGatewayEndpoints: aep.NodeName, + raven.LabelCurrentGateway: gateway.GetName(), + raven.LabelCurrentGatewayType: ravenv1beta1.Proxy, + util.LabelCurrentGatewayEndpoints: aep.NodeName, }, }, Subsets: []corev1.EndpointSubset{ @@ -502,11 +501,11 @@ func (r *ReconcileService) acquiredSpecEndpoints(ctx context.Context, gateway *r endpoints = append(endpoints, corev1.Endpoints{ ObjectMeta: metav1.ObjectMeta{ Name: name, - Namespace: utils.WorkingNamespace, + Namespace: util.WorkingNamespace, Labels: map[string]string{ - raven.LabelCurrentGateway: gateway.GetName(), - raven.LabelCurrentGatewayType: ravenv1beta1.Tunnel, - utils.LabelCurrentGatewayEndpoints: aep.NodeName, + raven.LabelCurrentGateway: gateway.GetName(), + raven.LabelCurrentGatewayType: ravenv1beta1.Tunnel, + util.LabelCurrentGatewayEndpoints: aep.NodeName, }, }, Subsets: []corev1.EndpointSubset{ @@ -533,7 +532,7 @@ func (r *ReconcileService) getEndpointsAddress(ctx context.Context, name string) klog.Errorf(Format("failed to get node %s for get active endpoints address, error %s", name, err.Error())) return nil, err } - return &corev1.EndpointAddress{NodeName: func(n corev1.Node) *string { return &n.Name }(node), IP: utils.GetNodeInternalIP(node)}, nil + return &corev1.EndpointAddress{NodeName: func(n corev1.Node) *string { return &n.Name }(node), IP: util.GetNodeInternalIP(node)}, nil } func acquiredSpecService(gateway *ravenv1beta1.Gateway, gatewayType string, proxyPort, tunnelPort int32) *corev1.ServiceList { @@ -552,12 +551,12 @@ func acquiredSpecService(gateway *ravenv1beta1.Gateway, gatewayType string, prox case ravenv1beta1.Proxy: services = append(services, corev1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: utils.FormatName(fmt.Sprintf("%s-%s", utils.GatewayProxyServiceNamePrefix, gateway.GetName())), - Namespace: utils.WorkingNamespace, + Name: util.FormatName(fmt.Sprintf("%s-%s", util.GatewayProxyServiceNamePrefix, gateway.GetName())), + Namespace: util.WorkingNamespace, Labels: map[string]string{ - raven.LabelCurrentGateway: gateway.GetName(), - raven.LabelCurrentGatewayType: ravenv1beta1.Proxy, - utils.LabelCurrentGatewayEndpoints: aep.NodeName, + raven.LabelCurrentGateway: gateway.GetName(), + raven.LabelCurrentGatewayType: ravenv1beta1.Proxy, + util.LabelCurrentGatewayEndpoints: aep.NodeName, }, }, Spec: corev1.ServiceSpec{ @@ -578,12 +577,12 @@ func acquiredSpecService(gateway *ravenv1beta1.Gateway, gatewayType string, prox case ravenv1beta1.Tunnel: services = append(services, corev1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: utils.FormatName(fmt.Sprintf("%s-%s", utils.GatewayTunnelServiceNamePrefix, gateway.GetName())), - Namespace: utils.WorkingNamespace, + Name: util.FormatName(fmt.Sprintf("%s-%s", util.GatewayTunnelServiceNamePrefix, gateway.GetName())), + Namespace: util.WorkingNamespace, Labels: map[string]string{ - raven.LabelCurrentGateway: gateway.GetName(), - raven.LabelCurrentGatewayType: ravenv1beta1.Tunnel, - utils.LabelCurrentGatewayEndpoints: aep.NodeName, + raven.LabelCurrentGateway: gateway.GetName(), + raven.LabelCurrentGatewayType: ravenv1beta1.Tunnel, + util.LabelCurrentGatewayEndpoints: aep.NodeName, }, }, Spec: corev1.ServiceSpec{ @@ -613,7 +612,7 @@ func classifyService(current, spec *corev1.ServiceList) (added, updated, deleted getKey := func(svc *corev1.Service) string { epType := svc.Labels[raven.LabelCurrentGatewayType] - epName := svc.Labels[utils.LabelCurrentGatewayEndpoints] + epName := svc.Labels[util.LabelCurrentGatewayEndpoints] if epType == "" { return "" } @@ -656,7 +655,7 @@ func classifyEndpoints(current, spec *corev1.EndpointsList) (added, updated, del getKey := func(ep *corev1.Endpoints) string { epType := ep.Labels[raven.LabelCurrentGatewayType] - epName := ep.Labels[utils.LabelCurrentGatewayEndpoints] + epName := ep.Labels[util.LabelCurrentGatewayEndpoints] if epType == "" { return "" } diff --git a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller_test.go b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller_test.go index 6a9e6de30ce..4151f0e7f74 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller_test.go +++ b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_controller_test.go @@ -32,7 +32,7 @@ import ( "github.com/openyurtio/openyurt/pkg/apis" "github.com/openyurtio/openyurt/pkg/apis/raven" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) const ( @@ -114,12 +114,12 @@ func MockReconcile() *ReconcileService { Items: []corev1.ConfigMap{ { ObjectMeta: metav1.ObjectMeta{ - Name: utils.RavenGlobalConfig, - Namespace: utils.WorkingNamespace, + Name: util.RavenGlobalConfig, + Namespace: util.WorkingNamespace, }, Data: map[string]string{ - utils.RavenEnableProxy: "true", - utils.RavenEnableTunnel: "true", + util.RavenEnableProxy: "true", + util.RavenEnableTunnel: "true", }, }, }, @@ -203,7 +203,7 @@ func MockReconcile() *ReconcileService { return &ReconcileService{ Client: fake.NewClientBuilder().WithScheme(scheme).WithRuntimeObjects(objs...).Build(), recorder: record.NewFakeRecorder(100), - option: utils.NewOption(), + option: util.NewOption(), svcInfo: newServiceInfo(), } } diff --git a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_enqueue_handlers.go b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_enqueue_handlers.go index 2185365f0ac..5147ad7c89a 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_enqueue_handlers.go +++ b/pkg/yurtmanager/controller/raven/gatewaypublicservice/gateway_public_service_enqueue_handlers.go @@ -27,7 +27,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/event" ravenv1beta1 "github.com/openyurtio/openyurt/pkg/apis/raven/v1beta1" - "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/utils" + "github.com/openyurtio/openyurt/pkg/yurtmanager/controller/raven/util" ) type EnqueueRequestForGatewayEvent struct{} @@ -42,7 +42,7 @@ func (h *EnqueueRequestForGatewayEvent) Create(e event.CreateEvent, q workqueue. return } klog.V(2).Infof(Format("enqueue gateway %s as create event", gw.GetName())) - utils.AddGatewayToWorkQueue(gw.GetName(), q) + util.AddGatewayToWorkQueue(gw.GetName(), q) } func (h *EnqueueRequestForGatewayEvent) Update(e event.UpdateEvent, q workqueue.RateLimitingInterface) { @@ -58,7 +58,7 @@ func (h *EnqueueRequestForGatewayEvent) Update(e event.UpdateEvent, q workqueue. } if needUpdate(newGw, oldGw) { klog.V(2).Infof(Format("enqueue gateway %s as update event", newGw.GetName())) - utils.AddGatewayToWorkQueue(newGw.GetName(), q) + util.AddGatewayToWorkQueue(newGw.GetName(), q) } } @@ -75,7 +75,7 @@ func (h *EnqueueRequestForGatewayEvent) Delete(e event.DeleteEvent, q workqueue. return } klog.V(2).Infof(Format("enqueue gateway %s as delete event", gw.GetName())) - utils.AddGatewayToWorkQueue(gw.GetName(), q) + util.AddGatewayToWorkQueue(gw.GetName(), q) } func (h *EnqueueRequestForGatewayEvent) Generic(e event.GenericEvent, q workqueue.RateLimitingInterface) { @@ -86,7 +86,7 @@ func needUpdate(newObj, oldObj *ravenv1beta1.Gateway) bool { if newObj.Spec.ExposeType != oldObj.Spec.ExposeType { return true } - if utils.HashObject(newObj.Status.ActiveEndpoints) != utils.HashObject(oldObj.Status.ActiveEndpoints) { + if util.HashObject(newObj.Status.ActiveEndpoints) != util.HashObject(oldObj.Status.ActiveEndpoints) { return true } return false @@ -105,12 +105,12 @@ func (h *EnqueueRequestForConfigEvent) Create(e event.CreateEvent, q workqueue.R if cm.Data == nil { return } - if _, _, err := net.SplitHostPort(cm.Data[utils.ProxyServerExposedPortKey]); err == nil { - h.addExposedGateway(q) + if _, _, err := net.SplitHostPort(cm.Data[util.ProxyServerExposedPortKey]); err == nil { + addExposedGateway(h.client, q) return } - if _, _, err := net.SplitHostPort(cm.Data[utils.VPNServerExposedPortKey]); err == nil { - h.addExposedGateway(q) + if _, _, err := net.SplitHostPort(cm.Data[util.VPNServerExposedPortKey]); err == nil { + addExposedGateway(h.client, q) return } } @@ -126,16 +126,16 @@ func (h *EnqueueRequestForConfigEvent) Update(e event.UpdateEvent, q workqueue.R klog.Error(Format("fail to assert runtime Object %s/%s to v1.Configmap,", e.ObjectOld.GetNamespace(), e.ObjectOld.GetName())) return } - _, newProxyPort, newErr := net.SplitHostPort(newCm.Data[utils.ProxyServerExposedPortKey]) - _, oldProxyPort, oldErr := net.SplitHostPort(oldCm.Data[utils.ProxyServerExposedPortKey]) + _, newProxyPort, newErr := net.SplitHostPort(newCm.Data[util.ProxyServerExposedPortKey]) + _, oldProxyPort, oldErr := net.SplitHostPort(oldCm.Data[util.ProxyServerExposedPortKey]) if newErr == nil && oldErr == nil && newProxyPort != oldProxyPort { - h.addExposedGateway(q) + addExposedGateway(h.client, q) return } - _, newTunnelPort, newErr := net.SplitHostPort(newCm.Data[utils.VPNServerExposedPortKey]) - _, oldTunnelPort, oldErr := net.SplitHostPort(oldCm.Data[utils.VPNServerExposedPortKey]) + _, newTunnelPort, newErr := net.SplitHostPort(newCm.Data[util.VPNServerExposedPortKey]) + _, oldTunnelPort, oldErr := net.SplitHostPort(oldCm.Data[util.VPNServerExposedPortKey]) if newErr == nil && oldErr == nil && newTunnelPort != oldTunnelPort { - h.addExposedGateway(q) + addExposedGateway(h.client, q) return } } @@ -148,16 +148,16 @@ func (h *EnqueueRequestForConfigEvent) Generic(e event.GenericEvent, q workqueue return } -func (h *EnqueueRequestForConfigEvent) addExposedGateway(q workqueue.RateLimitingInterface) { +func addExposedGateway(client client.Client, q workqueue.RateLimitingInterface) { var gwList ravenv1beta1.GatewayList - err := h.client.List(context.TODO(), &gwList) + err := client.List(context.TODO(), &gwList) if err != nil { return } for _, gw := range gwList.Items { if gw.Spec.ExposeType == ravenv1beta1.ExposeTypeLoadBalancer { klog.V(2).Infof(Format("enqueue gateway %s", gw.GetName())) - utils.AddGatewayToWorkQueue(gw.GetName(), q) + util.AddGatewayToWorkQueue(gw.GetName(), q) } } } diff --git a/pkg/yurtmanager/controller/raven/util/constants.go b/pkg/yurtmanager/controller/raven/util/constants.go new file mode 100644 index 00000000000..f8bed485c19 --- /dev/null +++ b/pkg/yurtmanager/controller/raven/util/constants.go @@ -0,0 +1,37 @@ +/* +Copyright 2023 The OpenYurt Authors. + +Licensed under the Apache License, Version 2.0 (the License); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an AS IS BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package util + +const ( + ConcurrentReconciles = 1 + WorkingNamespace = "kube-system" + RavenGlobalConfig = "raven-cfg" + RavenAgentConfig = "raven-agent-config" + LabelCurrentGatewayEndpoints = "raven.openyurt.io/endpoints-name" + GatewayProxyInternalService = "x-raven-proxy-internal-svc" + GatewayProxyServiceNamePrefix = "x-raven-proxy-svc" + GatewayTunnelServiceNamePrefix = "x-raven-tunnel-svc" + + RavenProxyNodesConfig = "edge-tunnel-nodes" + ProxyNodesKey = "tunnel-nodes" + ProxyServerSecurePortKey = "proxy-internal-secure-addr" + ProxyServerInsecurePortKey = "proxy-internal-insecure-addr" + ProxyServerExposedPortKey = "proxy-external-addr" + VPNServerExposedPortKey = "tunnel-bind-addr" + RavenEnableProxy = "enable-l7-proxy" + RavenEnableTunnel = "enable-l3-tunnel" +) diff --git a/pkg/yurtmanager/controller/raven/utils/options.go b/pkg/yurtmanager/controller/raven/util/options.go similarity index 90% rename from pkg/yurtmanager/controller/raven/utils/options.go rename to pkg/yurtmanager/controller/raven/util/options.go index 89d244704b3..8348224def5 100644 --- a/pkg/yurtmanager/controller/raven/utils/options.go +++ b/pkg/yurtmanager/controller/raven/util/options.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package utils +package util import "sync" @@ -23,7 +23,6 @@ type Option interface { SetTunnelOption(enable bool) GetProxyOption() bool GetTunnelOption() bool - Reset() } type ServerOption struct { @@ -59,10 +58,3 @@ func (o *ServerOption) GetTunnelOption() bool { defer o.mu.Unlock() return o.enableTunnel } - -func (o *ServerOption) Reset() { - o.mu.Lock() - defer o.mu.Unlock() - o.enableTunnel = false - o.enableProxy = false -} diff --git a/pkg/yurtmanager/controller/raven/utils/utils.go b/pkg/yurtmanager/controller/raven/util/util.go similarity index 71% rename from pkg/yurtmanager/controller/raven/utils/utils.go rename to pkg/yurtmanager/controller/raven/util/util.go index b47ad097f41..4911f9765ca 100644 --- a/pkg/yurtmanager/controller/raven/utils/utils.go +++ b/pkg/yurtmanager/controller/raven/util/util.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package utils +package util import ( "context" @@ -24,7 +24,6 @@ import ( "fmt" "math/rand" "net" - "strconv" "strings" "gopkg.in/yaml.v3" @@ -36,25 +35,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" ) -const ( - WorkingNamespace = "kube-system" - RavenGlobalConfig = "raven-cfg" - LabelCurrentGatewayEndpoints = "raven.openyurt.io/endpoints-name" - GatewayProxyInternalService = "x-raven-proxy-internal-svc" - GatewayProxyServiceNamePrefix = "x-raven-proxy-svc" - GatewayTunnelServiceNamePrefix = "x-raven-tunnel-svc" - - RavenProxyNodesConfig = "edge-tunnel-nodes" - ProxyNodesKey = "tunnel-nodes" - RavenAgentConfig = "raven-agent-config" - ProxyServerSecurePortKey = "proxy-internal-secure-addr" - ProxyServerInsecurePortKey = "proxy-internal-insecure-addr" - ProxyServerExposedPortKey = "proxy-external-addr" - VPNServerExposedPortKey = "tunnel-bind-addr" - RavenEnableProxy = "enable-l7-proxy" - RavenEnableTunnel = "enable-l3-tunnel" -) - // GetNodeInternalIP returns internal ip of the given `node`. func GetNodeInternalIP(node corev1.Node) string { var ip string @@ -94,14 +74,6 @@ func CheckServer(ctx context.Context, client client.Client) (enableProxy, enable return enableProxy, enableTunnel } -func AddNodePoolToWorkQueue(npName string, q workqueue.RateLimitingInterface) { - if npName != "" { - q.Add(reconcile.Request{ - NamespacedName: types.NamespacedName{Name: npName}, - }) - } -} - func AddDNSConfigmapToWorkQueue(q workqueue.RateLimitingInterface) { q.Add(reconcile.Request{ NamespacedName: types.NamespacedName{Namespace: WorkingNamespace, Name: RavenProxyNodesConfig}, @@ -114,20 +86,6 @@ func AddGatewayProxyInternalService(q workqueue.RateLimitingInterface) { }) } -func IsValidPort(s string) bool { - if s == "" { - return false - } - port, err := strconv.Atoi(s) - if err != nil { - return false - } - if port < 0 || port > 65535 { - return false - } - return true -} - func HashObject(o interface{}) string { data, _ := json.Marshal(o) var a interface{} diff --git a/pkg/yurtmanager/webhook/gateway/v1beta1/gateway_validation.go b/pkg/yurtmanager/webhook/gateway/v1beta1/gateway_validation.go index 6c9008cb53c..b75aafa4bdc 100644 --- a/pkg/yurtmanager/webhook/gateway/v1beta1/gateway_validation.go +++ b/pkg/yurtmanager/webhook/gateway/v1beta1/gateway_validation.go @@ -84,6 +84,26 @@ func validate(g *v1beta1.Gateway) error { } } + if g.Spec.TunnelConfig.Replicas > 1 { + fldPath := field.NewPath("spec").Child("tunnelConfig.Replicas") + errList = append(errList, field.Invalid(fldPath, g.Spec.ExposeType, "the 'Replicas' field can not be greater than 1")) + } + + if g.Spec.ProxyConfig.Replicas > 1 { + num := 0 + for _, ep := range g.Spec.Endpoints { + if ep.Type == v1beta1.Proxy { + num++ + } + } + if g.Spec.ProxyConfig.Replicas > num { + fldPath := field.NewPath("spec").Child("endpoints") + errList = append(errList, field.Invalid(fldPath, g.Spec.ExposeType, + fmt.Sprintf("the 'endpoints' field available proxy endpoints %d is less than the 'proxyConfig.Replicas'%d", num, g.Spec.ProxyConfig.Replicas))) + } + + } + if len(g.Spec.Endpoints) != 0 { underNAT := g.Spec.Endpoints[0].UnderNAT for i, ep := range g.Spec.Endpoints {