From 7eb14114aa99ff2e4f7830de09e072b6c6911642 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Thu, 2 Mar 2017 10:23:58 +0100 Subject: [PATCH] Regenerate everything Kubernetes-commit: 9487552e4171562a56b3a45ee2de7aa0e5ee9f9d --- pkg/api/helpers.go | 39 +++++++++++++++++++++++++++++++++++++++ pkg/api/types.go | 6 ++++++ pkg/api/v1/helpers.go | 39 +++++++++++++++++++++++++++++++++++++++ pkg/api/v1/types.go | 11 +++++++++++ 4 files changed, 95 insertions(+) diff --git a/pkg/api/helpers.go b/pkg/api/helpers.go index 970792fc7..4ada0ba37 100644 --- a/pkg/api/helpers.go +++ b/pkg/api/helpers.go @@ -557,3 +557,42 @@ func PodAnnotationsFromSysctls(sysctls []Sysctl) string { } return strings.Join(kvs, ",") } + +// GetPersistentVolumeClass returns StorageClassName. +func GetPersistentVolumeClass(volume *PersistentVolume) string { + // Use beta annotation first + if class, found := volume.Annotations[BetaStorageClassAnnotation]; found { + return class + } + + return volume.Spec.StorageClassName +} + +// GetPersistentVolumeClaimClass returns StorageClassName. If no storage class was +// requested, it returns "". +func GetPersistentVolumeClaimClass(claim *PersistentVolumeClaim) string { + // Use beta annotation first + if class, found := claim.Annotations[BetaStorageClassAnnotation]; found { + return class + } + + if claim.Spec.StorageClassName != nil { + return *claim.Spec.StorageClassName + } + + return "" +} + +// PersistentVolumeClaimHasClass returns true if given claim has set StorageClassName field. +func PersistentVolumeClaimHasClass(claim *PersistentVolumeClaim) bool { + // Use beta annotation first + if _, found := claim.Annotations[BetaStorageClassAnnotation]; found { + return true + } + + if claim.Spec.StorageClassName != nil { + return true + } + + return false +} diff --git a/pkg/api/types.go b/pkg/api/types.go index 1fa4558be..1b910e3e4 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -375,6 +375,12 @@ type PersistentVolumeClaimVolumeSource struct { ReadOnly bool } +const ( + // BetaStorageClassAnnotation represents the beta/previous StorageClass annotation. + // It's currently still used and will be held for backwards compatibility + BetaStorageClassAnnotation = "volume.beta.kubernetes.io/storage-class" +) + // +genclient=true // +nonNamespaced=true diff --git a/pkg/api/v1/helpers.go b/pkg/api/v1/helpers.go index 05928dc00..01f4ef470 100644 --- a/pkg/api/v1/helpers.go +++ b/pkg/api/v1/helpers.go @@ -591,3 +591,42 @@ func GetAffinityFromPodAnnotations(annotations map[string]string) (*Affinity, er } return nil, nil } + +// GetPersistentVolumeClass returns StorageClassName. +func GetPersistentVolumeClass(volume *PersistentVolume) string { + // Use beta annotation first + if class, found := volume.Annotations[BetaStorageClassAnnotation]; found { + return class + } + + return volume.Spec.StorageClassName +} + +// GetPersistentVolumeClaimClass returns StorageClassName. If no storage class was +// requested, it returns "". +func GetPersistentVolumeClaimClass(claim *PersistentVolumeClaim) string { + // Use beta annotation first + if class, found := claim.Annotations[BetaStorageClassAnnotation]; found { + return class + } + + if claim.Spec.StorageClassName != nil { + return *claim.Spec.StorageClassName + } + + return "" +} + +// PersistentVolumeClaimHasClass returns true if given claim has set StorageClassName field. +func PersistentVolumeClaimHasClass(claim *PersistentVolumeClaim) bool { + // Use beta annotation first + if _, found := claim.Annotations[BetaStorageClassAnnotation]; found { + return true + } + + if claim.Spec.StorageClassName != nil { + return true + } + + return false +} diff --git a/pkg/api/v1/types.go b/pkg/api/v1/types.go index 306c222c4..acbb1dfe1 100644 --- a/pkg/api/v1/types.go +++ b/pkg/api/v1/types.go @@ -421,6 +421,17 @@ type PersistentVolumeSource struct { PortworxVolume *PortworxVolumeSource `json:"portworxVolume,omitempty" protobuf:"bytes,18,opt,name=portworxVolume"` } +const ( + // AlphaStorageClassAnnotation represents the previous alpha storage class + // annotation. It's currently still used and will be held for backwards + // compatibility + 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 + BetaStorageClassAnnotation = "volume.beta.kubernetes.io/storage-class" +) + // +genclient=true // +nonNamespaced=true