Skip to content

Commit c72e454

Browse files
feat: bump unstructured-runtime to v0.0.9 and add pluralizer integration on getter (#14)
1 parent bdd1165 commit c72e454

File tree

4 files changed

+22
-21
lines changed

4 files changed

+22
-21
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.23.0
44

55
require (
66
github.com/gobuffalo/flect v1.0.2
7-
github.com/krateoplatformops/unstructured-runtime v0.0.5
7+
github.com/krateoplatformops/unstructured-runtime v0.0.9
88
github.com/lucasepe/httplib v0.2.2
99
github.com/pb33f/libopenapi v0.16.8
1010
github.com/rs/zerolog v1.32.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
9090
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
9191
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
9292
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
93-
github.com/krateoplatformops/unstructured-runtime v0.0.5 h1:SkVq2Vsn2hxrUQHTm2kzMpEMBJQ6dX/phcRWY2N8OFY=
94-
github.com/krateoplatformops/unstructured-runtime v0.0.5/go.mod h1:dPFgw3ZWKwmwSXduFWhq4aPf2Q8Kb2SoUlEXE0/Y+Q8=
93+
github.com/krateoplatformops/unstructured-runtime v0.0.9 h1:sjo7hQ3ubTbaJgHOheYCeZN9cS6+VsFJn24j19wjr/w=
94+
github.com/krateoplatformops/unstructured-runtime v0.0.9/go.mod h1:B2QCsbn9XvgSdIj+Q4JMDYt7juHskkJ5ItGg3qBmJFo=
9595
github.com/lucasepe/httplib v0.2.2 h1:Ns9CVumtlVcG6W3kwhOT8bG6Sr9/nOo0DYg00444ywI=
9696
github.com/lucasepe/httplib v0.2.2/go.mod h1:Elmrrzp7dQoKSldJhK5lcwH8nNn98ohrwg8nZgkJAn0=
9797
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=

internal/tools/restclient/getter.go

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77
"fmt"
88
"strings"
99

10-
"github.com/gobuffalo/flect"
1110
restclient "github.com/krateoplatformops/rest-dynamic-controller/internal/client"
1211
"github.com/krateoplatformops/rest-dynamic-controller/internal/text"
12+
"github.com/krateoplatformops/unstructured-runtime/pkg/pluralizer"
1313
unstructuredtools "github.com/krateoplatformops/unstructured-runtime/pkg/tools/unstructured"
1414
"github.com/lucasepe/httplib"
1515

@@ -84,13 +84,14 @@ func Static(chart string) Getter {
8484
return staticGetter{chartName: chart}
8585
}
8686

87-
func Dynamic(cfg *rest.Config) (Getter, error) {
87+
func Dynamic(cfg *rest.Config, pluralizer pluralizer.PluralizerInterface) (Getter, error) {
8888
dyn, err := dynamic.NewForConfig(cfg)
8989
if err != nil {
9090
return nil, err
9191
}
9292

9393
return &dynamicGetter{
94+
pluralizer: pluralizer,
9495
dynamicClient: dyn,
9596
}, nil
9697
}
@@ -111,19 +112,15 @@ var _ Getter = (*dynamicGetter)(nil)
111112

112113
type dynamicGetter struct {
113114
dynamicClient dynamic.Interface
115+
pluralizer pluralizer.PluralizerInterface
114116
}
115117

116118
func (g *dynamicGetter) Get(un *unstructured.Unstructured) (*Info, error) {
117-
gvr, err := unstructuredtools.GVR(un)
119+
gvr, err := g.pluralizer.GVKtoGVR(un.GroupVersionKind())
118120
if err != nil {
119-
return nil, err
121+
return nil, fmt.Errorf("error getting GVR for '%v' in namespace: %s", un.GetKind(), un.GetNamespace())
120122
}
121123

122-
// sel, err := selectorForGroup(gvr)
123-
// if err != nil {
124-
// return nil, err
125-
// }
126-
127124
gvrForDefinitions := schema.GroupVersionResource{
128125
Group: "swaggergen.krateo.io",
129126
Version: "v1alpha1",
@@ -134,7 +131,7 @@ func (g *dynamicGetter) Get(un *unstructured.Unstructured) (*Info, error) {
134131
Namespace(un.GetNamespace()).
135132
List(context.Background(), metav1.ListOptions{})
136133
if err != nil {
137-
return nil, err
134+
return nil, fmt.Errorf("error getting definitions for '%v' in namespace: %s - %w", gvr.String(), un.GetNamespace(), err)
138135
}
139136
if len(all.Items) == 0 {
140137
return nil, fmt.Errorf("no definitions found for '%v' in namespace: %s", gvr, un.GetNamespace())
@@ -240,17 +237,22 @@ func (g *dynamicGetter) getAuth(un *unstructured.Unstructured) (httplib.AuthMeth
240237
}
241238
}
242239

243-
gvrForAuthentication := schema.GroupVersionResource{
244-
Group: gvr.Group,
245-
Version: "v1alpha1",
246-
Resource: strings.ToLower(flect.Pluralize(fmt.Sprintf("%sAuth", text.ToGolangName(authType.String())))),
240+
gvkForAuthentication := schema.GroupVersionKind{
241+
Group: gvr.Group,
242+
Version: "v1alpha1",
243+
Kind: fmt.Sprintf("%sAuth", text.ToGolangName(authType.String())),
244+
}
245+
246+
gvrForAuthentication, err := g.pluralizer.GVKtoGVR(gvkForAuthentication)
247+
if err != nil {
248+
return nil, fmt.Errorf("error getting GVR for '%v' in namespace: %s", gvkForAuthentication.Kind, un.GetNamespace())
247249
}
248250

249251
auth, err := g.dynamicClient.Resource(gvrForAuthentication).
250252
Namespace(un.GetNamespace()).
251253
Get(context.Background(), authRef, metav1.GetOptions{})
252254
if err != nil {
253-
return nil, err
255+
return nil, fmt.Errorf("error getting authentication for '%v' in namespace: %s - %w", gvr, un.GetNamespace(), err)
254256
}
255257

256258
return parseAuthentication(auth, authType, g.dynamicClient)

main.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,9 @@ func main() {
9191

9292
var handler controller.ExternalClient
9393

94+
pluralizer := pluralizer.New(urlplurals, http.DefaultClient)
9495
var swg getter.Getter
95-
swg, err = getter.Dynamic(cfg)
96+
swg, err = getter.Dynamic(cfg, pluralizer)
9697
if err != nil {
9798
log.Debug("Creating chart url info getter.", "error", err)
9899
}
@@ -105,8 +106,6 @@ func main() {
105106
WithValues("resource", *resourceName).
106107
Info("Starting.", "serviceName", serviceName)
107108

108-
pluralizer := pluralizer.New(urlplurals, http.DefaultClient)
109-
110109
handler = restResources.NewHandler(cfg, log, swg, *pluralizer)
111110

112111
controller := genctrl.New(genctrl.Options{

0 commit comments

Comments
 (0)