This commit refactors the apiserver REST handlers to use typed objects
(appsv1alpha1.Application) instead of unstructured.Unstructured, eliminating
the need for runtime conversions and simplifying the codebase.
Additionally, it fixes an issue where UnstructuredList objects were using
the first registered kind from typeToGVK instead of the kind from the
object's field when multiple kinds are registered with the same Go type.
This is a more comprehensive fix for the problem addressed in
https://github.com/cozystack/cozystack/pull/1630, which was reverted in
https://github.com/cozystack/cozystack/pull/1677.
The fix includes the upstream fix from kubernetes/kubernetes#135537,
which enables short-circuit path for UnstructuredList similar to regular
Unstructured objects, using GVK from the object field instead of
typeToGVK.
Changes:
- Refactored rest.go handlers to use typed Application objects
- Removed unstructured.Unstructured conversions
- Fixed UnstructuredList GVK handling
- Updated dependencies in go.mod/go.sum
- Added e2e test for OpenAPI validation
- Updated Dockerfile
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
(cherry picked from commit ca29fc855a)
124 lines
5.6 KiB
Modula-2
124 lines
5.6 KiB
Modula-2
// This is a generated file. Do not edit directly.
|
|
|
|
module github.com/cozystack/cozystack
|
|
|
|
go 1.23.0
|
|
|
|
require (
|
|
github.com/fluxcd/helm-controller/api v1.1.0
|
|
github.com/go-logr/logr v1.4.2
|
|
github.com/go-logr/zapr v1.3.0
|
|
github.com/google/gofuzz v1.2.0
|
|
github.com/onsi/ginkgo/v2 v2.19.0
|
|
github.com/onsi/gomega v1.33.1
|
|
github.com/prometheus/client_golang v1.19.1
|
|
github.com/spf13/cobra v1.8.1
|
|
github.com/stretchr/testify v1.9.0
|
|
go.uber.org/zap v1.27.0
|
|
gopkg.in/yaml.v2 v2.4.0
|
|
k8s.io/api v0.31.2
|
|
k8s.io/apiextensions-apiserver v0.31.2
|
|
k8s.io/apimachinery v0.31.2
|
|
k8s.io/apiserver v0.31.2
|
|
k8s.io/client-go v0.31.2
|
|
k8s.io/component-base v0.31.2
|
|
k8s.io/klog/v2 v2.130.1
|
|
k8s.io/kube-openapi v0.0.0-20240827152857-f7e401e7b4c2
|
|
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
|
|
sigs.k8s.io/controller-runtime v0.19.0
|
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1
|
|
)
|
|
|
|
require (
|
|
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
|
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
|
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/coreos/go-semver v0.3.1 // indirect
|
|
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
|
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
|
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/fluxcd/pkg/apis/kustomize v1.6.1 // indirect
|
|
github.com/fluxcd/pkg/apis/meta v1.6.1 // indirect
|
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
|
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
|
github.com/go-openapi/swag v0.23.0 // indirect
|
|
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/google/cel-go v0.21.0 // indirect
|
|
github.com/google/gnostic-models v0.6.8 // indirect
|
|
github.com/google/go-cmp v0.6.0 // indirect
|
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/websocket v1.5.0 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
|
|
github.com/imdario/mergo v0.3.6 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/josharian/intern v1.0.0 // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
|
github.com/moby/spdystream v0.4.0 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_model v0.6.1 // indirect
|
|
github.com/prometheus/common v0.55.0 // indirect
|
|
github.com/prometheus/procfs v0.15.1 // indirect
|
|
github.com/spf13/pflag v1.0.5 // indirect
|
|
github.com/stoewer/go-strcase v1.3.0 // indirect
|
|
github.com/x448/float16 v0.8.4 // indirect
|
|
go.etcd.io/etcd/api/v3 v3.5.16 // indirect
|
|
go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
|
|
go.etcd.io/etcd/client/v3 v3.5.16 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect
|
|
go.opentelemetry.io/otel v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/sdk v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.28.0 // indirect
|
|
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
golang.org/x/crypto v0.31.0 // indirect
|
|
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
|
golang.org/x/net v0.33.0 // indirect
|
|
golang.org/x/oauth2 v0.23.0 // indirect
|
|
golang.org/x/sync v0.10.0 // indirect
|
|
golang.org/x/sys v0.28.0 // indirect
|
|
golang.org/x/term v0.27.0 // indirect
|
|
golang.org/x/text v0.21.0 // indirect
|
|
golang.org/x/time v0.7.0 // indirect
|
|
golang.org/x/tools v0.26.0 // indirect
|
|
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
|
|
google.golang.org/grpc v1.65.0 // indirect
|
|
google.golang.org/protobuf v1.34.2 // indirect
|
|
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
|
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
k8s.io/kms v0.31.2 // indirect
|
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
|
|
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
|
|
sigs.k8s.io/yaml v1.4.0 // indirect
|
|
)
|
|
|
|
// See: issues.k8s.io/135537
|
|
replace k8s.io/apimachinery => github.com/cozystack/apimachinery v0.0.0-20251201201312-18e522a87614
|