12
12
// See the License for the specific language governing permissions and
13
13
// limitations under the License.
14
14
15
- package apiserver
15
+ package server
16
16
17
17
import (
18
18
"fmt"
19
19
"net/http"
20
20
"strings"
21
21
22
- clusterhandler "github.com/KusionStack/karbour/pkg/handler/cluster"
23
- confighandler "github.com/KusionStack/karbour/pkg/handler/config"
24
- resourcehandler "github.com/KusionStack/karbour/pkg/handler/resource"
25
- clustermanager "github.com/KusionStack/karbour/pkg/manager/cluster"
26
- "github.com/KusionStack/karbour/pkg/manager/config"
27
- resourcemanager "github.com/KusionStack/karbour/pkg/manager/resource"
22
+ clusterhandler "github.com/KusionStack/karbour/pkg/core/ handler/cluster"
23
+ confighandler "github.com/KusionStack/karbour/pkg/core/ handler/config"
24
+ resourcehandler "github.com/KusionStack/karbour/pkg/core/ handler/resource"
25
+ clustermanager "github.com/KusionStack/karbour/pkg/core/ manager/cluster"
26
+ "github.com/KusionStack/karbour/pkg/core/ manager/config"
27
+ resourcemanager "github.com/KusionStack/karbour/pkg/core/ manager/resource"
28
28
appmiddleware "github.com/KusionStack/karbour/pkg/middleware"
29
+ "github.com/KusionStack/karbour/pkg/registry"
29
30
"github.com/go-chi/chi/v5"
30
31
"github.com/go-chi/chi/v5/middleware"
32
+ genericapiserver "k8s.io/apiserver/pkg/server"
31
33
)
32
34
33
- func NewCoreServer (c * CompletedConfig ) * chi.Mux {
35
+ func NewCoreServer (
36
+ genericConfig * genericapiserver.CompletedConfig ,
37
+ extraConfig * registry.ExtraConfig ,
38
+ ) * chi.Mux {
34
39
router := chi .NewRouter ()
35
40
36
41
// Set up middlewares
@@ -51,7 +56,7 @@ func NewCoreServer(c *CompletedConfig) *chi.Mux {
51
56
})
52
57
53
58
router .Route ("/api/v1" , func (r chi.Router ) {
54
- setupAPIV1 (r , configMgr , clusterMgr , resourceMgr , c )
59
+ setupAPIV1 (r , configMgr , clusterMgr , resourceMgr , genericConfig , extraConfig )
55
60
})
56
61
57
62
router .Get ("/endpoints" , func (w http.ResponseWriter , req * http.Request ) {
@@ -63,7 +68,14 @@ func NewCoreServer(c *CompletedConfig) *chi.Mux {
63
68
return router
64
69
}
65
70
66
- func setupAPIV1 (r chi.Router , configMgr * config.Manager , clusterMgr * clustermanager.ClusterManager , resourceMgr * resourcemanager.ResourceManager , c * CompletedConfig ) {
71
+ func setupAPIV1 (
72
+ r chi.Router ,
73
+ configMgr * config.Manager ,
74
+ clusterMgr * clustermanager.ClusterManager ,
75
+ resourceMgr * resourcemanager.ResourceManager ,
76
+ genericConfig * genericapiserver.CompletedConfig ,
77
+ extraConfig * registry.ExtraConfig ,
78
+ ) {
67
79
r .Route ("/config" , func (r chi.Router ) {
68
80
r .Get ("/" , confighandler .Get (configMgr ))
69
81
// r.Delete("/", confighandler.Delete(configMgr))
@@ -73,23 +85,23 @@ func setupAPIV1(r chi.Router, configMgr *config.Manager, clusterMgr *clustermana
73
85
74
86
r .Route ("/cluster" , func (r chi.Router ) {
75
87
r .Route ("/{clusterName}" , func (r chi.Router ) {
76
- r .Get ("/" , clusterhandler .Get (clusterMgr , & c . GenericConfig ))
77
- r .Get ("/yaml" , clusterhandler .GetYAML (clusterMgr , & c . GenericConfig ))
78
- r .Get ("/detail" , clusterhandler .GetDetail (clusterMgr , & c . GenericConfig ))
79
- r .Get ("/topology" , clusterhandler .GetTopology (clusterMgr , & c . GenericConfig ))
80
- r .Get ("/namespace/{namespaceName}" , clusterhandler .GetNamespace (clusterMgr , & c . GenericConfig ))
81
- r .Get ("/namespace/{namespaceName}/topology" , clusterhandler .GetNamespaceTopology (clusterMgr , & c . GenericConfig ))
88
+ r .Get ("/" , clusterhandler .Get (clusterMgr , genericConfig ))
89
+ r .Get ("/yaml" , clusterhandler .GetYAML (clusterMgr , genericConfig ))
90
+ r .Get ("/detail" , clusterhandler .GetDetail (clusterMgr , genericConfig ))
91
+ r .Get ("/topology" , clusterhandler .GetTopology (clusterMgr , genericConfig ))
92
+ r .Get ("/namespace/{namespaceName}" , clusterhandler .GetNamespace (clusterMgr , genericConfig ))
93
+ r .Get ("/namespace/{namespaceName}/topology" , clusterhandler .GetNamespaceTopology (clusterMgr , genericConfig ))
82
94
})
83
95
})
84
96
85
97
r .Route ("/resource" , func (r chi.Router ) {
86
98
r .Route ("/search" , func (r chi.Router ) {
87
- r .Get ("/" , resourcehandler .SearchForResource (resourceMgr , c . ExtraConfig ))
99
+ r .Get ("/" , resourcehandler .SearchForResource (resourceMgr , extraConfig ))
88
100
})
89
101
r .Route ("/cluster/{clusterName}/{apiVersion}/namespace/{namespaceName}/{kind}/name/{resourceName}" , func (r chi.Router ) {
90
- r .Get ("/" , resourcehandler .Get (resourceMgr , & c . GenericConfig ))
91
- r .Get ("/yaml" , resourcehandler .GetYAML (resourceMgr , & c . GenericConfig ))
92
- r .Get ("/topology" , resourcehandler .GetTopology (resourceMgr , & c . GenericConfig ))
102
+ r .Get ("/" , resourcehandler .Get (resourceMgr , genericConfig ))
103
+ r .Get ("/yaml" , resourcehandler .GetYAML (resourceMgr , genericConfig ))
104
+ r .Get ("/topology" , resourcehandler .GetTopology (resourceMgr , genericConfig ))
93
105
})
94
106
})
95
107
}
0 commit comments