metadata controller
diff --git a/pkg/plugins/runtime/k8s/controllers/metadata_controller.go b/pkg/plugins/runtime/k8s/controllers/metadata_controller.go
new file mode 100644
index 0000000..a6771c7
--- /dev/null
+++ b/pkg/plugins/runtime/k8s/controllers/metadata_controller.go
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 controllers
+
+import (
+ "context"
+ k8s_common "github.com/apache/dubbo-kubernetes/pkg/plugins/common/k8s"
+ "github.com/apache/dubbo-kubernetes/pkg/plugins/resources/k8s/native/api/v1alpha1"
+ "github.com/go-logr/logr"
+ kube_runtime "k8s.io/apimachinery/pkg/runtime"
+ kube_record "k8s.io/client-go/tools/record"
+ kube_ctrl "sigs.k8s.io/controller-runtime"
+ kube_client "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+)
+
+type MedataReconciler struct {
+ kube_client.Client
+ kube_record.EventRecorder
+ Schema *kube_runtime.Scheme
+ Log logr.Logger
+ ResourceConverter k8s_common.Converter
+ SystemNamespace string
+}
+
+func (m *MedataReconciler) Reconcile(ctx context.Context, req kube_ctrl.Request) (kube_ctrl.Result, error) {
+ return kube_ctrl.Result{}, nil
+}
+
+func (m *MedataReconciler) SetupWithManager(mgr kube_ctrl.Manager, maxConcurrentReconciles int) error {
+ return kube_ctrl.NewControllerManagedBy(mgr).
+ WithOptions(controller.Options{MaxConcurrentReconciles: maxConcurrentReconciles}).
+ For(&v1alpha1.MetaData{}).
+ Complete(m)
+}
diff --git a/pkg/plugins/runtime/k8s/plugin.go b/pkg/plugins/runtime/k8s/plugin.go
index 095d7d8..19214a0 100644
--- a/pkg/plugins/runtime/k8s/plugin.go
+++ b/pkg/plugins/runtime/k8s/plugin.go
@@ -85,9 +85,24 @@
if err := addPodReconciler(mgr, rt, converter); err != nil {
return err
}
+ if err := addMetadataReconciler(mgr, rt, converter); err != nil {
+ return err
+ }
return nil
}
+func addMetadataReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8s_common.Converter) error {
+ reconciler := &k8s_controllers.MedataReconciler{
+ Client: mgr.GetClient(),
+ EventRecorder: mgr.GetEventRecorderFor("k8s.dubbo.io/dataplane-generator"),
+ Schema: mgr.GetScheme(),
+ Log: core.Log.WithName("controllers").WithName("Metadata"),
+ ResourceConverter: converter,
+ SystemNamespace: rt.Config().Store.Kubernetes.SystemNamespace,
+ }
+ return reconciler.SetupWithManager(mgr, rt.Config().Runtime.Kubernetes.ControllersConcurrency.PodController)
+}
+
func addPodReconciler(mgr kube_ctrl.Manager, rt core_runtime.Runtime, converter k8s_common.Converter) error {
reconciler := &k8s_controllers.PodReconciler{
Client: mgr.GetClient(),