Skip to content

Commit b432793

Browse files
committed
Reference listmeta in CR openapi
1 parent a730ad5 commit b432793

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,16 @@ import (
5050
const (
5151
// Reference and Go types for built-in metadata
5252
objectMetaSchemaRef = "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
53+
listMetaSchemaRef = "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5354
listMetaType = "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"
5455
typeMetaType = "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta"
5556

5657
definitionPrefix = "#/definitions/"
5758
)
5859

5960
var (
60-
swaggerPartialObjectMetadataDescriptions = metav1beta1.PartialObjectMetadata{}.SwaggerDoc()
61+
swaggerPartialObjectMetadataDescriptions = metav1beta1.PartialObjectMetadata{}.SwaggerDoc()
62+
swaggerPartialObjectMetadataListDescriptions = metav1beta1.PartialObjectMetadataList{}.SwaggerDoc()
6163

6264
nameToken = "{name}"
6365
namespaceToken = "{namespace}"
@@ -457,7 +459,8 @@ func (b *builder) buildListSchema() *spec.Schema {
457459
s := new(spec.Schema).WithDescription(fmt.Sprintf("%s is a list of %s", b.listKind, b.kind)).
458460
WithRequired("items").
459461
SetProperty("items", *spec.ArrayProperty(spec.RefSchema(name)).WithDescription(doc)).
460-
SetProperty("metadata", getDefinition(listMetaType))
462+
SetProperty("metadata", *spec.RefSchema(listMetaSchemaRef).WithDescription(swaggerPartialObjectMetadataListDescriptions["metadata"]))
463+
461464
addTypeMetaProperties(s)
462465
s.AddExtension(endpoints.ROUTE_META_GVK, []map[string]string{
463466
{

staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,17 @@ func TestNewBuilder(t *testing.T) {
419419
t.Fatalf("unexpected list properties, got: %s, expected: %s", gotListProperties.List(), want.List())
420420
}
421421

422+
if e, a := (spec.StringOrArray{"string"}), got.listSchema.Properties["apiVersion"].Type; !reflect.DeepEqual(e, a) {
423+
t.Errorf("expected %#v, got %#v", e, a)
424+
}
425+
if e, a := (spec.StringOrArray{"string"}), got.listSchema.Properties["kind"].Type; !reflect.DeepEqual(e, a) {
426+
t.Errorf("expected %#v, got %#v", e, a)
427+
}
428+
listRef := got.listSchema.Properties["metadata"].Ref
429+
if e, a := "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", (&listRef).String(); e != a {
430+
t.Errorf("expected %q, got %q", e, a)
431+
}
432+
422433
gotListSchema := got.listSchema.Properties["items"].Items.Schema
423434
if !reflect.DeepEqual(&wantedItemsSchema, gotListSchema) {
424435
t.Errorf("unexpected list schema: %s (want/got)", schemaDiff(&wantedItemsSchema, gotListSchema))

0 commit comments

Comments
 (0)