diff --git a/hack/custom-boilerplate.go.txt b/hack/custom-boilerplate.go.txt new file mode 100644 index 000000000..4b76f1fdd --- /dev/null +++ b/hack/custom-boilerplate.go.txt @@ -0,0 +1,15 @@ +/* +Copyright YEAR The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh new file mode 100755 index 000000000..aed761bf9 --- /dev/null +++ b/hack/update-codegen.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. +CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} + +# generate the code with: +# --output-base because this script should also be able to run inside the vendor dir of +# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir +# instead of the $GOPATH directly. For normal projects this can be dropped. +#${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \ +# k8s.io/ingress-nginx/pkg/client k8s.io/ingress-nginx/pkg/apis \ +# nginxingress:v1alpha1 \ +# --output-base "$(dirname ${BASH_SOURCE})/../../.." + +${CODEGEN_PKG}/generate-groups.sh "deepcopy" \ + k8s.io/ingress-nginx/pkg k8s.io/ingress-nginx/pkg \ + .:ingress \ + --output-base "$(dirname ${BASH_SOURCE})/../../.." + +# To use your own boilerplate text append: +# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt diff --git a/hack/verify-codegen.sh b/hack/verify-codegen.sh new file mode 100755 index 000000000..f5835c425 --- /dev/null +++ b/hack/verify-codegen.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/.. +SCRIPT_BASE=${SCRIPT_ROOT}/../.. + +DIFFROOT="${SCRIPT_ROOT}/pkg" +TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/pkg" +_tmp="${SCRIPT_ROOT}/_tmp" + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +mkdir -p "${TMP_DIFFROOT}" +cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}" + +"${SCRIPT_ROOT}/hack/update-codegen.sh" +echo "diffing ${DIFFROOT} against freshly generated codegen" +ret=0 +diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? +cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}" +if [[ $ret -eq 0 ]] +then + echo "${DIFFROOT} up to date." +else + echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh" + exit 1 +fi diff --git a/pkg/ingress/zz_generated.deepcopy.go b/pkg/ingress/zz_generated.deepcopy.go new file mode 100644 index 000000000..82e25588a --- /dev/null +++ b/pkg/ingress/zz_generated.deepcopy.go @@ -0,0 +1,156 @@ +// +build !ignore_autogenerated + +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was autogenerated by deepcopy-gen. Do not edit it manually! + +package ingress + +import ( + v1 "k8s.io/api/core/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + reflect "reflect" +) + +// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. +// +// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. +func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { + return []conversion.GeneratedDeepCopyFunc{ + {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Backend).DeepCopyInto(out.(*Backend)) + return nil + }, InType: reflect.TypeOf(&Backend{})}, + {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*CookieSessionAffinity).DeepCopyInto(out.(*CookieSessionAffinity)) + return nil + }, InType: reflect.TypeOf(&CookieSessionAffinity{})}, + {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Endpoint).DeepCopyInto(out.(*Endpoint)) + return nil + }, InType: reflect.TypeOf(&Endpoint{})}, + {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*SessionAffinityConfig).DeepCopyInto(out.(*SessionAffinityConfig)) + return nil + }, InType: reflect.TypeOf(&SessionAffinityConfig{})}, + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Backend) DeepCopyInto(out *Backend) { + *out = *in + if in.Service != nil { + in, out := &in.Service, &out.Service + if *in == nil { + *out = nil + } else { + *out = new(v1.Service) + (*in).DeepCopyInto(*out) + } + } + out.Port = in.Port + out.SecureCACert = in.SecureCACert + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *out = make([]Endpoint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.SessionAffinity.DeepCopyInto(&out.SessionAffinity) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend. +func (in *Backend) DeepCopy() *Backend { + if in == nil { + return nil + } + out := new(Backend) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CookieSessionAffinity) DeepCopyInto(out *CookieSessionAffinity) { + *out = *in + if in.Locations != nil { + in, out := &in.Locations, &out.Locations + *out = make(map[string][]string, len(*in)) + for key, val := range *in { + if val == nil { + (*out)[key] = nil + } else { + (*out)[key] = make([]string, len(val)) + copy((*out)[key], val) + } + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CookieSessionAffinity. +func (in *CookieSessionAffinity) DeepCopy() *CookieSessionAffinity { + if in == nil { + return nil + } + out := new(CookieSessionAffinity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Endpoint) DeepCopyInto(out *Endpoint) { + *out = *in + if in.Target != nil { + in, out := &in.Target, &out.Target + if *in == nil { + *out = nil + } else { + *out = new(v1.ObjectReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. +func (in *Endpoint) DeepCopy() *Endpoint { + if in == nil { + return nil + } + out := new(Endpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig) { + *out = *in + in.CookieSessionAffinity.DeepCopyInto(&out.CookieSessionAffinity) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionAffinityConfig. +func (in *SessionAffinityConfig) DeepCopy() *SessionAffinityConfig { + if in == nil { + return nil + } + out := new(SessionAffinityConfig) + in.DeepCopyInto(out) + return out +} diff --git a/pkg/ingress/zz_generated.types.go b/pkg/ingress/zz_generated.types.go deleted file mode 100644 index 43152b22e..000000000 --- a/pkg/ingress/zz_generated.types.go +++ /dev/null @@ -1,116 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// This file was autogenerated by deepcopy-gen. Do not edit it manually! - -package ingress - -import ( - v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: DeepCopy__Backend, InType: reflect.TypeOf(&Backend{})}, - {Fn: DeepCopy__CookieSessionAffinity, InType: reflect.TypeOf(&CookieSessionAffinity{})}, - {Fn: DeepCopy__Endpoint, InType: reflect.TypeOf(&Endpoint{})}, - {Fn: DeepCopy__SessionAffinityConfig, InType: reflect.TypeOf(&SessionAffinityConfig{})}, - } -} - -// DeepCopy__Backend is an autogenerated deepcopy function. -func DeepCopy__Backend(in interface{}, out interface{}, c *conversion.Cloner) error { - { - in := in.(*Backend) - out := out.(*Backend) - *out = *in - if in.Service != nil { - in, out := &in.Service, &out.Service - if newVal, err := c.DeepCopy(*in); err != nil { - return err - } else { - *out = newVal.(*v1.Service) - } - } - if in.Endpoints != nil { - in, out := &in.Endpoints, &out.Endpoints - *out = make([]Endpoint, len(*in)) - for i := range *in { - if err := DeepCopy__Endpoint(&(*in)[i], &(*out)[i], c); err != nil { - return err - } - } - } - if err := DeepCopy__SessionAffinityConfig(&in.SessionAffinity, &out.SessionAffinity, c); err != nil { - return err - } - return nil - } -} - -// DeepCopy__CookieSessionAffinity is an autogenerated deepcopy function. -func DeepCopy__CookieSessionAffinity(in interface{}, out interface{}, c *conversion.Cloner) error { - { - in := in.(*CookieSessionAffinity) - out := out.(*CookieSessionAffinity) - *out = *in - if in.Locations != nil { - in, out := &in.Locations, &out.Locations - *out = make(map[string][]string) - for key, val := range *in { - if newVal, err := c.DeepCopy(&val); err != nil { - return err - } else { - (*out)[key] = *newVal.(*[]string) - } - } - } - return nil - } -} - -// DeepCopy__Endpoint is an autogenerated deepcopy function. -func DeepCopy__Endpoint(in interface{}, out interface{}, c *conversion.Cloner) error { - { - in := in.(*Endpoint) - out := out.(*Endpoint) - *out = *in - if in.Target != nil { - in, out := &in.Target, &out.Target - *out = new(v1.ObjectReference) - **out = **in - } - return nil - } -} - -// DeepCopy__SessionAffinityConfig is an autogenerated deepcopy function. -func DeepCopy__SessionAffinityConfig(in interface{}, out interface{}, c *conversion.Cloner) error { - { - in := in.(*SessionAffinityConfig) - out := out.(*SessionAffinityConfig) - *out = *in - if err := DeepCopy__CookieSessionAffinity(&in.CookieSessionAffinity, &out.CookieSessionAffinity, c); err != nil { - return err - } - return nil - } -}