@@ -16,16 +16,16 @@ import (
16
16
quotautil "github.com/openshift/origin/pkg/quota/util"
17
17
imagesutil "github.com/openshift/origin/test/extended/images"
18
18
exutil "github.com/openshift/origin/test/extended/util"
19
- testutil "github.com/openshift/origin/test/util"
20
19
)
21
20
22
21
const limitRangeName = "limits"
23
22
24
- var _ = g .Describe ("[Feature:ImageQuota][registry][Serial][Suite:openshift/registry/serial][local] Image limit range" , func () {
23
+ var _ = g .Describe ("[Feature:ImageQuota][registry][Serial][Suite:openshift/registry/serial] Image limit range" , func () {
25
24
defer g .GinkgoRecover ()
25
+
26
26
var oc = exutil .NewCLI ("limitrange-admission" , exutil .KubeConfigPath ())
27
27
28
- g .JustBeforeEach (func () {
28
+ g .BeforeEach (func () {
29
29
g .By ("waiting for default service account" )
30
30
err := exutil .WaitForServiceAccount (oc .KubeClient ().Core ().ServiceAccounts (oc .Namespace ()), "default" )
31
31
o .Expect (err ).NotTo (o .HaveOccurred ())
@@ -34,102 +34,77 @@ var _ = g.Describe("[Feature:ImageQuota][registry][Serial][Suite:openshift/regis
34
34
o .Expect (err ).NotTo (o .HaveOccurred ())
35
35
})
36
36
37
- // needs to be run at the of of each It; cannot be run in AfterEach which is run after the project
38
- // is destroyed
39
- tearDown := func (oc * exutil.CLI ) {
40
- g .By (fmt .Sprintf ("Deleting limit range %s" , limitRangeName ))
41
- oc .AdminKubeClient ().Core ().LimitRanges (oc .Namespace ()).Delete (limitRangeName , nil )
42
-
43
- deleteTestImagesAndStreams (oc )
44
- }
45
-
46
- g .It (fmt .Sprintf ("[Skipped] should deny a push of built image exceeding %s limit" , imageapi .LimitTypeImage ), func () {
47
- g .Skip ("FIXME: fill image metadata for schema1 in the registry" )
48
-
49
- defer tearDown (oc )
50
-
51
- dClient , err := testutil .NewDockerClient ()
52
- o .Expect (err ).NotTo (o .HaveOccurred ())
53
-
54
- _ , err = createLimitRangeOfType (oc , imageapi .LimitTypeImage , kapi.ResourceList {
37
+ g .It (fmt .Sprintf ("should deny a push of built image exceeding %s limit" , imageapi .LimitTypeImage ), func () {
38
+ _ , err := createLimitRangeOfType (oc , imageapi .LimitTypeImage , kapi.ResourceList {
55
39
kapi .ResourceStorage : resource .MustParse ("10Ki" ),
56
40
})
57
41
o .Expect (err ).NotTo (o .HaveOccurred ())
58
42
59
43
g .By (fmt .Sprintf ("trying to push an image exceeding size limit with just 1 layer" ))
60
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "middle" , 16000 , 1 , false )
44
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "middle" , 16000 , 1 , false )
61
45
o .Expect (err ).NotTo (o .HaveOccurred ())
62
46
63
47
g .By (fmt .Sprintf ("trying to push an image exceeding size limit in total" ))
64
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "middle" , 16000 , 5 , false )
48
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "middle" , 16000 , 5 , false )
65
49
o .Expect (err ).NotTo (o .HaveOccurred ())
66
50
67
51
g .By (fmt .Sprintf ("trying to push an image with one big layer below size limit" ))
68
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "small" , 8000 , 1 , true )
52
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "small" , 8000 , 1 , true )
69
53
o .Expect (err ).NotTo (o .HaveOccurred ())
70
54
71
55
g .By (fmt .Sprintf ("trying to push an image below size limit" ))
72
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "small" , 8000 , 2 , true )
56
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "small" , 8000 , 2 , true )
73
57
o .Expect (err ).NotTo (o .HaveOccurred ())
74
58
})
75
59
76
60
g .It (fmt .Sprintf ("should deny a push of built image exceeding limit on %s resource" , imageapi .ResourceImageStreamImages ), func () {
77
-
78
- defer tearDown (oc )
79
-
80
61
limits := kapi.ResourceList {
81
62
imageapi .ResourceImageStreamTags : resource .MustParse ("0" ),
82
63
imageapi .ResourceImageStreamImages : resource .MustParse ("0" ),
83
64
}
84
65
_ , err := createLimitRangeOfType (oc , imageapi .LimitTypeImageStream , limits )
85
66
o .Expect (err ).NotTo (o .HaveOccurred ())
86
67
87
- dClient , err := testutil .NewDockerClient ()
88
- o .Expect (err ).NotTo (o .HaveOccurred ())
89
-
90
68
g .By (fmt .Sprintf ("trying to push image exceeding limits %v" , limits ))
91
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "refused" , imageSize , 1 , false )
69
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "refused" , imageSize , 1 , false )
92
70
o .Expect (err ).NotTo (o .HaveOccurred ())
93
71
94
72
limits , err = bumpLimit (oc , imageapi .ResourceImageStreamImages , "1" )
95
73
o .Expect (err ).NotTo (o .HaveOccurred ())
96
74
97
75
g .By (fmt .Sprintf ("trying to push image below limits %v" , limits ))
98
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "first" , imageSize , 2 , true )
76
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "first" , imageSize , 2 , true )
99
77
o .Expect (err ).NotTo (o .HaveOccurred ())
100
78
101
79
g .By (fmt .Sprintf ("trying to push image exceeding limits %v" , limits ))
102
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "sized" , "second" , imageSize , 2 , false )
80
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "sized" , "second" , imageSize , 2 , false )
103
81
o .Expect (err ).NotTo (o .HaveOccurred ())
104
82
105
83
g .By (fmt .Sprintf ("trying to push image below limits %v to another image stream" , limits ))
106
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "another" , "second" , imageSize , 1 , true )
84
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "another" , "second" , imageSize , 1 , true )
107
85
o .Expect (err ).NotTo (o .HaveOccurred ())
108
86
109
87
limits , err = bumpLimit (oc , imageapi .ResourceImageStreamImages , "2" )
110
88
o .Expect (err ).NotTo (o .HaveOccurred ())
111
89
112
90
g .By (fmt .Sprintf ("trying to push image below limits %v" , limits ))
113
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "another" , "third" , imageSize , 1 , true )
91
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "another" , "third" , imageSize , 1 , true )
114
92
o .Expect (err ).NotTo (o .HaveOccurred ())
115
93
116
94
g .By (fmt .Sprintf ("trying to push image exceeding limits %v" , limits ))
117
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "another" , "fourth" , imageSize , 1 , false )
95
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "another" , "fourth" , imageSize , 1 , false )
118
96
o .Expect (err ).NotTo (o .HaveOccurred ())
119
97
120
98
g .By (`removing tag "second" from "another" image stream` )
121
99
err = oc .ImageClient ().Image ().ImageStreamTags (oc .Namespace ()).Delete ("another:second" , nil )
122
100
o .Expect (err ).NotTo (o .HaveOccurred ())
123
101
124
102
g .By (fmt .Sprintf ("trying to push image below limits %v" , limits ))
125
- err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , dClient , oc .Namespace (), "another" , "replenish" , imageSize , 1 , true )
103
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc .Namespace (), "another" , "replenish" , imageSize , 1 , true )
126
104
o .Expect (err ).NotTo (o .HaveOccurred ())
127
105
})
128
106
129
107
g .It (fmt .Sprintf ("should deny a docker image reference exceeding limit on %s resource" , imageapi .ResourceImageStreamTags ), func () {
130
-
131
- defer tearDown (oc )
132
-
133
108
tag2Image , err := buildAndPushTestImagesTo (oc , "src" , "tag" , 2 )
134
109
o .Expect (err ).NotTo (o .HaveOccurred ())
135
110
@@ -187,15 +162,12 @@ var _ = g.Describe("[Feature:ImageQuota][registry][Serial][Suite:openshift/regis
187
162
})
188
163
189
164
g .It (fmt .Sprintf ("should deny an import of a repository exceeding limit on %s resource" , imageapi .ResourceImageStreamTags ), func () {
190
-
191
165
maxBulkImport , err := getMaxImagesBulkImportedPerRepository ()
192
166
if err != nil {
193
167
g .Skip (err .Error ())
194
168
return
195
169
}
196
170
197
- defer tearDown (oc )
198
-
199
171
s1tag2Image , err := buildAndPushTestImagesTo (oc , "src1st" , "tag" , maxBulkImport + 1 )
200
172
s2tag2Image , err := buildAndPushTestImagesTo (oc , "src2nd" , "t" , 2 )
201
173
o .Expect (err ).NotTo (o .HaveOccurred ())
@@ -234,25 +206,18 @@ var _ = g.Describe("[Feature:ImageQuota][registry][Serial][Suite:openshift/regis
234
206
// buildAndPushTestImagesTo builds a given number of test images. The images are pushed to a new image stream
235
207
// of given name under <tagPrefix><X> where X is a number of image starting from 1.
236
208
func buildAndPushTestImagesTo (oc * exutil.CLI , isName string , tagPrefix string , numberOfImages int ) (tag2Image map [string ]imageapi.Image , err error ) {
237
- dClient , err := testutil .NewDockerClient ()
238
- if err != nil {
239
- return
240
- }
241
209
tag2Image = make (map [string ]imageapi.Image )
242
210
243
211
for i := 1 ; i <= numberOfImages ; i ++ {
244
212
tag := fmt .Sprintf ("%s%d" , tagPrefix , i )
245
- dgst , _ , err : = imagesutil .BuildAndPushImageOfSizeWithDocker (oc , dClient , isName , tag , imageSize , 2 , g . GinkgoWriter , true , true )
213
+ err = imagesutil .BuildAndPushImageOfSizeWithBuilder (oc , nil , oc . Namespace (), isName , tag , imageSize , 2 , true )
246
214
if err != nil {
247
215
return nil , err
248
216
}
249
217
ist , err := oc .ImageClient ().Image ().ImageStreamTags (oc .Namespace ()).Get (isName + ":" + tag , metav1.GetOptions {})
250
218
if err != nil {
251
219
return nil , err
252
220
}
253
- if dgst != ist .Image .Name {
254
- return nil , fmt .Errorf ("digest of built image does not match stored: %s != %s" , dgst , ist .Image .Name )
255
- }
256
221
tag2Image [tag ] = ist .Image
257
222
}
258
223
@@ -316,7 +281,7 @@ func bumpLimit(oc *exutil.CLI, resourceName kapi.ResourceName, limit string) (ka
316
281
func getMaxImagesBulkImportedPerRepository () (int , error ) {
317
282
max := os .Getenv ("MAX_IMAGES_BULK_IMPORTED_PER_REPOSITORY" )
318
283
if len (max ) == 0 {
319
- return 0 , fmt .Errorf ("MAX_IMAGES_BULK_IMAGES_IMPORTED_PER_REPOSITORY is not set" )
284
+ return 0 , fmt .Errorf ("MAX_IMAGES_BULK_IMPORTED_PER_REPOSITORY is not set" )
320
285
}
321
286
return strconv .Atoi (max )
322
287
}
0 commit comments