Skip to content

Commit 40fd8c8

Browse files
authored
Update storageclass scope (#760)
* change storageclass to tenant-scope * upate tests * auto updates * fix integration tests
1 parent e17b7f5 commit 40fd8c8

File tree

28 files changed

+3692
-1735
lines changed

28 files changed

+3692
-1735
lines changed

api/openapi-spec/swagger.json

Lines changed: 3298 additions & 1574 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/apis/storage/validation/validation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const (
4848

4949
// ValidateStorageClass validates a StorageClass.
5050
func ValidateStorageClass(storageClass *storage.StorageClass) field.ErrorList {
51-
allErrs := apivalidation.ValidateObjectMeta(&storageClass.ObjectMeta, false, false, apivalidation.ValidateClassName, field.NewPath("metadata"))
51+
allErrs := apivalidation.ValidateObjectMeta(&storageClass.ObjectMeta, true, false, apivalidation.ValidateClassName, field.NewPath("metadata"))
5252
allErrs = append(allErrs, validateProvisioner(storageClass.Provisioner, field.NewPath("provisioner"))...)
5353
allErrs = append(allErrs, validateParameters(storageClass.Parameters, field.NewPath("parameters"))...)
5454
allErrs = append(allErrs, validateReclaimPolicy(storageClass.ReclaimPolicy, field.NewPath("reclaimPolicy"))...)

pkg/apis/storage/validation/validation_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,22 @@ func TestValidateStorageClass(t *testing.T) {
5656
successCases := []storage.StorageClass{
5757
{
5858
// empty parameters
59-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
59+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
6060
Provisioner: "kubernetes.io/foo-provisioner",
6161
Parameters: map[string]string{},
6262
ReclaimPolicy: &deleteReclaimPolicy,
6363
VolumeBindingMode: &immediateMode1,
6464
},
6565
{
6666
// nil parameters
67-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
67+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
6868
Provisioner: "kubernetes.io/foo-provisioner",
6969
ReclaimPolicy: &deleteReclaimPolicy,
7070
VolumeBindingMode: &immediateMode1,
7171
},
7272
{
7373
// some parameters
74-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
74+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
7575
Provisioner: "kubernetes.io/foo-provisioner",
7676
Parameters: map[string]string{
7777
"kubernetes.io/foo-parameter": "free/form/string",
@@ -83,7 +83,7 @@ func TestValidateStorageClass(t *testing.T) {
8383
},
8484
{
8585
// retain reclaimPolicy
86-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
86+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
8787
Provisioner: "kubernetes.io/foo-provisioner",
8888
ReclaimPolicy: &retainReclaimPolicy,
8989
VolumeBindingMode: &immediateMode1,
@@ -108,42 +108,42 @@ func TestValidateStorageClass(t *testing.T) {
108108
}
109109

110110
errorCases := map[string]storage.StorageClass{
111-
"tenant is present": {
112-
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: "bar"},
111+
"tenant is missing": {
112+
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
113113
Provisioner: "kubernetes.io/foo-provisioner",
114114
ReclaimPolicy: &deleteReclaimPolicy,
115115
},
116116
"namespace is present": {
117-
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"},
117+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar", Tenant: testTenant},
118118
Provisioner: "kubernetes.io/foo-provisioner",
119119
ReclaimPolicy: &deleteReclaimPolicy,
120120
},
121121
"invalid provisioner": {
122-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
122+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
123123
Provisioner: "kubernetes.io/invalid/provisioner",
124124
ReclaimPolicy: &deleteReclaimPolicy,
125125
},
126126
"invalid empty parameter name": {
127-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
127+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
128128
Provisioner: "kubernetes.io/foo",
129129
Parameters: map[string]string{
130130
"": "value",
131131
},
132132
ReclaimPolicy: &deleteReclaimPolicy,
133133
},
134134
"provisioner: Required value": {
135-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
135+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
136136
Provisioner: "",
137137
ReclaimPolicy: &deleteReclaimPolicy,
138138
},
139139
"too long parameters": {
140-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
140+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
141141
Provisioner: "kubernetes.io/foo",
142142
Parameters: longParameters,
143143
ReclaimPolicy: &deleteReclaimPolicy,
144144
},
145145
"invalid reclaimpolicy": {
146-
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
146+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant},
147147
Provisioner: "kubernetes.io/foo",
148148
ReclaimPolicy: &recycleReclaimPolicy,
149149
},
@@ -637,7 +637,7 @@ func TestVolumeAttachmentValidationV1(t *testing.T) {
637637

638638
func makeClass(mode *storage.VolumeBindingMode, topologies []api.TopologySelectorTerm) *storage.StorageClass {
639639
return &storage.StorageClass{
640-
ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "foo"},
640+
ObjectMeta: metav1.ObjectMeta{Name: "foo", Tenant: testTenant, ResourceVersion: "foo"},
641641
Provisioner: "kubernetes.io/foo-provisioner",
642642
ReclaimPolicy: &deleteReclaimPolicy,
643643
VolumeBindingMode: mode,

pkg/kubectl/describe/versioned/describe.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3764,7 +3764,7 @@ type StorageClassDescriber struct {
37643764
}
37653765

37663766
func (s *StorageClassDescriber) Describe(tenant, namespace, name string, describerSettings describe.DescriberSettings) (string, error) {
3767-
sc, err := s.StorageV1().StorageClasses().Get(name, metav1.GetOptions{})
3767+
sc, err := s.StorageV1().StorageClassesWithMultiTenancy(tenant).Get(name, metav1.GetOptions{})
37683768
if err != nil {
37693769
return "", err
37703770
}

pkg/kubectl/describe/versioned/describe_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1546,6 +1546,7 @@ func TestDescribeStorageClass(t *testing.T) {
15461546
f := fake.NewSimpleClientset(&storagev1.StorageClass{
15471547
ObjectMeta: metav1.ObjectMeta{
15481548
Name: "foo",
1549+
Tenant: metav1.TenantSystem,
15491550
ResourceVersion: "4",
15501551
Annotations: map[string]string{
15511552
"name": "foo",
@@ -2521,7 +2522,8 @@ func TestDescribeEvents(t *testing.T) {
25212522
"StorageClass": &StorageClassDescriber{
25222523
fake.NewSimpleClientset(&storagev1.StorageClass{
25232524
ObjectMeta: metav1.ObjectMeta{
2524-
Name: "bar",
2525+
Name: "bar",
2526+
Tenant: metav1.TenantSystem,
25252527
},
25262528
}, events),
25272529
},

0 commit comments

Comments
 (0)