From 49e598e5b0ae5fea96a81dec5f89b1fa4040d6d5 Mon Sep 17 00:00:00 2001
From: Matthew Wong <mawong@redhat.com>
Date: Wed, 20 Sep 2017 20:51:36 -0400
Subject: [PATCH] Fix apiserver and apiextensions-apiserver versions

---
 glide.lock                                    |  12 +-
 glide.yaml                                    |   4 +
 test.sh                                       |   1 +
 vendor/github.com/aws/aws-sdk-go/CHANGELOG.md |  12 +
 .../aws/aws-sdk-go/aws/session/env_config.go  |   5 +-
 .../github.com/aws/aws-sdk-go/aws/version.go  |   2 +-
 .../aws/aws-sdk-go/service/ec2/api.go         |   2 +-
 vendor/k8s.io/apiextensions-apiserver/BUILD   |  37 +--
 .../apiextensions-apiserver/kubernetes-sha    |   1 +
 vendor/k8s.io/apiextensions-apiserver/main.go |   9 +-
 .../pkg/apis/apiextensions/BUILD              |  23 +-
 .../pkg/apis/apiextensions/types.go           |   7 +-
 .../pkg/apis/apiextensions/v1beta1/BUILD      |  22 +-
 .../pkg/apis/apiextensions/v1beta1/types.go   |   7 +-
 .../v1beta1/zz_generated.conversion.go        |  12 +-
 .../v1beta1/zz_generated.deepcopy.go          | 236 +++++++-----------
 .../apiextensions/zz_generated.deepcopy.go    | 236 +++++++-----------
 .../pkg/client/clientset/clientset/BUILD      |  21 +-
 .../client/clientset/clientset/clientset.go   |  18 +-
 .../client/clientset/clientset/scheme/BUILD   |  16 +-
 .../typed/apiextensions/v1beta1/BUILD         |  19 +-
 .../v1beta1/customresourcedefinition.go       |  66 ++---
 vendor/k8s.io/apiserver/OWNERS                |   1 -
 vendor/k8s.io/apiserver/kubernetes-sha        |   1 +
 .../pkg/authentication/authenticator/BUILD    |  16 +-
 .../pkg/authentication/serviceaccount/BUILD   |  17 +-
 .../pkg/authentication/serviceaccount/util.go |   4 +-
 .../apiserver/pkg/authentication/user/BUILD   |  14 +-
 vendor/k8s.io/apiserver/pkg/features/BUILD    |  16 +-
 .../k8s.io/apiserver/pkg/util/feature/BUILD   |  17 +-
 .../pkg/util/feature/feature_gate.go          |  13 +-
 31 files changed, 322 insertions(+), 545 deletions(-)
 create mode 100644 vendor/k8s.io/apiextensions-apiserver/kubernetes-sha
 create mode 100644 vendor/k8s.io/apiserver/kubernetes-sha

diff --git a/glide.lock b/glide.lock
index 3788fa83d..5c27f4f37 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,12 +1,12 @@
-hash: ef128b88161cdea558e5ae947d38936e5cd85fad0aea0aac07a8e47465921875
-updated: 2017-09-19T21:17:26.399597032-04:00
+hash: c93b7bb90a59a66ebfa93614b4d3bc73a46d973db4fcc5212ab1b9da8261132c
+updated: 2017-09-20T20:27:26.578282752-04:00
 imports:
 - name: cloud.google.com/go
-  version: 38a7def97ebdc2c74a198a4252b7f273fc216929
+  version: 6914032ea644de194c5f05cc04124f111396531c
   subpackages:
   - compute/metadata
 - name: github.com/aws/aws-sdk-go
-  version: 9924c83c280264fb32f34cc5095204c451bedf0c
+  version: d76e48be81c125ffb3d030020b66d64731d2b9d0
   subpackages:
   - aws
   - aws/awserr
@@ -371,7 +371,7 @@ imports:
   - storage/v1
   - storage/v1beta1
 - name: k8s.io/apiextensions-apiserver
-  version: 2bfb07d318ed549813240d1165fcebad6250c666
+  version: be41f5093e2b05c7a0befe35b04b715eb325ab43
   subpackages:
   - pkg/apis/apiextensions
   - pkg/apis/apiextensions/v1beta1
@@ -436,7 +436,7 @@ imports:
   - third_party/forked/golang/netutil
   - third_party/forked/golang/reflect
 - name: k8s.io/apiserver
-  version: 26ddb013b915693f5d5cf98c7a17b6b5c85a0ad3
+  version: 149fc2228647cea28b0670c240ec582e985e8eda
   subpackages:
   - pkg/authentication/authenticator
   - pkg/authentication/serviceaccount
diff --git a/glide.yaml b/glide.yaml
index f3fabcf2f..356c66a34 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -13,6 +13,10 @@ import:
 - package: github.com/guelfey/go.dbus
 - package: github.com/mitchellh/mapstructure
   version: db1efb5
+- package: k8s.io/apiserver
+  version: 149fc2228647cea28b0670c240ec582e985e8eda
+- package: k8s.io/apiextensions-apiserver
+  version: be41f5093e2b05c7a0befe35b04b715eb325ab43
 - package: k8s.io/apimachinery
   version: 728b986edb9bd4bb8a022a8cc13573a97ecc2239
 - package: k8s.io/client-go
diff --git a/test.sh b/test.sh
index 6a060bae8..8eb74c8f6 100755
--- a/test.sh
+++ b/test.sh
@@ -92,6 +92,7 @@ elif [ "$TEST_SUITE" = "everything-else" ]; then
 	make iscsi/targetd
 	make test-iscsi/targetd
 	make nfs-client
