Skip to content

Commit 1a73ac4

Browse files
committed
Revert "Feat: Listener: Expose scope information in x-openmfp-scope schema extension (#92)"
This reverts commit ba7977b.
1 parent 0c3fd02 commit 1a73ac4

File tree

5 files changed

+12
-132
lines changed

5 files changed

+12
-132
lines changed

listener/apischema/crd_resolver.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"strings"
1010

1111
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
12-
"k8s.io/apimachinery/pkg/api/meta"
1312
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1413
"k8s.io/client-go/discovery"
1514
"k8s.io/client-go/openapi"
@@ -24,11 +23,10 @@ var (
2423

2524
type CRDResolver struct {
2625
*discovery.DiscoveryClient
27-
meta.RESTMapper
2826
}
2927

3028
func (cr *CRDResolver) Resolve() ([]byte, error) {
31-
return resolveSchema(cr.DiscoveryClient, cr.RESTMapper)
29+
return resolveSchema(cr.DiscoveryClient)
3230
}
3331

3432
func (cr *CRDResolver) ResolveApiSchema(crd *apiextensionsv1.CustomResourceDefinition) ([]byte, error) {
@@ -47,7 +45,7 @@ func (cr *CRDResolver) ResolveApiSchema(crd *apiextensionsv1.CustomResourceDefin
4745
return nil, fmt.Errorf("failed to filter server preferred resources: %w", err)
4846
}
4947

50-
return resolveForPaths(cr.OpenAPIV3(), preferredApiGroups, cr.RESTMapper)
48+
return resolveForPaths(cr.OpenAPIV3(), preferredApiGroups)
5149
}
5250

5351
func errorIfCRDNotInPreferredApiGroups(gvk *metav1.GroupVersionKind, apiResLists []*metav1.APIResourceList) ([]string, error) {
@@ -114,7 +112,7 @@ func getSchemaForPath(preferredApiGroups []string, path string, gv openapi.Group
114112
return resp.Components.Schemas, nil
115113
}
116114

117-
func resolveForPaths(oc openapi.Client, preferredApiGroups []string, rm meta.RESTMapper) ([]byte, error) {
115+
func resolveForPaths(oc openapi.Client, preferredApiGroups []string) ([]byte, error) {
118116
apiv3Paths, err := oc.Paths()
119117
if err != nil {
120118
return nil, fmt.Errorf("failed to get OpenAPI paths: %w", err)
@@ -129,29 +127,23 @@ func resolveForPaths(oc openapi.Client, preferredApiGroups []string, rm meta.RES
129127
}
130128
maps.Copy(schemas, schema)
131129
}
132-
133-
scopedSchemas, err := addScopeInfo(schemas, rm)
134-
if err != nil {
135-
return nil, fmt.Errorf("failed to add scope info to v3 schema: %w", err)
136-
}
137-
138130
v3JSON, err := json.Marshal(&schemaResponse{
139131
Components: schemasComponentsWrapper{
140-
Schemas: scopedSchemas,
132+
Schemas: schemas,
141133
},
142134
})
143135
if err != nil {
144136
return nil, fmt.Errorf("failed to marshal openAPI v3 schema: %w", err)
145137
}
146-
v2JSON, err := convertJSON(v3JSON)
138+
v2JSON, err := ConvertJSON(v3JSON)
147139
if err != nil {
148140
return nil, fmt.Errorf("failed to convert openAPI v3 schema to v2: %w", err)
149141
}
150142

151143
return v2JSON, nil
152144
}
153145

154-
func resolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte, error) {
146+
func resolveSchema(dc discovery.DiscoveryInterface) ([]byte, error) {
155147
preferredApiGroups := []string{}
156148
apiResList, err := dc.ServerPreferredResources()
157149
if err != nil {
@@ -161,5 +153,5 @@ func resolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte,
161153
preferredApiGroups = append(preferredApiGroups, apiRes.GroupVersion)
162154
}
163155

164-
return resolveForPaths(dc.OpenAPIV3(), preferredApiGroups, rm)
156+
return resolveForPaths(dc.OpenAPIV3(), preferredApiGroups)
165157
}

listener/apischema/json_converter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type v2RootWrapper struct {
2020
Definitions map[string]any `json:"definitions"`
2121
}
2222

23-
func convertJSON(v3JSON []byte) ([]byte, error) {
23+
func ConvertJSON(v3JSON []byte) ([]byte, error) {
2424
data := &v3RootWrapper{}
2525
if err := json.Unmarshal(v3JSON, data); err != nil {
2626
return nil, fmt.Errorf("failed to unmarshal JSON: %w", err)

listener/apischema/resolver.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package apischema
22

33
import (
4-
"errors"
5-
6-
"k8s.io/apimachinery/pkg/api/meta"
74
"k8s.io/client-go/discovery"
85
"k8s.io/kube-openapi/pkg/validation/spec"
96
)
@@ -24,17 +21,13 @@ type Resolver interface {
2421
Resolve(dc discovery.DiscoveryInterface) ([]byte, error)
2522
}
2623

27-
func NewResolver(rm meta.RESTMapper) (*ResolverImpl, error) {
28-
if rm == nil {
29-
return nil, errors.New("rest mapper might not be nil")
30-
}
31-
return &ResolverImpl{RESTMapper: rm}, nil
24+
func NewResolver() *ResolverImpl {
25+
return &ResolverImpl{}
3226
}
3327

3428
type ResolverImpl struct {
35-
meta.RESTMapper
3629
}
3730

3831
func (r *ResolverImpl) Resolve(dc discovery.DiscoveryInterface) ([]byte, error) {
39-
return resolveSchema(dc, r.RESTMapper)
32+
return resolveSchema(dc)
4033
}

listener/apischema/scope_resolver.go

Lines changed: 0 additions & 75 deletions
This file was deleted.

listener/kcp/reconciler_factory.go

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@ import (
1010
"github.com/openmfp/crd-gql-gateway/listener/discoveryclient"
1111
"github.com/openmfp/crd-gql-gateway/listener/flags"
1212
"github.com/openmfp/crd-gql-gateway/listener/workspacefile"
13-
"k8s.io/apimachinery/pkg/api/meta"
1413
"k8s.io/apimachinery/pkg/runtime"
1514
"k8s.io/client-go/discovery"
1615
"k8s.io/client-go/rest"
1716
ctrl "sigs.k8s.io/controller-runtime"
1817
"sigs.k8s.io/controller-runtime/pkg/client"
19-
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
2018
)
2119

2220
const kubernetesClusterName = "kubernetes"
@@ -58,14 +56,8 @@ func NewReconciler(opts ReconcilerOpts) (CustomReconciler, error) {
5856
return nil, fmt.Errorf("failed to create IO Handler: %w", err)
5957
}
6058

61-
rm, err := restMapperFromConfig(opts.Config)
62-
if err != nil {
63-
return nil, fmt.Errorf("failed to create rest mapper from config: %w", err)
64-
}
65-
6659
schemaResolver := &apischema.CRDResolver{
6760
DiscoveryClient: dc,
68-
RESTMapper: rm,
6961
}
7062

7163
if err := preReconcile(schemaResolver, ioHandler); err != nil {
@@ -104,33 +96,11 @@ func NewKcpReconciler(opts ReconcilerOpts) (CustomReconciler, error) {
10496
return nil, fmt.Errorf("failed to create Discovery client factory: %w", err)
10597
}
10698

107-
rm, err := restMapperFromConfig(opts.Config)
108-
if err != nil {
109-
return nil, fmt.Errorf("failed to create rest mapper from config: %w", err)
110-
}
111-
112-
sc, err := apischema.NewResolver(rm)
113-
if err != nil {
114-
return nil, fmt.Errorf("failed to create schema resolver: %w", err)
115-
}
116-
11799
return controller.NewAPIBindingReconciler(
118-
ioHandler, df, sc, &clusterpath.Resolver{
100+
ioHandler, df, apischema.NewResolver(), &clusterpath.Resolver{
119101
Scheme: opts.Scheme,
120102
Config: opts.Config,
121103
ResolverFunc: clusterpath.Resolve,
122104
},
123105
), nil
124106
}
125-
126-
func restMapperFromConfig(cfg *rest.Config) (meta.RESTMapper, error) {
127-
httpClt, err := rest.HTTPClientFor(cfg)
128-
if err != nil {
129-
return nil, fmt.Errorf("failed to create http client: %w", err)
130-
}
131-
rm, err := apiutil.NewDynamicRESTMapper(cfg, httpClt)
132-
if err != nil {
133-
return nil, fmt.Errorf("failed to create rest mapper: %w", err)
134-
}
135-
return rm, nil
136-
}

0 commit comments

Comments
 (0)