mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Add storage.k8s.io/v1
This commit is contained in:
		@@ -493,7 +493,7 @@ func StartControllers(controllers map[string]InitFunc, s *options.CMServer, root
 | 
			
		||||
		ClusterName:               s.ClusterName,
 | 
			
		||||
		VolumeInformer:            newSharedInformers.Core().V1().PersistentVolumes(),
 | 
			
		||||
		ClaimInformer:             newSharedInformers.Core().V1().PersistentVolumeClaims(),
 | 
			
		||||
		ClassInformer:             newSharedInformers.Storage().V1beta1().StorageClasses(),
 | 
			
		||||
		ClassInformer:             newSharedInformers.Storage().V1().StorageClasses(),
 | 
			
		||||
		EnableDynamicProvisioning: s.VolumeConfiguration.EnableDynamicProvisioning,
 | 
			
		||||
	}
 | 
			
		||||
	volumeController := persistentvolumecontroller.NewController(params)
 | 
			
		||||
 
 | 
			
		||||
@@ -86,6 +86,7 @@ func New() *Generator {
 | 
			
		||||
			`k8s.io/kubernetes/pkg/apis/certificates/v1beta1`,
 | 
			
		||||
			`k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1`,
 | 
			
		||||
			`k8s.io/kubernetes/pkg/apis/storage/v1beta1`,
 | 
			
		||||
			`k8s.io/kubernetes/pkg/apis/storage/v1`,
 | 
			
		||||
		}, ","),
 | 
			
		||||
		DropEmbeddedFields: "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta",
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,8 @@ imagepolicy.k8s.io/v1alpha1 \
 | 
			
		||||
policy/v1beta1 \
 | 
			
		||||
rbac.authorization.k8s.io/v1beta1 \
 | 
			
		||||
rbac.authorization.k8s.io/v1alpha1 \
 | 
			
		||||
storage.k8s.io/v1beta1\
 | 
			
		||||
storage.k8s.io/v1beta1 \
 | 
			
		||||
storage.k8s.io/v1\
 | 
			
		||||
}"
 | 
			
		||||
 | 
			
		||||
# not all group versions are exposed by the server.  This list contains those
 | 
			
		||||
 
 | 
			
		||||
