Skip to content

Commit

Permalink
Merge branch 'master' into upgrade-dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
willbeason authored Jun 10, 2021
2 parents c4a907d + 878a63a commit b75519f
Show file tree
Hide file tree
Showing 11 changed files with 119 additions and 119 deletions.
2 changes: 1 addition & 1 deletion constraint/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,4 @@ generate:
--input-dirs "./pkg/apis/templates/..." \
--go-header-file=./hack/boilerplate.go.txt \
--output-file-base=zz_generated.conversion \
--extra-dirs=k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1
--extra-dirs=k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
10 changes: 5 additions & 5 deletions constraint/pkg/apis/templates/transform.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ package templates
import (
"fmt"

apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)

// AddPreserveUnknownFields recurses through an *apiextensionsv1beta1.JSONSchemaProps
// AddPreserveUnknownFields recurses through an *apiextensionsv1.JSONSchemaProps
// data structure, adding `x-kubernetes-preserve-unknown-fields: true` at every level
// that type is equal to "object", "array", or is undefined.
func AddPreserveUnknownFields(sch *apiextensionsv1beta1.JSONSchemaProps) error {
func AddPreserveUnknownFields(sch *apiextensionsv1.JSONSchemaProps) error {
switch sch.Type {
// An object can have values not described in the schema. A blank Type could be anything,
// including an object, so we add x-kubernetes-preserve-unknown-fields: true to both.
Expand All @@ -37,8 +37,8 @@ func AddPreserveUnknownFields(sch *apiextensionsv1beta1.JSONSchemaProps) error {
// this structural item schema requirement.
if sch.Items == nil || (sch.Items.Schema == nil && sch.Items.JSONSchemas == nil) {
tr := true
sch.Items = &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
sch.Items = &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &tr,
},
}
Expand Down
154 changes: 77 additions & 77 deletions constraint/pkg/apis/templates/transform_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,92 +20,92 @@ import (
"testing"

"github.com/google/go-cmp/cmp"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)

func TestAddPreserveUnknownFields(t *testing.T) {
trueBool := true
testCases := []struct {
name string
v *apiextensionsv1beta1.JSONSchemaProps
exp *apiextensionsv1beta1.JSONSchemaProps
v *apiextensionsv1.JSONSchemaProps
exp *apiextensionsv1.JSONSchemaProps
error bool
}{
{
name: "no information",
v: &apiextensionsv1beta1.JSONSchemaProps{},
exp: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{},
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
},
},
{
name: "nil properties",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Properties: nil,
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Properties: nil,
},
},
{
name: "x-kubernetes-preserve-unknown-fields is present already and true",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
},
},
{
name: "type object with no Properties",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "object",
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Type: "object",
},
},
{
name: "type array with no Items",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "array",
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
},
},
},
},
{
name: "type array with Items but no schemas",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{},
Items: &apiextensionsv1.JSONSchemaPropsOrArray{},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
},
},
},
},
{
name: "map with empty JSONSchemaProps value",
v: &apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {
XPreserveUnknownFields: &trueBool,
},
Expand All @@ -114,24 +114,24 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Items with no type: array",
v: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"key": {Type: "string"},
"allowedRegex": {Type: "string"},
},
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"key": {Type: "string"},
"allowedRegex": {Type: "string"},
},
Expand All @@ -141,27 +141,27 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Recuse through doubly-nested properties",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"bar": {
Type: "string",
},
},
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"bar": {
Type: "string",
},
Expand All @@ -172,15 +172,15 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Recurse through triply-nested properties",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"bar": {
Type: "object",
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"burrito": {
Type: "string",
},
Expand All @@ -190,18 +190,18 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"foo": {
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"bar": {
Type: "object",
XPreserveUnknownFields: &trueBool,
Properties: map[string]apiextensionsv1beta1.JSONSchemaProps{
Properties: map[string]apiextensionsv1.JSONSchemaProps{
"burrito": {
Type: "string",
},
Expand All @@ -214,24 +214,24 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Recurse through doubly-nested Items with no type information",
v: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "string",
},
},
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "string",
},
},
Expand All @@ -241,26 +241,26 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Recurse through doubly-nested Items with array type",
v: &apiextensionsv1beta1.JSONSchemaProps{
v: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "string",
},
},
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "array",
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
Schema: &apiextensionsv1.JSONSchemaProps{
Type: "string",
},
},
Expand All @@ -270,21 +270,21 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "Recurse through doubly-nested AdditionalProperties",
v: &apiextensionsv1beta1.JSONSchemaProps{
AdditionalProperties: &apiextensionsv1beta1.JSONSchemaPropsOrBool{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
AdditionalProperties: &apiextensionsv1beta1.JSONSchemaPropsOrBool{
v: &apiextensionsv1.JSONSchemaProps{
AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
Schema: &apiextensionsv1.JSONSchemaProps{
AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
Allows: false,
},
},
},
},
exp: &apiextensionsv1beta1.JSONSchemaProps{
exp: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
AdditionalProperties: &apiextensionsv1beta1.JSONSchemaPropsOrBool{
Schema: &apiextensionsv1beta1.JSONSchemaProps{
AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
Schema: &apiextensionsv1.JSONSchemaProps{
XPreserveUnknownFields: &trueBool,
AdditionalProperties: &apiextensionsv1beta1.JSONSchemaPropsOrBool{
AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
Allows: false,
},
},
Expand All @@ -293,9 +293,9 @@ func TestAddPreserveUnknownFields(t *testing.T) {
},
{
name: "JSONSchemas not supported",
v: &apiextensionsv1beta1.JSONSchemaProps{
Items: &apiextensionsv1beta1.JSONSchemaPropsOrArray{
JSONSchemas: []apiextensionsv1beta1.JSONSchemaProps{},
v: &apiextensionsv1.JSONSchemaProps{
Items: &apiextensionsv1.JSONSchemaPropsOrArray{
JSONSchemas: []apiextensionsv1.JSONSchemaProps{},
},
},
error: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ limitations under the License.
package v1alpha1

import (
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -47,7 +47,7 @@ type Validation struct {
// +kubebuilder:validation:Schemaless
// +kubebuilder:validation:Type=object
// +kubebuilder:pruning:PreserveUnknownFields
OpenAPIV3Schema *apiextensionsv1beta1.JSONSchemaProps `json:"openAPIV3Schema,omitempty"`
OpenAPIV3Schema *apiextensionsv1.JSONSchemaProps `json:"openAPIV3Schema,omitempty"`
}

type Target struct {
Expand Down
Loading

0 comments on commit b75519f

Please sign in to comment.