Merge pull request #73763 from jennybuckley/hack-update-kube-openapi

Temporary fix for alpha features test
pull/564/head
Kubernetes Prow Robot 2019-02-05 17:27:24 -08:00 committed by GitHub
commit 0dfbbc290c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -23,6 +23,7 @@ go_library(
"//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/fieldpath:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/merge:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/schema:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/typed:go_default_library",
"//vendor/sigs.k8s.io/structured-merge-diff/value:go_default_library",
"//vendor/sigs.k8s.io/yaml:go_default_library",

View File

@ -22,6 +22,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kube-openapi/pkg/schemaconv"
"k8s.io/kube-openapi/pkg/util/proto"
smdschema "sigs.k8s.io/structured-merge-diff/schema"
"sigs.k8s.io/structured-merge-diff/typed"
)
@ -48,6 +49,7 @@ func newGVKParser(models proto.Models) (*gvkParser, error) {
if err != nil {
return nil, fmt.Errorf("failed to convert models to schema: %v", err)
}
typeSchema = makeRawExtensionUntyped(typeSchema)
parser := gvkParser{
gvks: map[schema.GroupVersionKind]string{},
}
@ -114,3 +116,20 @@ func parseGroupVersionKind(s proto.Schema) []schema.GroupVersionKind {
return gvkListResult
}
// makeRawExtensionUntyped explicitly sets RawExtension's type in the schema to Untyped atomic
// TODO: remove this once kube-openapi is updated to include
// https://github.com/kubernetes/kube-openapi/pull/133
func makeRawExtensionUntyped(s *smdschema.Schema) *smdschema.Schema {
s2 := &smdschema.Schema{}
for _, t := range s.Types {
t2 := t
if t2.Name == "io.k8s.apimachinery.pkg.runtime.RawExtension" {
t2.Atom = smdschema.Atom{
Untyped: &smdschema.Untyped{},
}
}
s2.Types = append(s2.Types, t2)
}
return s2
}