+	make snapshot
 elif [ "$TEST_SUITE" = "local-volume" ]; then
 	make local-volume/provisioner
 	make test-local-volume/provisioner
diff --git a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md
index f56856251..ef243177f 100644
--- a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md
+++ b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md
@@ -1,3 +1,15 @@
+Release v1.10.48 (2017-09-19)
+===
+
+### Service Client Updates
+* `service/ec2`: Updates service API
+  * Fixed bug in EC2 clients preventing ElasticGpuSet from being set.
+
+### SDK Enhancements
+* `aws/credentials`: Add EnvProviderName constant. ([#1531](https://github.com/aws/aws-sdk-go/issues/1531))
+  * Adds the "EnvConfigCredentials" string literal as EnvProviderName constant.
+  * Fixes [#1444](https://github.com/aws/aws-sdk-go/issues/1444)
+
 Release v1.10.47 (2017-09-18)
 ===
 
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
index 4b102f8f2..f1adcf481 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
@@ -7,6 +7,9 @@ import (
 	"github.com/aws/aws-sdk-go/aws/credentials"
 )
 
+// EnvProviderName provides a name of the provider when config is loaded from environment.
+const EnvProviderName = "EnvConfigCredentials"
+
 // envConfig is a collection of environment values the SDK will read
 // setup config from. All environment values are optional. But some values
 // such as credentials require multiple values to be complete or the values
@@ -157,7 +160,7 @@ func envConfigLoad(enableSharedConfig bool) envConfig {
 	if len(cfg.Creds.AccessKeyID) == 0 || len(cfg.Creds.SecretAccessKey) == 0 {
 		cfg.Creds = credentials.Value{}
 	} else {
-		cfg.Creds.ProviderName = "EnvConfigCredentials"
+		cfg.Creds.ProviderName = EnvProviderName
 	}
 
 	regionKeys := regionEnvKeys
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go
index 0f1f2d583..403f55605 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/version.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go
@@ -5,4 +5,4 @@ package aws
 const SDKName = "aws-sdk-go"
 
 // SDKVersion is the version of this SDK
-const SDKVersion = "1.10.47"
+const SDKVersion = "1.10.48"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
index 8a7785cdc..ccb14369a 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
@@ -29983,7 +29983,7 @@ type DescribeElasticGpusOutput struct {
 	_ struct{} `type:"structure"`
 
 	// Information about the Elastic GPUs.
-	ElasticGpuSet []*ElasticGpus `locationName:"elasticGpuSet" type:"list"`
+	ElasticGpuSet []*ElasticGpus `locationName:"elasticGpuSet" locationNameList:"item" type:"list"`
 
 	// The total number of items to return. If the total number of items available
 	// is more than the value specified in max-items then a Next-Token will be provided
diff --git a/vendor/k8s.io/apiextensions-apiserver/BUILD b/vendor/k8s.io/apiextensions-apiserver/BUILD
index b52477d47..98351c534 100644
--- a/vendor/k8s.io/apiextensions-apiserver/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_binary",
@@ -9,45 +11,16 @@ load(
 go_binary(
     name = "apiextensions-apiserver",
     library = ":go_default_library",
+    tags = ["automanaged"],
 )
 
 go_library(
     name = "go_default_library",
     srcs = ["main.go"],
+    tags = ["automanaged"],
     deps = [
-        "//vendor/github.com/golang/glog:go_default_library",
         "//vendor/k8s.io/apiextensions-apiserver/pkg/cmd/server:go_default_library",
-        "//vendor/k8s.io/apiserver/pkg/server:go_default_library",
+        "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
         "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [
-        ":package-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/test/integration:all-srcs",
-    ],
-    tags = ["automanaged"],
-)
diff --git a/vendor/k8s.io/apiextensions-apiserver/kubernetes-sha b/vendor/k8s.io/apiextensions-apiserver/kubernetes-sha
new file mode 100644
index 000000000..e8400497c
--- /dev/null
+++ b/vendor/k8s.io/apiextensions-apiserver/kubernetes-sha
@@ -0,0 +1 @@
+9ee991837c2ba22becee1fb324deb81de3327903
diff --git a/vendor/k8s.io/apiextensions-apiserver/main.go b/vendor/k8s.io/apiextensions-apiserver/main.go
index 7723e6513..5244c496f 100644
--- a/vendor/k8s.io/apiextensions-apiserver/main.go
+++ b/vendor/k8s.io/apiextensions-apiserver/main.go
@@ -21,10 +21,8 @@ import (
 	"os"
 	"runtime"
 
-	"github.com/golang/glog"
-
 	"k8s.io/apiextensions-apiserver/pkg/cmd/server"
-	genericapiserver "k8s.io/apiserver/pkg/server"
+	"k8s.io/apimachinery/pkg/util/wait"
 	"k8s.io/apiserver/pkg/util/logs"
 )
 
@@ -36,10 +34,9 @@ func main() {
 		runtime.GOMAXPROCS(runtime.NumCPU())
 	}
 
-	stopCh := genericapiserver.SetupSignalHandler()
-	cmd := server.NewCommandStartCustomResourceDefinitionsServer(os.Stdout, os.Stderr, stopCh)
+	cmd := server.NewCommandStartCustomResourceDefinitionsServer(os.Stdout, os.Stderr, wait.NeverStop)
 	cmd.Flags().AddGoFlagSet(flag.CommandLine)
 	if err := cmd.Execute(); err != nil {
-		glog.Fatal(err)
+		panic(err)
 	}
 }
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD
index 64088c8a1..c424286b1 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -15,6 +17,7 @@ go_library(
         "types.go",
         "zz_generated.deepcopy.go",
     ],
+    tags = ["automanaged"],
     deps = [
         "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
         "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
@@ -27,24 +30,6 @@ go_test(
     name = "go_default_test",
     srcs = ["helpers_test.go"],
     library = ":go_default_library",
-    deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"],
-)
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [
-        ":package-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation:all-srcs",
-    ],
     tags = ["automanaged"],
+    deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"],
 )
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go
index 59240fbd0..55c3bfad4 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go
@@ -113,9 +113,8 @@ type CustomResourceDefinitionStatus struct {
 // a CustomResourceDefinition
 const CustomResourceCleanupFinalizer = "customresourcecleanup.apiextensions.k8s.io"
 
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +genclient=true
+// +nonNamespaced=true
 
 // CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format
 // <.spec.name>.<.spec.group>.
@@ -129,8 +128,6 @@ type CustomResourceDefinition struct {
 	Status CustomResourceDefinitionStatus
 }
 
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
 // CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
 type CustomResourceDefinitionList struct {
 	metav1.TypeMeta
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD
index 60b91ad1f..9a0c5380d 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -17,6 +19,7 @@ go_library(
         "zz_generated.deepcopy.go",
         "zz_generated.defaults.go",
     ],
+    tags = ["automanaged"],
     deps = [
         "//vendor/github.com/gogo/protobuf/proto:go_default_library",
         "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library",
@@ -26,22 +29,3 @@ go_library(
         "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
-    tags = ["automanaged"],
-)
-
-filegroup(
-    name = "go_default_library_protos",
-    srcs = ["generated.proto"],
-    visibility = ["//visibility:public"],
-)
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go
index 75b410650..a9a93c37f 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go
@@ -113,9 +113,8 @@ type CustomResourceDefinitionStatus struct {
 // a CustomResourceDefinition
 const CustomResourceCleanupFinalizer = "customresourcecleanup.apiextensions.k8s.io"
 
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +genclient=true
+// +nonNamespaced=true
 
 // CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format
 // <.spec.name>.<.spec.group>.
@@ -129,8 +128,6 @@ type CustomResourceDefinition struct {
 	Status CustomResourceDefinitionStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
 }
 
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
 // CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
 type CustomResourceDefinitionList struct {
 	metav1.TypeMeta `json:",inline"`
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go
index cb19f35d7..15b1255a3 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go
@@ -123,7 +123,11 @@ func Convert_v1beta1_CustomResourceDefinitionList_To_apiextensions_CustomResourc
 
 func autoConvert_apiextensions_CustomResourceDefinitionList_To_v1beta1_CustomResourceDefinitionList(in *apiextensions.CustomResourceDefinitionList, out *CustomResourceDefinitionList, s conversion.Scope) error {
 	out.ListMeta = in.ListMeta
-	out.Items = *(*[]CustomResourceDefinition)(unsafe.Pointer(&in.Items))
+	if in.Items == nil {
+		out.Items = make([]CustomResourceDefinition, 0)
+	} else {
+		out.Items = *(*[]CustomResourceDefinition)(unsafe.Pointer(&in.Items))
+	}
 	return nil
 }
 
@@ -204,7 +208,11 @@ func Convert_v1beta1_CustomResourceDefinitionStatus_To_apiextensions_CustomResou
 }
 
 func autoConvert_apiextensions_CustomResourceDefinitionStatus_To_v1beta1_CustomResourceDefinitionStatus(in *apiextensions.CustomResourceDefinitionStatus, out *CustomResourceDefinitionStatus, s conversion.Scope) error {
-	out.Conditions = *(*[]CustomResourceDefinitionCondition)(unsafe.Pointer(&in.Conditions))
+	if in.Conditions == nil {
+		out.Conditions = make([]CustomResourceDefinitionCondition, 0)
+	} else {
+		out.Conditions = *(*[]CustomResourceDefinitionCondition)(unsafe.Pointer(&in.Conditions))
+	}
 	if err := Convert_apiextensions_CustomResourceDefinitionNames_To_v1beta1_CustomResourceDefinitionNames(&in.AcceptedNames, &out.AcceptedNames, s); err != nil {
 		return err
 	}
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go
index 31feff62d..5291372c3 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go
@@ -21,6 +21,7 @@ limitations under the License.
 package v1beta1
 
 import (
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	conversion "k8s.io/apimachinery/pkg/conversion"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 	reflect "reflect"
@@ -32,175 +33,126 @@ func init() {
 
 // RegisterDeepCopies adds deep-copy functions to the given scheme. Public
 // to allow building arbitrary schemes.
-//
-// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented.
 func RegisterDeepCopies(scheme *runtime.Scheme) error {
 	return scheme.AddGeneratedDeepCopyFuncs(
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinition).DeepCopyInto(out.(*CustomResourceDefinition))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinition{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionCondition).DeepCopyInto(out.(*CustomResourceDefinitionCondition))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionList).DeepCopyInto(out.(*CustomResourceDefinitionList))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionList{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionNames).DeepCopyInto(out.(*CustomResourceDefinitionNames))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionSpec).DeepCopyInto(out.(*CustomResourceDefinitionSpec))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionStatus).DeepCopyInto(out.(*CustomResourceDefinitionStatus))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinition, InType: reflect.TypeOf(&CustomResourceDefinition{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinitionCondition, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinitionList, InType: reflect.TypeOf(&CustomResourceDefinitionList{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinitionNames, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinitionSpec, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1beta1_CustomResourceDefinitionStatus, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})},
 	)
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinition) DeepCopyInto(out *CustomResourceDefinition) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
-	in.Spec.DeepCopyInto(&out.Spec)
-	in.Status.DeepCopyInto(&out.Status)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinition.
-func (in *CustomResourceDefinition) DeepCopy() *CustomResourceDefinition {
-	if in == nil {
-		return nil
-	}
-	out := new(CustomResourceDefinition)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *CustomResourceDefinition) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	} else {
+// DeepCopy_v1beta1_CustomResourceDefinition is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinition(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinition)
+		out := out.(*CustomResourceDefinition)
+		*out = *in
+		if newVal, err := c.DeepCopy(&in.ObjectMeta); err != nil {
+			return err
+		} else {
+			out.ObjectMeta = *newVal.(*v1.ObjectMeta)
+		}
+		if newVal, err := c.DeepCopy(&in.Spec); err != nil {
+			return err
+		} else {
+			out.Spec = *newVal.(*CustomResourceDefinitionSpec)
+		}
+		if newVal, err := c.DeepCopy(&in.Status); err != nil {
+			return err
+		} else {
+			out.Status = *newVal.(*CustomResourceDefinitionStatus)
+		}
 		return nil
 	}
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionCondition) DeepCopyInto(out *CustomResourceDefinitionCondition) {
-	*out = *in
-	in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionCondition.
-func (in *CustomResourceDefinitionCondition) DeepCopy() *CustomResourceDefinitionCondition {
-	if in == nil {
+// DeepCopy_v1beta1_CustomResourceDefinitionCondition is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinitionCondition(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionCondition)
+		out := out.(*CustomResourceDefinitionCondition)
+		*out = *in
+		out.LastTransitionTime = in.LastTransitionTime.DeepCopy()
 		return nil
 	}
-	out := new(CustomResourceDefinitionCondition)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionList) DeepCopyInto(out *CustomResourceDefinitionList) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
-	if in.Items != nil {
-		in, out := &in.Items, &out.Items
-		*out = make([]CustomResourceDefinition, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
+// DeepCopy_v1beta1_CustomResourceDefinitionList is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinitionList(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionList)
+		out := out.(*CustomResourceDefinitionList)
+		*out = *in
+		if in.Items != nil {
+			in, out := &in.Items, &out.Items
+			*out = make([]CustomResourceDefinition, len(*in))
+			for i := range *in {
+				if newVal, err := c.DeepCopy(&(*in)[i]); err != nil {
+					return err
+				} else {
+					(*out)[i] = *newVal.(*CustomResourceDefinition)
+				}
+			}
 		}
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionList.
-func (in *CustomResourceDefinitionList) DeepCopy() *CustomResourceDefinitionList {
-	if in == nil {
 		return nil
 	}
-	out := new(CustomResourceDefinitionList)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *CustomResourceDefinitionList) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	} else {
-		return nil
-	}
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionNames) DeepCopyInto(out *CustomResourceDefinitionNames) {
-	*out = *in
-	if in.ShortNames != nil {
-		in, out := &in.ShortNames, &out.ShortNames
-		*out = make([]string, len(*in))
-		copy(*out, *in)
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionNames.
-func (in *CustomResourceDefinitionNames) DeepCopy() *CustomResourceDefinitionNames {
-	if in == nil {
+// DeepCopy_v1beta1_CustomResourceDefinitionNames is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinitionNames(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionNames)
+		out := out.(*CustomResourceDefinitionNames)
+		*out = *in
+		if in.ShortNames != nil {
+			in, out := &in.ShortNames, &out.ShortNames
+			*out = make([]string, len(*in))
+			copy(*out, *in)
+		}
 		return nil
 	}
-	out := new(CustomResourceDefinitionNames)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionSpec) DeepCopyInto(out *CustomResourceDefinitionSpec) {
-	*out = *in
-	in.Names.DeepCopyInto(&out.Names)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionSpec.
-func (in *CustomResourceDefinitionSpec) DeepCopy() *CustomResourceDefinitionSpec {
-	if in == nil {
+// DeepCopy_v1beta1_CustomResourceDefinitionSpec is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinitionSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionSpec)
+		out := out.(*CustomResourceDefinitionSpec)
+		*out = *in
+		if newVal, err := c.DeepCopy(&in.Names); err != nil {
+			return err
+		} else {
+			out.Names = *newVal.(*CustomResourceDefinitionNames)
+		}
 		return nil
 	}
-	out := new(CustomResourceDefinitionSpec)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionStatus) DeepCopyInto(out *CustomResourceDefinitionStatus) {
-	*out = *in
-	if in.Conditions != nil {
-		in, out := &in.Conditions, &out.Conditions
-		*out = make([]CustomResourceDefinitionCondition, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
+// DeepCopy_v1beta1_CustomResourceDefinitionStatus is an autogenerated deepcopy function.
+func DeepCopy_v1beta1_CustomResourceDefinitionStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionStatus)
+		out := out.(*CustomResourceDefinitionStatus)
+		*out = *in
+		if in.Conditions != nil {
+			in, out := &in.Conditions, &out.Conditions
+			*out = make([]CustomResourceDefinitionCondition, len(*in))
+			for i := range *in {
+				if newVal, err := c.DeepCopy(&(*in)[i]); err != nil {
+					return err
+				} else {
+					(*out)[i] = *newVal.(*CustomResourceDefinitionCondition)
+				}
+			}
+		}
+		if newVal, err := c.DeepCopy(&in.AcceptedNames); err != nil {
+			return err
+		} else {
+			out.AcceptedNames = *newVal.(*CustomResourceDefinitionNames)
 		}
-	}
-	in.AcceptedNames.DeepCopyInto(&out.AcceptedNames)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionStatus.
-func (in *CustomResourceDefinitionStatus) DeepCopy() *CustomResourceDefinitionStatus {
-	if in == nil {
 		return nil
 	}
-	out := new(CustomResourceDefinitionStatus)
-	in.DeepCopyInto(out)
-	return out
 }
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go
index a6e55d408..5d8b38d18 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go
@@ -21,6 +21,7 @@ limitations under the License.
 package apiextensions
 
 import (
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	conversion "k8s.io/apimachinery/pkg/conversion"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 	reflect "reflect"
@@ -32,175 +33,126 @@ func init() {
 
 // RegisterDeepCopies adds deep-copy functions to the given scheme. Public
 // to allow building arbitrary schemes.
-//
-// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented.
 func RegisterDeepCopies(scheme *runtime.Scheme) error {
 	return scheme.AddGeneratedDeepCopyFuncs(
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinition).DeepCopyInto(out.(*CustomResourceDefinition))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinition{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionCondition).DeepCopyInto(out.(*CustomResourceDefinitionCondition))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionList).DeepCopyInto(out.(*CustomResourceDefinitionList))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionList{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionNames).DeepCopyInto(out.(*CustomResourceDefinitionNames))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionSpec).DeepCopyInto(out.(*CustomResourceDefinitionSpec))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})},
-		conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
-			in.(*CustomResourceDefinitionStatus).DeepCopyInto(out.(*CustomResourceDefinitionStatus))
-			return nil
-		}, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinition, InType: reflect.TypeOf(&CustomResourceDefinition{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionCondition, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionList, InType: reflect.TypeOf(&CustomResourceDefinitionList{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionNames, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionSpec, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})},
+		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionStatus, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})},
 	)
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinition) DeepCopyInto(out *CustomResourceDefinition) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
-	in.Spec.DeepCopyInto(&out.Spec)
-	in.Status.DeepCopyInto(&out.Status)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinition.
-func (in *CustomResourceDefinition) DeepCopy() *CustomResourceDefinition {
-	if in == nil {
-		return nil
-	}
-	out := new(CustomResourceDefinition)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *CustomResourceDefinition) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	} else {
+// DeepCopy_apiextensions_CustomResourceDefinition is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinition(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinition)
+		out := out.(*CustomResourceDefinition)
+		*out = *in
+		if newVal, err := c.DeepCopy(&in.ObjectMeta); err != nil {
+			return err
+		} else {
+			out.ObjectMeta = *newVal.(*v1.ObjectMeta)
+		}
+		if newVal, err := c.DeepCopy(&in.Spec); err != nil {
+			return err
+		} else {
+			out.Spec = *newVal.(*CustomResourceDefinitionSpec)
+		}
+		if newVal, err := c.DeepCopy(&in.Status); err != nil {
+			return err
+		} else {
+			out.Status = *newVal.(*CustomResourceDefinitionStatus)
+		}
 		return nil
 	}
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionCondition) DeepCopyInto(out *CustomResourceDefinitionCondition) {
-	*out = *in
-	in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionCondition.
-func (in *CustomResourceDefinitionCondition) DeepCopy() *CustomResourceDefinitionCondition {
-	if in == nil {
+// DeepCopy_apiextensions_CustomResourceDefinitionCondition is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinitionCondition(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionCondition)
+		out := out.(*CustomResourceDefinitionCondition)
+		*out = *in
+		out.LastTransitionTime = in.LastTransitionTime.DeepCopy()
 		return nil
 	}
-	out := new(CustomResourceDefinitionCondition)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionList) DeepCopyInto(out *CustomResourceDefinitionList) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
-	if in.Items != nil {
-		in, out := &in.Items, &out.Items
-		*out = make([]CustomResourceDefinition, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
+// DeepCopy_apiextensions_CustomResourceDefinitionList is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinitionList(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionList)
+		out := out.(*CustomResourceDefinitionList)
+		*out = *in
+		if in.Items != nil {
+			in, out := &in.Items, &out.Items
+			*out = make([]CustomResourceDefinition, len(*in))
+			for i := range *in {
+				if newVal, err := c.DeepCopy(&(*in)[i]); err != nil {
+					return err
+				} else {
+					(*out)[i] = *newVal.(*CustomResourceDefinition)
+				}
+			}
 		}
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionList.
-func (in *CustomResourceDefinitionList) DeepCopy() *CustomResourceDefinitionList {
-	if in == nil {
 		return nil
 	}
-	out := new(CustomResourceDefinitionList)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *CustomResourceDefinitionList) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	} else {
-		return nil
-	}
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionNames) DeepCopyInto(out *CustomResourceDefinitionNames) {
-	*out = *in
-	if in.ShortNames != nil {
-		in, out := &in.ShortNames, &out.ShortNames
-		*out = make([]string, len(*in))
-		copy(*out, *in)
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionNames.
-func (in *CustomResourceDefinitionNames) DeepCopy() *CustomResourceDefinitionNames {
-	if in == nil {
+// DeepCopy_apiextensions_CustomResourceDefinitionNames is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinitionNames(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionNames)
+		out := out.(*CustomResourceDefinitionNames)
+		*out = *in
+		if in.ShortNames != nil {
+			in, out := &in.ShortNames, &out.ShortNames
+			*out = make([]string, len(*in))
+			copy(*out, *in)
+		}
 		return nil
 	}
-	out := new(CustomResourceDefinitionNames)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionSpec) DeepCopyInto(out *CustomResourceDefinitionSpec) {
-	*out = *in
-	in.Names.DeepCopyInto(&out.Names)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionSpec.
-func (in *CustomResourceDefinitionSpec) DeepCopy() *CustomResourceDefinitionSpec {
-	if in == nil {
+// DeepCopy_apiextensions_CustomResourceDefinitionSpec is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinitionSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionSpec)
+		out := out.(*CustomResourceDefinitionSpec)
+		*out = *in
+		if newVal, err := c.DeepCopy(&in.Names); err != nil {
+			return err
+		} else {
+			out.Names = *newVal.(*CustomResourceDefinitionNames)
+		}
 		return nil
 	}
-	out := new(CustomResourceDefinitionSpec)
-	in.DeepCopyInto(out)
-	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CustomResourceDefinitionStatus) DeepCopyInto(out *CustomResourceDefinitionStatus) {
-	*out = *in
-	if in.Conditions != nil {
-		in, out := &in.Conditions, &out.Conditions
-		*out = make([]CustomResourceDefinitionCondition, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
+// DeepCopy_apiextensions_CustomResourceDefinitionStatus is an autogenerated deepcopy function.
+func DeepCopy_apiextensions_CustomResourceDefinitionStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
+	{
+		in := in.(*CustomResourceDefinitionStatus)
+		out := out.(*CustomResourceDefinitionStatus)
+		*out = *in
+		if in.Conditions != nil {
+			in, out := &in.Conditions, &out.Conditions
+			*out = make([]CustomResourceDefinitionCondition, len(*in))
+			for i := range *in {
+				if newVal, err := c.DeepCopy(&(*in)[i]); err != nil {
+					return err
+				} else {
+					(*out)[i] = *newVal.(*CustomResourceDefinitionCondition)
+				}
+			}
+		}
+		if newVal, err := c.DeepCopy(&in.AcceptedNames); err != nil {
+			return err
+		} else {
+			out.AcceptedNames = *newVal.(*CustomResourceDefinitionNames)
 		}
-	}
-	in.AcceptedNames.DeepCopyInto(&out.AcceptedNames)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResourceDefinitionStatus.
-func (in *CustomResourceDefinitionStatus) DeepCopy() *CustomResourceDefinitionStatus {
-	if in == nil {
 		return nil
 	}
-	out := new(CustomResourceDefinitionStatus)
-	in.DeepCopyInto(out)
-	return out
 }
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD
index 494522755..506e1f80d 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -11,6 +13,7 @@ go_library(
         "clientset.go",
         "doc.go",
     ],
+    tags = ["automanaged"],
     deps = [
         "//vendor/github.com/golang/glog:go_default_library",
         "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1:go_default_library",
@@ -19,21 +22,3 @@ go_library(
         "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [
-        ":package-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme:all-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1:all-srcs",
-    ],
-    tags = ["automanaged"],
-)
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/clientset.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/clientset.go
index bae98c78b..634e79a71 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/clientset.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/clientset.go
@@ -35,18 +35,24 @@ type Interface interface {
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	apiextensionsV1beta1 *apiextensionsv1beta1.ApiextensionsV1beta1Client
+	*apiextensionsv1beta1.ApiextensionsV1beta1Client
 }
 
 // ApiextensionsV1beta1 retrieves the ApiextensionsV1beta1Client
 func (c *Clientset) ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
-	return c.apiextensionsV1beta1
+	if c == nil {
+		return nil
+	}
+	return c.ApiextensionsV1beta1Client
 }
 
 // Deprecated: Apiextensions retrieves the default version of ApiextensionsClient.
 // Please explicitly pick a version.
 func (c *Clientset) Apiextensions() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
-	return c.apiextensionsV1beta1
+	if c == nil {
+		return nil
+	}
+	return c.ApiextensionsV1beta1Client
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -65,7 +71,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
 	}
 	var cs Clientset
 	var err error
-	cs.apiextensionsV1beta1, err = apiextensionsv1beta1.NewForConfig(&configShallowCopy)
+	cs.ApiextensionsV1beta1Client, err = apiextensionsv1beta1.NewForConfig(&configShallowCopy)
 	if err != nil {
 		return nil, err
 	}
@@ -82,7 +88,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
 // panics if there is an error in the config.
 func NewForConfigOrDie(c *rest.Config) *Clientset {
 	var cs Clientset
-	cs.apiextensionsV1beta1 = apiextensionsv1beta1.NewForConfigOrDie(c)
+	cs.ApiextensionsV1beta1Client = apiextensionsv1beta1.NewForConfigOrDie(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
 	return &cs
@@ -91,7 +97,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.apiextensionsV1beta1 = apiextensionsv1beta1.New(c)
+	cs.ApiextensionsV1beta1Client = apiextensionsv1beta1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD
index c37ee3f5c..bac733cbc 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -11,6 +13,7 @@ go_library(
         "doc.go",
         "register.go",
     ],
+    tags = ["automanaged"],
     deps = [
         "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library",
         "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
@@ -19,16 +22,3 @@ go_library(
         "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
-    tags = ["automanaged"],
-)
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD
index 3cb4e1f62..074d54e3a 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -13,6 +15,7 @@ go_library(
         "doc.go",
         "generated_expansion.go",
     ],
+    tags = ["automanaged"],
     deps = [
         "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library",
         "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme:go_default_library",
@@ -23,19 +26,3 @@ go_library(
         "//vendor/k8s.io/client-go/rest:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [
-        ":package-srcs",
-        "//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake:all-srcs",
-    ],
-    tags = ["automanaged"],
-)
diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/customresourcedefinition.go
index 73238715b..bfc11155d 100644
--- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/customresourcedefinition.go
+++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/customresourcedefinition.go
@@ -57,38 +57,6 @@ func newCustomResourceDefinitions(c *ApiextensionsV1beta1Client) *customResource
 	}
 }
 
-// Get takes name of the customResourceDefinition, and returns the corresponding customResourceDefinition object, and an error if there is any.
-func (c *customResourceDefinitions) Get(name string, options v1.GetOptions) (result *v1beta1.CustomResourceDefinition, err error) {
-	result = &v1beta1.CustomResourceDefinition{}
-	err = c.client.Get().
-		Resource("customresourcedefinitions").
-		Name(name).
-		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
-		Into(result)
-	return
-}
-
-// List takes label and field selectors, and returns the list of CustomResourceDefinitions that match those selectors.
-func (c *customResourceDefinitions) List(opts v1.ListOptions) (result *v1beta1.CustomResourceDefinitionList, err error) {
-	result = &v1beta1.CustomResourceDefinitionList{}
-	err = c.client.Get().
-		Resource("customresourcedefinitions").
-		VersionedParams(&opts, scheme.ParameterCodec).
-		Do().
-		Into(result)
-	return
-}
-
-// Watch returns a watch.Interface that watches the requested customResourceDefinitions.
-func (c *customResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) {
-	opts.Watch = true
-	return c.client.Get().
-		Resource("customresourcedefinitions").
-		VersionedParams(&opts, scheme.ParameterCodec).
-		Watch()
-}
-
 // Create takes the representation of a customResourceDefinition and creates it.  Returns the server's representation of the customResourceDefinition, and an error, if there is any.
 func (c *customResourceDefinitions) Create(customResourceDefinition *v1beta1.CustomResourceDefinition) (result *v1beta1.CustomResourceDefinition, err error) {
 	result = &v1beta1.CustomResourceDefinition{}
@@ -113,7 +81,7 @@ func (c *customResourceDefinitions) Update(customResourceDefinition *v1beta1.Cus
 }
 
 // UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+// Add a +genclientstatus=false comment above the type to avoid generating UpdateStatus().
 
 func (c *customResourceDefinitions) UpdateStatus(customResourceDefinition *v1beta1.CustomResourceDefinition) (result *v1beta1.CustomResourceDefinition, err error) {
 	result = &v1beta1.CustomResourceDefinition{}
@@ -147,6 +115,38 @@ func (c *customResourceDefinitions) DeleteCollection(options *v1.DeleteOptions,
 		Error()
 }
 
+// Get takes name of the customResourceDefinition, and returns the corresponding customResourceDefinition object, and an error if there is any.
+func (c *customResourceDefinitions) Get(name string, options v1.GetOptions) (result *v1beta1.CustomResourceDefinition, err error) {
+	result = &v1beta1.CustomResourceDefinition{}
+	err = c.client.Get().
+		Resource("customresourcedefinitions").
+		Name(name).
+		VersionedParams(&options, scheme.ParameterCodec).
+		Do().
+		Into(result)
+	return
+}
+
+// List takes label and field selectors, and returns the list of CustomResourceDefinitions that match those selectors.
+func (c *customResourceDefinitions) List(opts v1.ListOptions) (result *v1beta1.CustomResourceDefinitionList, err error) {
+	result = &v1beta1.CustomResourceDefinitionList{}
+	err = c.client.Get().
+		Resource("customresourcedefinitions").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Do().
+		Into(result)
+	return
+}
+
+// Watch returns a watch.Interface that watches the requested customResourceDefinitions.
+func (c *customResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) {
+	opts.Watch = true
+	return c.client.Get().
+		Resource("customresourcedefinitions").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Watch()
+}
+
 // Patch applies the patch and returns the patched customResourceDefinition.
 func (c *customResourceDefinitions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.CustomResourceDefinition, err error) {
 	result = &v1beta1.CustomResourceDefinition{}
diff --git a/vendor/k8s.io/apiserver/OWNERS b/vendor/k8s.io/apiserver/OWNERS
index 52f250446..e4525fc6b 100644
--- a/vendor/k8s.io/apiserver/OWNERS
+++ b/vendor/k8s.io/apiserver/OWNERS
@@ -15,4 +15,3 @@ reviewers:
 - ncdc
 - tallclair
 - timothysc
-- enj
diff --git a/vendor/k8s.io/apiserver/kubernetes-sha b/vendor/k8s.io/apiserver/kubernetes-sha
new file mode 100644
index 000000000..189bb0608
--- /dev/null
+++ b/vendor/k8s.io/apiserver/kubernetes-sha
@@ -0,0 +1 @@
+68a32c06b4d69970ac2489ff5177d5703ca604cd
diff --git a/vendor/k8s.io/apiserver/pkg/authentication/authenticator/BUILD b/vendor/k8s.io/apiserver/pkg/authentication/authenticator/BUILD
index e49523f29..8992032af 100644
--- a/vendor/k8s.io/apiserver/pkg/authentication/authenticator/BUILD
+++ b/vendor/k8s.io/apiserver/pkg/authentication/authenticator/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -8,18 +10,6 @@ load(
 go_library(
     name = "go_default_library",
     srcs = ["interfaces.go"],
-    deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"],
-)
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
     tags = ["automanaged"],
+    deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"],
 )
diff --git a/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD b/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD
index 9f63af9e3..16b3099d9 100644
--- a/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD
+++ b/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -10,23 +12,12 @@ go_test(
     name = "go_default_test",
     srcs = ["util_test.go"],
     library = ":go_default_library",
+    tags = ["automanaged"],
 )
 
 go_library(
     name = "go_default_library",
     srcs = ["util.go"],
-    deps = ["//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library"],
-)
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
     tags = ["automanaged"],
+    deps = ["//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library"],
 )
diff --git a/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/util.go b/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/util.go
index 1b7bbc139..ac3c252b7 100644
--- a/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/util.go
+++ b/vendor/k8s.io/apiserver/pkg/authentication/serviceaccount/util.go
@@ -59,8 +59,8 @@ func SplitUsername(username string) (string, string, error) {
 	return namespace, name, nil
 }
 
-// MakeGroupNames generates service account group names for the given namespace
-func MakeGroupNames(namespace string) []string {
+// MakeGroupNames generates service account group names for the given namespace and ServiceAccount name
+func MakeGroupNames(namespace, name string) []string {
 	return []string{
 		AllServiceAccountsGroup,
 		MakeNamespaceGroupName(namespace),
diff --git a/vendor/k8s.io/apiserver/pkg/authentication/user/BUILD b/vendor/k8s.io/apiserver/pkg/authentication/user/BUILD
index 8f8d940ea..37a3bbe2f 100644
--- a/vendor/k8s.io/apiserver/pkg/authentication/user/BUILD
+++ b/vendor/k8s.io/apiserver/pkg/authentication/user/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -11,17 +13,5 @@ go_library(
         "doc.go",
         "user.go",
     ],
-)
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
     tags = ["automanaged"],
 )
diff --git a/vendor/k8s.io/apiserver/pkg/features/BUILD b/vendor/k8s.io/apiserver/pkg/features/BUILD
index 3b415effc..f097bff2d 100644
--- a/vendor/k8s.io/apiserver/pkg/features/BUILD
+++ b/vendor/k8s.io/apiserver/pkg/features/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -8,18 +10,6 @@ load(
 go_library(
     name = "go_default_library",
     srcs = ["kube_features.go"],
-    deps = ["//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library"],
-)
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
     tags = ["automanaged"],
+    deps = ["//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library"],
 )
diff --git a/vendor/k8s.io/apiserver/pkg/util/feature/BUILD b/vendor/k8s.io/apiserver/pkg/util/feature/BUILD
index 582bf86bd..9df71ad1f 100644
--- a/vendor/k8s.io/apiserver/pkg/util/feature/BUILD
+++ b/vendor/k8s.io/apiserver/pkg/util/feature/BUILD
@@ -1,5 +1,7 @@
 package(default_visibility = ["//visibility:public"])
 
+licenses(["notice"])
+
 load(
     "@io_bazel_rules_go//go:def.bzl",
     "go_library",
@@ -10,27 +12,16 @@ go_test(
     name = "go_default_test",
     srcs = ["feature_gate_test.go"],
     library = ":go_default_library",
+    tags = ["automanaged"],
     deps = ["//vendor/github.com/spf13/pflag:go_default_library"],
 )
 
 go_library(
     name = "go_default_library",
     srcs = ["feature_gate.go"],
+    tags = ["automanaged"],
     deps = [
         "//vendor/github.com/golang/glog:go_default_library",
         "//vendor/github.com/spf13/pflag:go_default_library",
     ],
 )
-
-filegroup(
-    name = "package-srcs",
-    srcs = glob(["**"]),
-    tags = ["automanaged"],
-    visibility = ["//visibility:private"],
-)
-
-filegroup(
-    name = "all-srcs",
-    srcs = [":package-srcs"],
-    tags = ["automanaged"],
-)
diff --git a/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go b/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go
index 9cfde3590..e7226688c 100644
--- a/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go
+++ b/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go
@@ -70,16 +70,10 @@ const (
 // FeatureGate parses and stores flag gates for known features from
 // a string like feature1=true,feature2=false,...
 type FeatureGate interface {
-	// AddFlag adds a flag for setting global feature gates to the specified FlagSet.
 	AddFlag(fs *pflag.FlagSet)
-	// Set parses and stores flag gates for known features
-	// from a string like feature1=true,feature2=false,...
 	Set(value string) error
-	// Enabled returns true if the key is enabled.
 	Enabled(key Feature) bool
-	// Add adds features to the featureGate.
 	Add(features map[Feature]FeatureSpec) error
-	// KnownFeatures returns a slice of strings describing the FeatureGate's known features.
 	KnownFeatures() []string
 }
 
@@ -118,7 +112,7 @@ func NewFeatureGate() *featureGate {
 	return f
 }
 
-// Set Parses a string of the form "key1=value1,key2=value2,..." into a
+// Set Parses a string of the form // "key1=value1,key2=value2,..." into a
 // map[string]bool of known keys or returns an error.
 func (f *featureGate) Set(value string) error {
 	for _, s := range strings.Split(value, ",") {
@@ -151,7 +145,6 @@ func (f *featureGate) Set(value string) error {
 	return nil
 }
 
-// String returns a string containing all enabled feature gates, formatted as "key1=value1,key2=value2,...".
 func (f *featureGate) String() string {
 	pairs := []string{}
 	for k, v := range f.enabled {
@@ -165,7 +158,6 @@ func (f *featureGate) Type() string {
 	return "mapStringBool"
 }
 
-// Add adds features to the featureGate.
 func (f *featureGate) Add(features map[Feature]FeatureSpec) error {
 	if f.closed {
 		return fmt.Errorf("cannot add a feature gate after adding it to the flag set")
@@ -184,7 +176,6 @@ func (f *featureGate) Add(features map[Feature]FeatureSpec) error {
 	return nil
 }
 
-// Enabled returns true if the key is enabled.
 func (f *featureGate) Enabled(key Feature) bool {
 	defaultValue := f.known[key].Default
 	if f.enabled != nil {
@@ -205,7 +196,7 @@ func (f *featureGate) AddFlag(fs *pflag.FlagSet) {
 		"Options are:\n"+strings.Join(known, "\n"))
 }
 
-// KnownFeatures returns a slice of strings describing the FeatureGate's known features.
+// Returns a string describing the FeatureGate's known features.
 func (f *featureGate) KnownFeatures() []string {
 	var known []string
 	for k, v := range f.known {
-- 
GitLab