Skip to content

Commit 77c0815

Browse files
authored
Support custom cluster profile (#341)
Signed-off-by: Tamal Saha <tamal@appscode.com>
1 parent a8ceede commit 77c0815

File tree

41 files changed

+451
-420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+451
-420
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ require (
4545
k8s.io/kube-state-metrics/v2 v2.12.0
4646
kmodules.xyz/apiversion v0.2.0
4747
kmodules.xyz/authorizer v0.29.1
48-
kmodules.xyz/client-go v0.30.26
48+
kmodules.xyz/client-go v0.30.27
4949
kmodules.xyz/custom-resources v0.30.0
5050
kmodules.xyz/go-containerregistry v0.0.12
5151
kmodules.xyz/monitoring-agent-api v0.30.2-0.20241001043315-b98120efea48
5252
kmodules.xyz/offshoot-api v0.30.1
53-
kmodules.xyz/resource-metadata v0.19.1-0.20241009104424-86c39a298ab6
53+
kmodules.xyz/resource-metadata v0.19.1-0.20241016073336-1307639922b4
5454
kmodules.xyz/resource-metrics v0.30.4
5555
kmodules.xyz/resource-metrics/utils v0.30.4
5656
kmodules.xyz/sets v0.29.0

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -922,8 +922,8 @@ kmodules.xyz/apiversion v0.2.0 h1:vAQYqZFm4xu4pbB1cAdHbFEPES6EQkcR4wc06xdTOWk=
922922
kmodules.xyz/apiversion v0.2.0/go.mod h1:oPX8g8LvlPdPX3Yc5YvCzJHQnw3YF/X4/jdW0b1am80=
923923
kmodules.xyz/authorizer v0.29.1 h1:uByGGoryKbZcfiEAhjcK/Y345I9mygNQP7DVpkMbNQQ=
924924
kmodules.xyz/authorizer v0.29.1/go.mod h1:kZRhclL8twzyt2bQuJQJbpYww2sc+qFr8I5PPoq/sWY=
925-
kmodules.xyz/client-go v0.30.26 h1:cPoNid/Eq38EwznsZ27gu2AEXOjqcshn+/7kjlaaQNQ=
926-
kmodules.xyz/client-go v0.30.26/go.mod h1:CAu+JlA8RVGtj6LQHu0Q1w2mnFUajuti49c7T1AvGdM=
925+
kmodules.xyz/client-go v0.30.27 h1:pmM11k/XNVGTFp22qRsXBnGRnFeLNGX2lB9I0Gu+JWY=
926+
kmodules.xyz/client-go v0.30.27/go.mod h1:CAu+JlA8RVGtj6LQHu0Q1w2mnFUajuti49c7T1AvGdM=
927927
kmodules.xyz/crd-schema-fuzz v0.29.1 h1:zJTlWYOrT5dsVVHW8HGcnR/vaWfxQfNh11QwTtkYpcs=
928928
kmodules.xyz/crd-schema-fuzz v0.29.1/go.mod h1:n708z9YQqLMP2KNLQVgBcRJw1QpSWLvpNCEi+KJDOYE=
929929
kmodules.xyz/custom-resources v0.30.0 h1:vR3CbseHMLwR4GvtcJJuRuwIV8voKqFqNii27rMcm1o=
@@ -934,8 +934,8 @@ kmodules.xyz/monitoring-agent-api v0.30.2-0.20241001043315-b98120efea48 h1:kJdO7
934934
kmodules.xyz/monitoring-agent-api v0.30.2-0.20241001043315-b98120efea48/go.mod h1:oR3tk5O4koYar4cD9N3AjbBFr9XTwBU3sw9qD2NdNQc=
935935
kmodules.xyz/offshoot-api v0.30.1 h1:TrulAYO+oBsXe9sZZGTmNWIuI8qD2izMpgcTSPvgAmI=
936936
kmodules.xyz/offshoot-api v0.30.1/go.mod h1:T3mpjR6fui0QzOcmQvIuANytW48fe9ytmy/1cgx6D4g=
937-
kmodules.xyz/resource-metadata v0.19.1-0.20241009104424-86c39a298ab6 h1:Q9agV+WnOrF6SVBHLEq8EKvZzSE86yqLv3GQM6Mmw+c=
938-
kmodules.xyz/resource-metadata v0.19.1-0.20241009104424-86c39a298ab6/go.mod h1:tDBwzcPFSiJpVFjOndSbCxliSI0kkg+5ingh5lLAxOU=
937+
kmodules.xyz/resource-metadata v0.19.1-0.20241016073336-1307639922b4 h1:k8JQX4XDUU/ULvscjx5ENBb4qNJdWFMcf2V79c+LIcI=
938+
kmodules.xyz/resource-metadata v0.19.1-0.20241016073336-1307639922b4/go.mod h1:ZVjgAj622Fp+8bdmAgHv6PNQHkXXqhR6aQpJg3lO8Bo=
939939
kmodules.xyz/resource-metrics v0.30.4 h1:8HBPtYmo9ETY91gsc55JE8Z986+3ZuRq57M0wZ9npqI=
940940
kmodules.xyz/resource-metrics v0.30.4/go.mod h1:w9+rz7/s/kGP1GWzYSuRdCn+l7EwpesmESSEHkLBnIQ=
941941
kmodules.xyz/resource-metrics/utils v0.30.4 h1:bJS/x0Qr7N1FFdxugFbzZ/Es6HVs4ptsFlhkmgj3jac=

pkg/apiserver/apiserver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ func (c completedConfig) New(ctx context.Context) (*UIServer, error) {
328328
v1alpha1storage[rsapi.ResourceResourceGraphs] = resourcegraph.NewStorage(ctrlClient)
329329
v1alpha1storage[rsapi.ResourceResourceLayouts] = resourcelayout.NewStorage(ctrlClient)
330330
v1alpha1storage[rsapi.ResourceResourceOutlines] = resourceoutline.NewStorage()
331-
v1alpha1storage[rsapi.ResourceClusterProfiles] = clusterprofilestorage.NewStorage()
331+
v1alpha1storage[uiapi.ResourceClusterProfiles] = clusterprofilestorage.NewStorage(ctrlClient)
332332
v1alpha1storage[uiapi.ResourceResourceEditors] = resourceeditor.NewStorage(ctrlClient)
333333
v1alpha1storage[rsapi.ResourceResourceQueries] = resourcequery.NewStorage(ctrlClient, rbacAuthorizer)
334334
v1alpha1storage[rsapi.ResourceResourceTableDefinitions] = resourcetabledefinition.NewStorage()

pkg/cmds/server/start.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func (o *UIServerOptions) Config() (*apiserver.Config, error) {
142142

143143
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, "usermenus"),
144144
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, rsapi.ResourceChartPresetQueries),
145-
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, rsapi.ResourceClusterProfiles),
145+
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, uiapi.ResourceClusterProfiles),
146146
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, rsapi.ResourceClusterStatuses),
147147
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, rsapi.ResourceMenus),
148148
fmt.Sprintf("/apis/%s/%s", rsapi.SchemeGroupVersion, rsapi.ResourceRenderDashboards),

