Skip to content

Commit e6aa506

Browse files
Update fake-apiserver deps
Signed-off-by: Arnob kumar saha <arnob@appscode.com>
1 parent 290d960 commit e6aa506

File tree

6 files changed

+80
-13
lines changed

6 files changed

+80
-13
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
k8s.io/kubectl v0.32.2
2424
k8s.io/utils v0.0.0-20241210054802-24370beab758
2525
kmodules.xyz/client-go v0.32.1
26-
kmodules.xyz/fake-apiserver v0.0.5
26+
kmodules.xyz/fake-apiserver v0.0.6
2727
kmodules.xyz/resource-metadata v0.27.0
2828
kubepack.dev/lib-app v0.1.0
2929
kubepack.dev/lib-helm v0.29.13

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,8 +1048,8 @@ kmodules.xyz/apply v0.29.0 h1:0OXGfE2IPuvXHk6uI9zp6KCYdBibx8mK4PEl0g3LZ44=
10481048
kmodules.xyz/apply v0.29.0/go.mod h1:bwToXErB+DC7/EEWjQVARCSbJBjGx5hIEuV1n0tC73g=
10491049
kmodules.xyz/client-go v0.32.1 h1:W8TWGBBaokQEqfesbdhlRFMMV0TChcRbMRQ0eTIRS88=
10501050
kmodules.xyz/client-go v0.32.1/go.mod h1:tqe40/iDtO/RSNaDJs/a+rgnMPSOcK622HpOmOFvcds=
1051-
kmodules.xyz/fake-apiserver v0.0.5 h1:4HjlHY7/qpJjlmSDmID6XzpgeCDErCjib/8/+tbRpP4=
1052-
kmodules.xyz/fake-apiserver v0.0.5/go.mod h1:ZpoVMtknbGJ2j1MTEbBAqUN4QWHFPXlRVMX96KfxSLU=
1051+
kmodules.xyz/fake-apiserver v0.0.6 h1:n/3Nd8BkjCvEn/Daen2gyb6V9+YlOrOB/8Miavfu30U=
1052+
kmodules.xyz/fake-apiserver v0.0.6/go.mod h1:49c+tJQ24leVKsrdL0qWezeP3GXZzTKSi147ddtbIW8=
10531053
kmodules.xyz/go-containerregistry v0.0.14 h1:8MgLFa74HymAJEyjH7fyQJn5u2Ok6qPPFQX8ARfcXp0=
10541054
kmodules.xyz/go-containerregistry v0.0.14/go.mod h1:xz0iGC3noyMi5NNAzXWTH6KqfiIgFWZAomw+U2zVOXs=
10551055
kmodules.xyz/offshoot-api v0.32.0 h1:gogc5scSZe2JoXtZof72UGRl3Tit0kFaFRMkLLT1D8o=

vendor/kmodules.xyz/fake-apiserver/pkg/create.go

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3232
"k8s.io/apimachinery/pkg/runtime"
3333
utilrand "k8s.io/apimachinery/pkg/util/rand"
34+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3435
)
3536

