diff --git a/cmd/multigres-operator/main.go b/cmd/multigres-operator/main.go index f75e439f..8bc65229 100644 --- a/cmd/multigres-operator/main.go +++ b/cmd/multigres-operator/main.go @@ -36,6 +36,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/webhook" multigresv1alpha1 "github.com/numtide/multigres-operator/api/v1alpha1" + multigresclustercontroller "github.com/numtide/multigres-operator/pkg/cluster-handler/controller/multigrescluster" + tablegroupcontroller "github.com/numtide/multigres-operator/pkg/cluster-handler/controller/tablegroup" cellcontroller "github.com/numtide/multigres-operator/pkg/resource-handler/controller/cell" shardcontroller "github.com/numtide/multigres-operator/pkg/resource-handler/controller/shard" toposervercontroller "github.com/numtide/multigres-operator/pkg/resource-handler/controller/toposerver" @@ -265,6 +267,20 @@ func main() { setupLog.Error(err, "unable to create controller", "controller", "TopoServer") os.Exit(1) } + if err := (&multigresclustercontroller.MultigresClusterReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "MultigresCluster") + os.Exit(1) + } + if err := (&tablegroupcontroller.TableGroupReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "TableGroup") + os.Exit(1) + } // +kubebuilder:scaffold:builder if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil { diff --git a/go.mod b/go.mod index 7a5276d7..9b8fa715 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,9 @@ module github.com/numtide/multigres-operator go 1.25.0 require ( - github.com/numtide/multigres-operator/api v0.0.0-20260101063420-94576a4bc1f7 - github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260101072241-f8648bb2952b + github.com/numtide/multigres-operator/api v0.0.0-20251229104516-c9d07419a88e + github.com/numtide/multigres-operator/pkg/cluster-handler v0.0.0-20260102121417-f30f188dc2e7 + github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260102121417-f30f188dc2e7 k8s.io/apimachinery v0.34.3 k8s.io/client-go v0.34.3 sigs.k8s.io/controller-runtime v0.22.4 @@ -52,6 +53,8 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/numtide/multigres-operator/pkg/data-handler v0.0.0-20260102121417-f30f188dc2e7 // indirect + github.com/numtide/multigres-operator/pkg/resolver v0.0.0-20260102121417-f30f188dc2e7 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect diff --git a/go.sum b/go.sum index 55bccc5b..e8740f94 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -84,8 +86,8 @@ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= @@ -112,22 +114,28 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/numtide/multigres-operator/api v0.0.0-20251213015258-2919bb5e88f9 h1:Z2zMSUfdjqdvFlUgf769dOjNqp4CKNsqNzoi8mdgCag= -github.com/numtide/multigres-operator/api v0.0.0-20251213015258-2919bb5e88f9/go.mod h1:A1bBmTxHr+362dGZ5G6u2S4xsP6enbgdUS/UJUOmKbc= -github.com/numtide/multigres-operator/api v0.0.0-20260101063420-94576a4bc1f7 h1:INtpGqYsgCsX3wWlEubF87VL47ePkcXyFoCiPtw5uY0= -github.com/numtide/multigres-operator/api v0.0.0-20260101063420-94576a4bc1f7/go.mod h1:A1bBmTxHr+362dGZ5G6u2S4xsP6enbgdUS/UJUOmKbc= +github.com/numtide/multigres-operator/api v0.0.0-20251224124005-355869230728 h1:a+iM4L0nC7kUgcAD1P+wuNJg4x0rjcy6rVZ3+vF52Cc= +github.com/numtide/multigres-operator/api v0.0.0-20251224124005-355869230728/go.mod h1:A1bBmTxHr+362dGZ5G6u2S4xsP6enbgdUS/UJUOmKbc= +github.com/numtide/multigres-operator/api v0.0.0-20251229104516-c9d07419a88e h1:dA5W+VZMTnSx4DtxjX/1Xw2IFY7uAhHBcMNA92NivgI= +github.com/numtide/multigres-operator/api v0.0.0-20251229104516-c9d07419a88e/go.mod h1:A1bBmTxHr+362dGZ5G6u2S4xsP6enbgdUS/UJUOmKbc= +github.com/numtide/multigres-operator/pkg/cluster-handler v0.0.0-20260102121417-f30f188dc2e7 h1:CiiYl2KUU8vb+StN91Xrjq4S3ru7CbnzbHEKShIH2PQ= +github.com/numtide/multigres-operator/pkg/cluster-handler v0.0.0-20260102121417-f30f188dc2e7/go.mod h1:gAOWiZSOX/I2n31x4ibzM9lDsQCQS2YoW2IBtxh/OBA= +github.com/numtide/multigres-operator/pkg/data-handler v0.0.0-20260102121417-f30f188dc2e7 h1:Qbo1H94kYQo5V6ccPUUjgYhCkKS1IjO7REPCO2xeDL8= +github.com/numtide/multigres-operator/pkg/data-handler v0.0.0-20260102121417-f30f188dc2e7/go.mod h1:6ULg3i/NZdmcbJ+TmanBnNrAlSYijopGpGfKvgwEOKI= +github.com/numtide/multigres-operator/pkg/resolver v0.0.0-20260102120521-b5526742f4d1 h1:ZIni3ZVAryKwv8Mo1B/wzffZaY+yOmqwMgiOGpp0lfU= +github.com/numtide/multigres-operator/pkg/resolver v0.0.0-20260102120521-b5526742f4d1/go.mod h1:sM5pJBpBfMmU4IY8prQLBPilNtVk9XVlkn5iphJ0TxA= +github.com/numtide/multigres-operator/pkg/resolver v0.0.0-20260102121417-f30f188dc2e7 h1:kG5Jk6TcMzPLdC2s+RiGJ6J2jSWTF/R0AaFdivIcUSk= +github.com/numtide/multigres-operator/pkg/resolver v0.0.0-20260102121417-f30f188dc2e7/go.mod h1:sM5pJBpBfMmU4IY8prQLBPilNtVk9XVlkn5iphJ0TxA= github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20251214103105-801ed36d716f h1:JPVxktYbOaZzfzPtvQo4H+boZPghGspRvlYtoNS5GAA= github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20251214103105-801ed36d716f/go.mod h1:OMXscMC1UxSFGhbm0sMytBEdEwVbs7mtq8LBdeRic38= -github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260101063420-94576a4bc1f7 h1:fcYU1xN/tSrRFrNZzL7o6x9vF6XlgmtLI+IKIeXNaqI= -github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260101063420-94576a4bc1f7/go.mod h1:u230KlrsEps5xjRhpWldDVWaqPVK/h7oRLMdWR7+r40= -github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260101072241-f8648bb2952b h1:JmXzCLm3KvgegBuhCvetZUzuLekoEv52U3pNbGMzLTw= -github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260101072241-f8648bb2952b/go.mod h1:u230KlrsEps5xjRhpWldDVWaqPVK/h7oRLMdWR7+r40= -github.com/numtide/multigres-operator/pkg/testutil v0.0.0-20251213002906-55493b734373 h1:B9uGjUsG0rMi+dGt2blEDpr8wbwnE/W1xcpuxZwvOYk= -github.com/numtide/multigres-operator/pkg/testutil v0.0.0-20251213002906-55493b734373/go.mod h1:+NQa7dSvQqxhBOE9XcE9RWXLvOvNaw0keCc29Y7pjyQ= -github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= -github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= -github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260102121417-f30f188dc2e7 h1:qKFRVIZP18pibYXJzSvwM0xvGdojjB49NwZdcEZME6w= +github.com/numtide/multigres-operator/pkg/resource-handler v0.0.0-20260102121417-f30f188dc2e7/go.mod h1:u230KlrsEps5xjRhpWldDVWaqPVK/h7oRLMdWR7+r40= +github.com/numtide/multigres-operator/pkg/testutil v0.0.0-20251214105213-458b940d04bd h1:gp55gShKenPt4r9K1EC3SKKeOMDDreypivBWzAD6XjQ= +github.com/numtide/multigres-operator/pkg/testutil v0.0.0-20251214105213-458b940d04bd/go.mod h1:+NQa7dSvQqxhBOE9XcE9RWXLvOvNaw0keCc29Y7pjyQ= +github.com/onsi/ginkgo/v2 v2.25.3 h1:Ty8+Yi/ayDAGtk4XxmmfUy4GabvM+MegeB4cDLRi6nw= +github.com/onsi/ginkgo/v2 v2.25.3/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE= +github.com/onsi/gomega v1.38.3 h1:eTX+W6dobAYfFeGC2PV6RwXRu/MyT+cQguijutvkpSM= +github.com/onsi/gomega v1.38.3/go.mod h1:ZCU1pkQcXDO5Sl9/VVEGlDyp+zm0m1cmeG5TOzLgdh4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -185,6 +193,8 @@ go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= +go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= +go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=