@@ -3230,7 +3230,7 @@ runTests() {
 | 
			
		||||
    kubectl create -f - "${kube_flags[@]}" << __EOF__
 | 
			
		||||
{
 | 
			
		||||
  "kind": "StorageClass",
 | 
			
		||||
  "apiVersion": "storage.k8s.io/v1beta1",
 | 
			
		||||
  "apiVersion": "storage.k8s.io/v1",
 | 
			
		||||
  "metadata": {
 | 
			
		||||
    "name": "storage-class-name"
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/storage"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -37,12 +38,13 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r
 | 
			
		||||
	if err := announced.NewGroupMetaFactory(
 | 
			
		||||
		&announced.GroupMetaFactoryArgs{
 | 
			
		||||
			GroupName:                  storage.GroupName,
 | 
			
		||||
			VersionPreferenceOrder:     []string{v1beta1.SchemeGroupVersion.Version},
 | 
			
		||||
			VersionPreferenceOrder:     []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version},
 | 
			
		||||
			ImportPrefix:               "k8s.io/kubernetes/pkg/apis/storage",
 | 
			
		||||
			RootScopedKinds:            sets.NewString("StorageClass"),
 | 
			
		||||
			AddInternalObjectsToScheme: storage.AddToScheme,
 | 
			
		||||
		},
 | 
			
		||||
		announced.VersionToSchemeFunc{
 | 
			
		||||
			v1.SchemeGroupVersion.Version:      v1.AddToScheme,
 | 
			
		||||
			v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme,
 | 
			
		||||
		},
 | 
			
		||||
	).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								pkg/apis/storage/v1/doc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								pkg/apis/storage/v1/doc.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
/*
 | 
			
		||||
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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +k8s:deepcopy-gen=package,register
 | 
			
		||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/storage
 | 
			
		||||
// +groupName=storage.k8s.io
 | 
			
		||||
// +k8s:openapi-gen=true
 | 
			
		||||
// +k8s:defaulter-gen=TypeMeta
 | 
			
		||||
package v1
 | 
			
		||||
							
								
								
									
										56
									
								
								pkg/apis/storage/v1/register.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								pkg/apis/storage/v1/register.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
/*
 | 
			
		||||
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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package v1
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GroupName is the group name use in this package
 | 
			
		||||
const GroupName = "storage.k8s.io"
 | 
			
		||||
 | 
			
		||||
// SchemeGroupVersion is group version used to register these objects
 | 
			
		||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
 | 
			
		||||
 | 
			
		||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
 | 
			
		||||
func Resource(resource string) schema.GroupResource {
 | 
			
		||||
	return SchemeGroupVersion.WithResource(resource).GroupResource()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
 | 
			
		||||
	AddToScheme   = SchemeBuilder.AddToScheme
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Adds the list of known types to api.Scheme.
 | 
			
		||||
func addKnownTypes(scheme *runtime.Scheme) error {
 | 
			
		||||
	scheme.AddKnownTypes(SchemeGroupVersion,
 | 
			
		||||
		&v1.ListOptions{},
 | 
			
		||||
		&v1.DeleteOptions{},
 | 
			
		||||
		&metav1.ExportOptions{},
 | 
			
		||||
		&metav1.GetOptions{},
 | 
			
		||||
 | 
			
		||||
		&StorageClass{},
 | 
			
		||||
		&StorageClassList{},
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										57
									
								
								pkg/apis/storage/v1/types.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								pkg/apis/storage/v1/types.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
/*
 | 
			
		||||
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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package v1
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// +genclient=true
 | 
			
		||||
// +nonNamespaced=true
 | 
			
		||||
 | 
			
		||||
// StorageClass describes the parameters for a class of storage for
 | 
			
		||||
// which PersistentVolumes can be dynamically provisioned.
 | 
			
		||||
//
 | 
			
		||||
// StorageClasses are non-namespaced; the name of the storage class
 | 
			
		||||
// according to etcd is in ObjectMeta.Name.
 | 
			
		||||
type StorageClass struct {
 | 
			
		||||
	metav1.TypeMeta `json:",inline"`
 | 
			
		||||
	// Standard object's metadata.
 | 
			
		||||
	// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
 | 
			
		||||
	// +optional
 | 
			
		||||
	metav1.ObjectMeta `json:"metadata,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Provisioner indicates the type of the provisioner.
 | 
			
		||||
	Provisioner string `json:"provisioner"`
 | 
			
		||||
 | 
			
		||||
	// Parameters holds the parameters for the provisioner that should
 | 
			
		||||
	// create volumes of this storage class.
 | 
			
		||||
	// +optional
 | 
			
		||||
	Parameters map[string]string `json:"parameters,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StorageClassList is a collection of storage classes.
 | 
			
		||||
type StorageClassList struct {
 | 
			
		||||
	metav1.TypeMeta `json:",inline"`
 | 
			
		||||
	// Standard list metadata
 | 
			
		||||
	// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
 | 
			
		||||
	// +optional
 | 
			
		||||
	metav1.ListMeta `json:"metadata,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Items is the list of StorageClasses
 | 
			
		||||
	Items []StorageClass `json:"items"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										137
									
								
								pkg/apis/storage/v1/util/helpers.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								pkg/apis/storage/v1/util/helpers.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2016 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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package util
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IsDefaultStorageClassAnnotation represents a StorageClass annotation that
 | 
			
		||||
// marks a class as the default StorageClass
 | 
			
		||||
//TODO: Update IsDefaultStorageClassannotation and remove Beta when no longer used
 | 
			
		||||
const IsDefaultStorageClassAnnotation = "storageclass.beta.kubernetes.io/is-default-class"
 | 
			
		||||
const BetaIsDefaultStorageClassAnnotation = "storageclass.beta.kubernetes.io/is-default-class"
 | 
			
		||||
 | 
			
		||||
// AlphaStorageClassAnnotation represents the previous alpha storage class
 | 
			
		||||
// annotation.  it's no longer used and held here for posterity.
 | 
			
		||||
const AlphaStorageClassAnnotation = "volume.alpha.kubernetes.io/storage-class"
 | 
			
		||||
 | 
			
		||||
// BetaStorageClassAnnotation represents the beta/previous StorageClass annotation.
 | 
			
		||||
// It's currently still used and will be held for backwards compatibility
 | 
			
		||||
const BetaStorageClassAnnotation = "volume.beta.kubernetes.io/storage-class"
 | 
			
		||||
 | 
			
		||||
// StorageClassAnnotation represents the storage class associated with a resource.
 | 
			
		||||
// It currently matches the Beta value and can change when official is set.
 | 
			
		||||
// - in PersistentVolumeClaim it represents required class to match.
 | 
			
		||||
//   Only PersistentVolumes with the same class (i.e. annotation with the same
 | 
			
		||||
//   value) can be bound to the claim. In case no such volume exists, the
 | 
			
		||||
//   controller will provision a new one using StorageClass instance with
 | 
			
		||||
//   the same name as the annotation value.
 | 
			
		||||
// - in PersistentVolume it represents storage class to which the persistent
 | 
			
		||||
//   volume belongs.
 | 
			
		||||
//TODO: Update this to final annotation value as it matches BetaStorageClassAnnotation for now
 | 
			
		||||
const StorageClassAnnotation = "volume.beta.kubernetes.io/storage-class"
 | 
			
		||||
 | 
			
		||||
// GetVolumeStorageClass returns value of StorageClassAnnotation or empty string in case
 | 
			
		||||
// the annotation does not exist.
 | 
			
		||||
// TODO: change to PersistentVolume.Spec.Class value when this attribute is
 | 
			
		||||
// introduced.
 | 
			
		||||
func GetVolumeStorageClass(volume *v1.PersistentVolume) string {
 | 
			
		||||
	if class, found := volume.Annotations[StorageClassAnnotation]; found {
 | 
			
		||||
		return class
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 'nil' is interpreted as "", i.e. the volume does not belong to any class.
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetClaimStorageClass returns name of class that is requested by given claim.
 | 
			
		||||
// Request for `nil` class is interpreted as request for class "",
 | 
			
		||||
// i.e. for a classless PV.
 | 
			
		||||
// TODO: change to PersistentVolumeClaim.Spec.Class value when this
 | 
			
		||||
// attribute is introduced.
 | 
			
		||||
func GetClaimStorageClass(claim *v1.PersistentVolumeClaim) string {
 | 
			
		||||
	if class, found := claim.Annotations[StorageClassAnnotation]; found {
 | 
			
		||||
		return class
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetStorageClassAnnotation returns the StorageClass value
 | 
			
		||||
// if the annotation is set, empty string if not
 | 
			
		||||
// TODO: remove Alpha and Beta when no longer used or needed
 | 
			
		||||
func GetStorageClassAnnotation(obj metav1.ObjectMeta) string {
 | 
			
		||||
	if class, ok := obj.Annotations[StorageClassAnnotation]; ok {
 | 
			
		||||
		return class
 | 
			
		||||
	}
 | 
			
		||||
	if class, ok := obj.Annotations[BetaStorageClassAnnotation]; ok {
 | 
			
		||||
		return class
 | 
			
		||||
	}
 | 
			
		||||
	if class, ok := obj.Annotations[AlphaStorageClassAnnotation]; ok {
 | 
			
		||||
		return class
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HasStorageClassAnnotation returns a boolean
 | 
			
		||||
// if the annotation is set
 | 
			
		||||
// TODO: remove Alpha and Beta when no longer used or needed
 | 
			
		||||
func HasStorageClassAnnotation(obj metav1.ObjectMeta) bool {
 | 
			
		||||
	if _, found := obj.Annotations[StorageClassAnnotation]; found {
 | 
			
		||||
		return found
 | 
			
		||||
	}
 | 
			
		||||
	if _, found := obj.Annotations[BetaStorageClassAnnotation]; found {
 | 
			
		||||
		return found
 | 
			
		||||
	}
 | 
			
		||||
	if _, found := obj.Annotations[AlphaStorageClassAnnotation]; found {
 | 
			
		||||
		return found
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return false
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsDefaultAnnotationText returns a pretty Yes/No String if
 | 
			
		||||
// the annotation is set
 | 
			
		||||
// TODO: remove Beta when no longer needed
 | 
			
		||||
func IsDefaultAnnotationText(obj metav1.ObjectMeta) string {
 | 
			
		||||
	if obj.Annotations[IsDefaultStorageClassAnnotation] == "true" {
 | 
			
		||||
		return "Yes"
 | 
			
		||||
	}
 | 
			
		||||
	if obj.Annotations[BetaIsDefaultStorageClassAnnotation] == "true" {
 | 
			
		||||
		return "Yes"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return "No"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsDefaultAnnotation returns a boolean if
 | 
			
		||||
// the annotation is set
 | 
			
		||||
// TODO: remove Beta when no longer needed
 | 
			
		||||
func IsDefaultAnnotation(obj metav1.ObjectMeta) bool {
 | 
			
		||||
	if obj.Annotations[IsDefaultStorageClassAnnotation] == "true" {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	if obj.Annotations[BetaIsDefaultStorageClassAnnotation] == "true" {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
@@ -23,7 +23,7 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/watch"
 | 
			
		||||
	"k8s.io/client-go/tools/cache"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/legacylisters"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake"
 | 
			
		||||
	informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions"
 | 
			
		||||
	storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/v1beta1"
 | 
			
		||||
	storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/controller"
 | 
			
		||||
	vol "k8s.io/kubernetes/pkg/volume"
 | 
			
		||||
)
 | 
			
		||||
@@ -607,7 +607,7 @@ func newTestController(kubeClient clientset.Interface, informerFactory informers
 | 
			
		||||
		VolumePlugins:             []vol.VolumePlugin{},
 | 
			
		||||
		VolumeInformer:            informerFactory.Core().V1().PersistentVolumes(),
 | 
			
		||||
		ClaimInformer:             informerFactory.Core().V1().PersistentVolumeClaims(),
 | 
			
		||||
		ClassInformer:             informerFactory.Storage().V1beta1().StorageClasses(),
 | 
			
		||||
		ClassInformer:             informerFactory.Storage().V1().StorageClasses(),
 | 
			
		||||
		EventRecorder:             record.NewFakeRecorder(1000),
 | 
			
		||||
		EnableDynamicProvisioning: enableDynamicProvisioning,
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,11 +28,11 @@ import (
 | 
			
		||||
	"k8s.io/client-go/util/workqueue"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	storageutil "k8s.io/kubernetes/pkg/apis/storage/v1beta1/util"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
			
		||||
	corelisters "k8s.io/kubernetes/pkg/client/listers/core/v1"
 | 
			
		||||
	storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/v1beta1"
 | 
			
		||||
	storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/cloudprovider"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util/goroutinemap"
 | 
			
		||||
	vol "k8s.io/kubernetes/pkg/volume"
 | 
			
		||||
 
 | 
			
		||||
@@ -34,10 +34,10 @@ import (
 | 
			
		||||
	"k8s.io/client-go/util/workqueue"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
			
		||||
	coreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions/core/v1"
 | 
			
		||||
	storageinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions/storage/v1beta1"
 | 
			
		||||
	storageinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions/storage/v1"
 | 
			
		||||
	corelisters "k8s.io/kubernetes/pkg/client/listers/core/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/cloudprovider"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/controller"
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ import (
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util/mount"
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -24,9 +24,10 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
			
		||||
	"k8s.io/apiserver/pkg/authentication/serviceaccount"
 | 
			
		||||
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	rbacv1beta1 "k8s.io/kubernetes/pkg/apis/rbac/v1beta1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	storage "k8s.io/kubernetes/pkg/apis/storage/v1"
 | 
			
		||||
	storageutil "k8s.io/kubernetes/pkg/apis/storage/v1beta1/util"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
			
		||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user