pkg/registry/meta/clusterprofile/storage.go

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ import (
3030
"k8s.io/apimachinery/pkg/runtime/schema"
3131
"k8s.io/apiserver/pkg/registry/rest"
3232
"kmodules.xyz/resource-metadata/apis/meta"
33-
rsapi "kmodules.xyz/resource-metadata/apis/meta/v1alpha1"
33+
uiapi "kmodules.xyz/resource-metadata/apis/ui/v1alpha1"
3434
"kmodules.xyz/resource-metadata/hub/clusterprofiles"
35+
"sigs.k8s.io/controller-runtime/pkg/client"
3536
)
3637

3738
type Storage struct {
39+
kc client.Reader
3840
convertor rest.TableConvertor
3941
}
4042

@@ -47,54 +49,57 @@ var (
4749
_ rest.SingularNameProvider = &Storage{}
4850
)
4951

50-
func NewStorage() *Storage {
52+
func NewStorage(kc client.Reader) *Storage {
5153
return &Storage{
54+
kc: kc,
5255
convertor: rest.NewDefaultTableConvertor(schema.GroupResource{
53-
Group: rsapi.SchemeGroupVersion.Group,
54-
Resource: rsapi.ResourceClusterProfiles,
56+
Group: uiapi.SchemeGroupVersion.Group,
57+
Resource: uiapi.ResourceClusterProfiles,
5558
}),
5659
}
5760
}
5861

5962
func (r *Storage) GroupVersionKind(_ schema.GroupVersion) schema.GroupVersionKind {
60-
return rsapi.SchemeGroupVersion.WithKind(rsapi.ResourceKindClusterProfile)
63+
return uiapi.SchemeGroupVersion.WithKind(uiapi.ResourceKindClusterProfile)
6164
}
6265

6366
func (r *Storage) NamespaceScoped() bool {
6467
return false
6568
}
6669

6770
func (r *Storage) GetSingularName() string {
68-
return strings.ToLower(rsapi.ResourceKindClusterProfile)
71+
return strings.ToLower(uiapi.ResourceKindClusterProfile)
6972
}
7073

7174
// Getter
7275
func (r *Storage) New() runtime.Object {
73-
return &rsapi.ClusterProfile{}
76+
return &uiapi.ClusterProfile{}
7477
}
7578

7679
func (r *Storage) Destroy() {}
7780

7881
func (r *Storage) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
79-
obj, err := clusterprofiles.LoadByName(name)
82+
obj, err := clusterprofiles.LoadByName(r.kc, name)
8083
if err != nil {
81-
return nil, kerr.NewNotFound(schema.GroupResource{Group: meta.GroupName, Resource: rsapi.ResourceKindClusterProfile}, name)
84+
return nil, kerr.NewNotFound(schema.GroupResource{Group: meta.GroupName, Resource: uiapi.ResourceKindClusterProfile}, name)
8285
}
8386
return obj, err
8487
}
8588

