Skip to content

Commit ab162cd

Browse files
authored
Merge pull request kubernetes#77354 from jennybuckley/crd-apply
Use CRD validation field in server-side apply
2 parents 7900c94 + 7303df0 commit ab162cd

File tree

73 files changed

+1999
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1999
-546
lines changed

api/api-rules/violation_exceptions.list

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/ap
368368
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Enum
369369
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,OneOf
370370
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Required
371+
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XListMapKeys
371372
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaPropsOrArray,JSONSchemas
372373
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaPropsOrStringArray,Property
373374
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,WebhookClientConfig,CABundle
@@ -389,6 +390,7 @@ API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/ap
389390
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,Enum
390391
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,OneOf
391392
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,Required
393+
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XListMapKeys
392394
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaPropsOrArray,JSONSchemas
393395
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaPropsOrStringArray,Property
394396
API rule violation: list_type_missing,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,WebhookClientConfig,CABundle
@@ -523,6 +525,8 @@ API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiexten
523525
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Schema
524526
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XEmbeddedResource
525527
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XIntOrString
528+
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XListMapKeys
529+
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XListType
526530
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,XPreserveUnknownFields
527531
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaPropsOrArray,JSONSchemas
528532
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaPropsOrArray,Schema
@@ -536,6 +540,8 @@ API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiexten
536540
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,Schema
537541
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XEmbeddedResource
538542
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XIntOrString
543+
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XListMapKeys
544+
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XListType
539545
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaProps,XPreserveUnknownFields
540546
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaPropsOrArray,JSONSchemas
541547
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1,JSONSchemaPropsOrArray,Schema

api/openapi-spec/swagger.json

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ require (
160160
k8s.io/klog v0.4.0
161161
k8s.io/kube-aggregator v0.0.0
162162
k8s.io/kube-controller-manager v0.0.0
163-
k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058
163+
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf
164164
k8s.io/kube-proxy v0.0.0
165165
k8s.io/kube-scheduler v0.0.0
166166
k8s.io/kubectl v0.0.0
@@ -465,7 +465,7 @@ replace (
465465
k8s.io/klog => k8s.io/klog v0.4.0
466466
k8s.io/kube-aggregator => ./staging/src/k8s.io/kube-aggregator
467467
k8s.io/kube-controller-manager => ./staging/src/k8s.io/kube-controller-manager
468-
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058
468+
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf
469469
k8s.io/kube-proxy => ./staging/src/k8s.io/kube-proxy
470470
k8s.io/kube-scheduler => ./staging/src/k8s.io/kube-scheduler
471471
k8s.io/kubectl => ./staging/src/k8s.io/kubectl

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,8 +506,8 @@ k8s.io/heapster v1.2.0-beta.1 h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84=
506506
k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM=
507507
k8s.io/klog v0.4.0 h1:lCJCxf/LIowc2IGS9TPjWDyXY4nOmdGdfcwwDQCOURQ=
508508
k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
509-
k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058 h1:di3XCwddOR9cWBNpfgXaskhh6cgJuwcK54rvtwUaC10=
510-
k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
509+
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf h1:EYm5AW/UUDbnmnI+gK0TJDVK9qPLhM+sRHYanNKw0EQ=
510+
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
511511
k8s.io/repo-infra v0.0.0-20181204233714-00fe14e3d1a3 h1:WD6cPA3q7qxZe6Fwir0XjjGwGMaWbHlHUcjCcOzuRG0=
512512
k8s.io/repo-infra v0.0.0-20181204233714-00fe14e3d1a3/go.mod h1:+G1xBfZDfVFsm1Tj/HNCvg4QqWx8rJ2Fxpqr1rqp/gQ=
513513
k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLKgHajBU0N62BDvE=

staging/src/k8s.io/api/go.sum

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/apiextensions-apiserver/go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ go 1.12
77
require (
88
github.com/coreos/etcd v3.3.15+incompatible
99
github.com/emicklei/go-restful v2.9.5+incompatible
10-
github.com/ghodss/yaml v0.0.0-20180820084758-c7ce16629ff4 // indirect
1110
github.com/go-openapi/errors v0.19.2
1211
github.com/go-openapi/spec v0.19.2
1312
github.com/go-openapi/strfmt v0.19.0
@@ -30,7 +29,7 @@ require (
3029
k8s.io/code-generator v0.0.0
3130
k8s.io/component-base v0.0.0
3231
k8s.io/klog v0.4.0
33-
k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058
32+
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf
3433
k8s.io/utils v0.0.0-20190801114015-581e00157fb1
3534
sigs.k8s.io/yaml v1.1.0
3635
)

staging/src/k8s.io/apiextensions-apiserver/go.sum

Lines changed: 2 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/deepcopy.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,5 +268,21 @@ func (in *JSONSchemaProps) DeepCopy() *JSONSchemaProps {
268268
}
269269
}
270270

271+
if in.XListMapKeys != nil {
272+
in, out := &in.XListMapKeys, &out.XListMapKeys
273+
*out = make([]string, len(*in))
274+
copy(*out, *in)
275+
}
276+
277+
if in.XListType != nil {
278+
in, out := &in.XListType, &out.XListType
279+
if *in == nil {
280+
*out = nil
281+
} else {
282+
*out = new(string)
283+
**out = **in
284+
}
285+
}
286+
271287
return out
272288
}

staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types_jsonschema.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,29 @@ type JSONSchemaProps struct {
8686
// - type: string
8787
// - ... zero or more
8888
XIntOrString bool
89+
90+
// x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used
91+
// as the index of the map.
92+
//
93+
// This tag MUST only be used on lists that have the "x-kubernetes-list-type"
94+
// extension set to "map". Also, the values specified for this attribute must
95+
// be a scalar typed field of the child structure (no nesting is supported).
96+
XListMapKeys []string
97+
98+
// x-kubernetes-list-type annotates an array to further describe its topology.
99+
// This extension must only be used on lists and may have 3 possible values:
100+
//
101+
// 1) `atomic`: the list is treated as a single entity, like a scalar.
102+
// Atomic lists will be entirely replaced when updated. This extension
103+
// may be used on any type of list (struct, scalar, ...).
104+
// 2) `set`:
105+
// Sets are lists that must not have multiple items with the same value. Each
106+
// value must be a scalar (or another atomic type).
107+
// 3) `map`:
108+
// These lists are like maps in that their elements have a non-index key
109+
// used to identify them. Order is preserved upon merge. The map tag
110+
// must only be used on a list with elements of type object.
111+
XListType *string
89112
}
90113

91114
// JSON represents any valid JSON value.

0 commit comments

Comments
 (0)