3637
func (s *Server) Create(w http.ResponseWriter, r *http.Request) {
@@ -60,17 +61,34 @@ func (s *Server) CreateImpl(store *APIStorage, codec runtime.Codec, r *http.Requ
6061
return nil, err
6162
}
6263

63-
var obj unstructured.Unstructured
64-
_, _, err = codec.Decode(data, &store.GVK, &obj)
64+
isOfficialType := clientgoscheme.Scheme.IsGroupRegistered(store.GVK.Group)
65+
66+
var into runtime.Object
67+
if !isOfficialType {
68+
var u unstructured.Unstructured
69+
u.SetGroupVersionKind(store.GVK)
70+
into = &u
71+
}
72+
o2, _, err := codec.Decode(data, &store.GVK, into)
6573
if err != nil {
6674
return nil, err
6775
}
68-
if obj.GetGenerateName() != "" {
69-
obj.SetName(fmt.Sprintf("%s-%s", obj.GetGenerateName(), utilrand.String(6)))
76+
77+
var obj unstructured.Unstructured
78+
if isOfficialType {
79+
content, err := runtime.DefaultUnstructuredConverter.ToUnstructured(o2)
80+
if err != nil {
81+
return nil, err
82+
}
83+
84+
obj.SetGroupVersionKind(store.GVK)
85+
obj.SetUnstructuredContent(content)
86+
} else {
87+
obj = *into.(*unstructured.Unstructured)
7088
}
7189

72-
if obj.GetName() == "kubedb" {
73-
fmt.Println("wait")
90+
if obj.GetGenerateName() != "" {
91+
obj.SetName(fmt.Sprintf("%s-%s", obj.GetGenerateName(), utilrand.String(6)))
7492
}
7593

7694
if store.Namespaced {

vendor/kmodules.xyz/fake-apiserver/pkg/server.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"github.com/go-chi/chi/v5"
3434
"github.com/go-chi/chi/v5/middleware"
3535
"gomodules.xyz/sets"
36+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3637
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3738
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3839
"k8s.io/apimachinery/pkg/runtime"
@@ -78,6 +79,7 @@ func NewOptions(apigroups ...string) *Options {
7879
)
7980

8081
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
82+
utilruntime.Must(apiextensionsv1.AddToScheme(scheme))
8183
metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion)
8284

8385
// TODO: keep the generic API server from wanting this
@@ -174,7 +176,7 @@ func (s *Server) Register(m chi.Router) {
174176
}
175177

176178
func (s *Server) encoder(w http.ResponseWriter, r *http.Request) runtime.Encoder {
177-
outputMediaType, _, err := negotiation.NegotiateOutputMediaType(r, s.opts.NegotiatedSerializer, negotiation.DefaultEndpointRestrictions)
179+
outputMediaType, _, err := negotiation.NegotiateOutputMediaType(r, OutputSerializer{delegate: s.opts.NegotiatedSerializer}, negotiation.DefaultEndpointRestrictions)
178180
if err != nil {
179181
panic(err)
180182
}
@@ -351,3 +353,28 @@ func atoi(s string) int {
351353
i, _ := strconv.Atoi(s)
352354
return i
353355
}
356+
357+
type OutputSerializer struct {
358+
delegate runtime.NegotiatedSerializer
359+
}
360+
361+
var _ runtime.NegotiatedSerializer = &OutputSerializer{}
362+
363+
func (o OutputSerializer) SupportedMediaTypes() []runtime.SerializerInfo {
364+
a := o.delegate.SupportedMediaTypes()
365+
b := a[:0]
366+
for _, x := range a {
367+
if x.MediaType != runtime.ContentTypeProtobuf {
368+
b = append(b, x)
369+
}
370+
}
371+
return b
372+
}
373+
374+
func (o OutputSerializer) EncoderForVersion(serializer runtime.Encoder, gv runtime.GroupVersioner) runtime.Encoder {
375+
return o.delegate.EncoderForVersion(serializer, gv)
376+
}
377+
378+
func (o OutputSerializer) DecoderToVersion(serializer runtime.Decoder, gv runtime.GroupVersioner) runtime.Decoder {
379+
return o.delegate.DecoderToVersion(serializer, gv)
380+
}

vendor/kmodules.xyz/fake-apiserver/pkg/update.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2929
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3030
"k8s.io/apimachinery/pkg/runtime"
31+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3132
)
3233

3334
func (s *Server) Update(w http.ResponseWriter, r *http.Request) {
@@ -55,11 +56,32 @@ func (s *Server) UpdateImpl(store *APIStorage, codec runtime.Codec, r *http.Requ
5556
return nil, err
5657
}
5758

58-
var obj unstructured.Unstructured
59-
_, _, err = codec.Decode(data, &store.GVK, &obj)
59+
isOfficialType := clientgoscheme.Scheme.IsGroupRegistered(store.GVK.Group)
60+
61+
var into runtime.Object
62+
if !isOfficialType {
63+
var u unstructured.Unstructured
64+
u.SetGroupVersionKind(store.GVK)
65+
into = &u
66+
}
67+
o2, _, err := codec.Decode(data, &store.GVK, into)
6068
if err != nil {
6169
return nil, err
6270
}
71+
72+
var obj unstructured.Unstructured
73+
if isOfficialType {
74+
content, err := runtime.DefaultUnstructuredConverter.ToUnstructured(o2)
75+
if err != nil {
76+
return nil, err
77+
}
78+
79+
obj.SetGroupVersionKind(store.GVK)
80+
obj.SetUnstructuredContent(content)
81+
} else {
82+
obj = *into.(*unstructured.Unstructured)
83+
}
84+
6385
if store.Namespaced {
6486
ns := chi.URLParam(r, "namespace")
6587
obj.SetNamespace(ns)

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2072,7 +2072,7 @@ kmodules.xyz/client-go/meta
20722072
kmodules.xyz/client-go/tools/clientcmd
20732073
kmodules.xyz/client-go/tools/parser
20742074
kmodules.xyz/client-go/tools/wait
2075-
# kmodules.xyz/fake-apiserver v0.0.5
2075+
# kmodules.xyz/fake-apiserver v0.0.6
20762076
## explicit; go 1.23.0
20772077
kmodules.xyz/fake-apiserver/pkg
20782078
kmodules.xyz/fake-apiserver/pkg/resources

0 commit comments

Comments
 (0)