8689
// Lister
8790
func (r *Storage) NewList() runtime.Object {
88-
return &rsapi.ClusterProfileList{}
91+
return &uiapi.ClusterProfileList{}
8992
}
9093

9194
func (r *Storage) List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) {
9295
if options.FieldSelector != nil && !options.FieldSelector.Empty() {
9396
return nil, kerr.NewBadRequest("fieldSelector is not a supported")
9497
}
9598

96-
objs := clusterprofiles.List()
97-
99+
objs, err := clusterprofiles.List(r.kc)
100+
if err != nil {
101+
return nil, err
102+
}
98103
if options.Continue != "" {
99104
start, err := strconv.Atoi(options.Continue)
100105
if err != nil {
@@ -109,15 +114,15 @@ func (r *Storage) List(ctx context.Context, options *metainternalversion.ListOpt
109114
objs = objs[:options.Limit]
110115
}
111116

112-
items := make([]rsapi.ClusterProfile, 0, len(objs))
117+
items := make([]uiapi.ClusterProfile, 0, len(objs))
113118
for _, obj := range objs {
114119
if options.LabelSelector != nil && !options.LabelSelector.Matches(labels.Set(obj.GetLabels())) {
115120
continue
116121
}
117122
items = append(items, obj)
118123
}
119124

120-
return &rsapi.ClusterProfileList{Items: items}, nil
125+
return &uiapi.ClusterProfileList{Items: items}, nil
121126
}
122127

123128
func (r *Storage) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) {

vendor/kmodules.xyz/client-go/cluster/ace.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"sigs.k8s.io/controller-runtime/pkg/client"
2525
)
2626

27-
func IsACEManaged(kc client.Client) bool {
27+
func IsACEManaged(kc client.Reader) bool {
2828
var list unstructured.UnstructuredList
2929
list.SetAPIVersion("apps/v1")
3030
list.SetKind("Deployment")

vendor/kmodules.xyz/client-go/cluster/lib.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func UpsertClusterMetadata(kc client.Client, md *kmapi.ClusterMetadata) error {
157157
return err
158158
}
159159

160-
func DetectCAPICluster(kc client.Client) (*kmapi.CAPIClusterInfo, error) {
160+
func DetectCAPICluster(kc client.Reader) (*kmapi.CAPIClusterInfo, error) {
161161
var list unstructured.UnstructuredList
162162
list.SetGroupVersionKind(schema.GroupVersionKind{
163163
Group: "cluster.x-k8s.io",

vendor/kmodules.xyz/client-go/cluster/ocm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func IsOpenClusterHub(mapper meta.RESTMapper) bool {
3535
return false
3636
}
3737

38-
func IsOpenClusterSpoke(kc client.Client) bool {
38+
func IsOpenClusterSpoke(kc client.Reader) bool {
3939
var list unstructured.UnstructuredList
4040
list.SetAPIVersion("operator.open-cluster-management.io/v1")
4141
list.SetKind("Klusterlet")

vendor/kmodules.xyz/client-go/cluster/rancher.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,15 @@ func isInProject(kc client.Client, nsName, seedNS string) (bool, error) {
129129
return projectId == seedProjectId, nil
130130
}
131131

132-
func GetDefaultProjectId(kc client.Client) (string, bool, error) {
132+
func GetDefaultProjectId(kc client.Reader) (string, bool, error) {
133133
return GetProjectId(kc, metav1.NamespaceDefault)
134134
}
135135

136-
func GetSystemProjectId(kc client.Client) (string, bool, error) {
136+
func GetSystemProjectId(kc client.Reader) (string, bool, error) {
137137
return GetProjectId(kc, metav1.NamespaceSystem)
138138
}
139139

140-
func GetProjectId(kc client.Client, nsName string) (string, bool, error) {
140+
func GetProjectId(kc client.Reader, nsName string) (string, bool, error) {
141141
var ns core.Namespace
142142
err := kc.Get(context.TODO(), client.ObjectKey{Name: nsName}, &ns)
143143
if err != nil {

vendor/kmodules.xyz/client-go/cluster/vcluster.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"sigs.k8s.io/controller-runtime/pkg/client"
2525
)
2626

27-
func IsVirtualCluster(kc client.Client) (bool, error) {
27+
func IsVirtualCluster(kc client.Reader) (bool, error) {
2828
var list core.NodeList
2929
err := kc.List(context.TODO(), &list)
3030
if err != nil {
@@ -44,7 +44,7 @@ func IsVirtualCluster(kc client.Client) (bool, error) {
4444
return false, nil
4545
}
4646

47-
func MustIsVirtualCluster(kc client.Client) bool {
47+
func MustIsVirtualCluster(kc client.Reader) bool {
4848
ok, _ := IsVirtualCluster(kc)
4949
return ok
5050
}

0 commit comments

Comments
 (0)