74
74
host: canary
75
75
weight: 0`
76
76
77
- func getAnalysisTemplateWithType () AnalysisTemplatesWithType {
77
+ func getAnalysisTemplatesWithType () AnalysisTemplatesWithType {
78
78
count := intstr .FromInt (1 )
79
79
return AnalysisTemplatesWithType {
80
80
AnalysisTemplates : []* v1alpha1.AnalysisTemplate {{
@@ -160,7 +160,7 @@ func getServiceWithType() ServiceWithType {
160
160
161
161
func TestValidateRolloutReferencedResources (t * testing.T ) {
162
162
refResources := ReferencedResources {
163
- AnalysisTemplatesWithType : []AnalysisTemplatesWithType {getAnalysisTemplateWithType ()},
163
+ AnalysisTemplatesWithType : []AnalysisTemplatesWithType {getAnalysisTemplatesWithType ()},
164
164
Ingresses : []v1beta1.Ingress {getIngress ()},
165
165
ServiceWithType : []ServiceWithType {getServiceWithType ()},
166
166
VirtualServices : nil ,
@@ -169,18 +169,49 @@ func TestValidateRolloutReferencedResources(t *testing.T) {
169
169
assert .Empty (t , allErrs )
170
170
}
171
171
172
+ func TestValidateAnalysisTemplatesWithType (t * testing.T ) {
173
+ t .Run ("failure - invalid argument" , func (t * testing.T ) {
174
+ rollout := getRollout ()
175
+ templates := getAnalysisTemplatesWithType ()
176
+ templates .AnalysisTemplates [0 ].Spec .Args = append (templates .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "invalid" })
177
+ allErrs := ValidateAnalysisTemplatesWithType (rollout , templates )
178
+ assert .Len (t , allErrs , 1 )
179
+ msg := fmt .Sprintf ("spec.strategy.canary.steps[0].analysis.templates: Invalid value: \" templateNames: [analysis-template-name cluster-analysis-template-name]\" : args.invalid was not resolved" )
180
+ assert .Equal (t , msg , allErrs [0 ].Error ())
181
+ })
182
+
183
+ t .Run ("success" , func (t * testing.T ) {
184
+ rollout := getRollout ()
185
+ templates := getAnalysisTemplatesWithType ()
186
+ templates .AnalysisTemplates [0 ].Spec .Args = append (templates .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "valid" })
187
+ templates .Args = []v1alpha1.AnalysisRunArgument {{Name : "valid" , Value : "true" }}
188
+ allErrs := ValidateAnalysisTemplatesWithType (rollout , templates )
189
+ assert .Empty (t , allErrs )
190
+ })
191
+
192
+ t .Run ("failure - duplicate metrics" , func (t * testing.T ) {
193
+ rollout := getRollout ()
194
+ templates := getAnalysisTemplatesWithType ()
195
+ templates .AnalysisTemplates [0 ].Spec .Args = append (templates .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "metric1-name" , Value : pointer .StringPtr ("true" )})
196
+ templates .AnalysisTemplates [0 ].Spec .Args [0 ] = v1alpha1.Argument {Name : "valid" , Value : pointer .StringPtr ("true" )}
197
+ allErrs := ValidateAnalysisTemplatesWithType (rollout , templates )
198
+ assert .Empty (t , allErrs )
199
+ })
200
+
201
+ }
202
+
172
203
func TestValidateAnalysisTemplateWithType (t * testing.T ) {
173
204
t .Run ("validate analysisTemplate - success" , func (t * testing.T ) {
174
205
rollout := getRollout ()
175
- template := getAnalysisTemplateWithType ()
176
- allErrs := ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
206
+ templates := getAnalysisTemplatesWithType ()
207
+ allErrs := ValidateAnalysisTemplateWithType (rollout , templates .AnalysisTemplates [0 ], nil , templates .TemplateType , GetAnalysisTemplateWithTypeFieldPath (templates .TemplateType , templates .CanaryStepIndex ))
177
208
assert .Empty (t , allErrs )
178
209
})
179
210
180
211
t .Run ("validate inline clusterAnalysisTemplate - failure" , func (t * testing.T ) {
181
212
rollout := getRollout ()
182
213
count := intstr .FromInt (0 )
183
- template := getAnalysisTemplateWithType ()
214
+ template := getAnalysisTemplatesWithType ()
184
215
template .ClusterAnalysisTemplates [0 ].Spec .Metrics [0 ].Count = & count
185
216
allErrs := ValidateAnalysisTemplateWithType (rollout , nil , template .ClusterAnalysisTemplates [0 ], template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
186
217
assert .Len (t , allErrs , 1 )
@@ -191,7 +222,7 @@ func TestValidateAnalysisTemplateWithType(t *testing.T) {
191
222
192
223
t .Run ("validate inline analysisTemplate argument - success" , func (t * testing.T ) {
193
224
rollout := getRollout ()
194
- template := getAnalysisTemplateWithType ()
225
+ template := getAnalysisTemplatesWithType ()
195
226
template .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
196
227
{
197
228
Name : "service-name" ,
@@ -204,7 +235,7 @@ func TestValidateAnalysisTemplateWithType(t *testing.T) {
204
235
205
236
t .Run ("validate background analysisTemplate - failure" , func (t * testing.T ) {
206
237
rollout := getRollout ()
207
- template := getAnalysisTemplateWithType ()
238
+ template := getAnalysisTemplatesWithType ()
208
239
template .TemplateType = BackgroundAnalysis
209
240
template .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
210
241
{
@@ -235,23 +266,23 @@ func TestValidateAnalysisTemplateWithType(t *testing.T) {
235
266
t .Run ("validate background analysisTemplate - success" , func (t * testing.T ) {
236
267
rollout := getRollout ()
237
268
238
- template := getAnalysisTemplateWithType ()
239
- template .TemplateType = BackgroundAnalysis
240
- allErrs := ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
269
+ templates := getAnalysisTemplatesWithType ()
270
+ templates .TemplateType = BackgroundAnalysis
271
+ allErrs := ValidateAnalysisTemplateWithType (rollout , templates .AnalysisTemplates [0 ], nil , templates .TemplateType , GetAnalysisTemplateWithTypeFieldPath (templates .TemplateType , templates .CanaryStepIndex ))
241
272
assert .Empty (t , allErrs )
242
273
243
274
// default value should be fine
244
275
defaultValue := "value-name"
245
- template .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
276
+ templates .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
246
277
{
247
278
Name : "service-name" ,
248
279
Value : & defaultValue ,
249
280
},
250
281
}
251
- allErrs = ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
282
+ allErrs = ValidateAnalysisTemplateWithType (rollout , templates .AnalysisTemplates [0 ], nil , templates .TemplateType , GetAnalysisTemplateWithTypeFieldPath (templates .TemplateType , templates .CanaryStepIndex ))
252
283
assert .Empty (t , allErrs )
253
284
254
- template .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
285
+ templates .AnalysisTemplates [0 ].Spec .Args = []v1alpha1.Argument {
255
286
{
256
287
Name : "service-name" ,
257
288
Value : pointer .StringPtr ("service-name" ),
@@ -266,50 +297,22 @@ func TestValidateAnalysisTemplateWithType(t *testing.T) {
266
297
},
267
298
},
268
299
}
269
- allErrs = ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
300
+ allErrs = ValidateAnalysisTemplateWithType (rollout , templates .AnalysisTemplates [0 ], nil , templates .TemplateType , GetAnalysisTemplateWithTypeFieldPath (templates .TemplateType , templates .CanaryStepIndex ))
270
301
assert .Empty (t , allErrs )
271
302
})
272
303
273
304
// verify background analysis does not care about a metric that runs indefinitely
274
305
t .Run ("validate background analysisTemplate - success" , func (t * testing.T ) {
275
306
rollout := getRollout ()
276
307
count := intstr .FromInt (0 )
277
- template := getAnalysisTemplateWithType ()
278
- template .TemplateType = BackgroundAnalysis
279
- template .AnalysisTemplates [0 ].Spec .Metrics [0 ].Count = & count
280
- allErrs := ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
308
+ templates := getAnalysisTemplatesWithType ()
309
+ templates .TemplateType = BackgroundAnalysis
310
+ templates .AnalysisTemplates [0 ].Spec .Metrics [0 ].Count = & count
311
+ allErrs := ValidateAnalysisTemplateWithType (rollout , templates .AnalysisTemplates [0 ], nil , templates .TemplateType , GetAnalysisTemplateWithTypeFieldPath (templates .TemplateType , templates .CanaryStepIndex ))
281
312
assert .Empty (t , allErrs )
282
313
})
283
314
}
284
315
285
- func TestValidateAnalysisTemplateWithTypeFlattenMetricsAndResolveArgs (t * testing.T ) {
286
- rollout := getRollout ()
287
- template := getAnalysisTemplateWithType ()
288
-
289
- t .Run ("failure - invalid argument" , func (t * testing.T ) {
290
- template .AnalysisTemplates [0 ].Spec .Args = append (template .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "invalid" })
291
- allErrs := ValidateAnalysisTemplatesWithType (rollout , template )
292
- assert .Len (t , allErrs , 1 )
293
- msg := fmt .Sprintf ("spec.strategy.canary.steps[0].analysis.templates: Invalid value: \" templateNames: [analysis-template-name cluster-analysis-template-name]\" : args.invalid was not resolved" )
294
- assert .Equal (t , msg , allErrs [0 ].Error ())
295
- })
296
-
297
- t .Run ("success" , func (t * testing.T ) {
298
- template .AnalysisTemplates [0 ].Spec .Args = append (template .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "metric1-name" , Value : pointer .StringPtr ("true" )})
299
- template .AnalysisTemplates [0 ].Spec .Args [0 ] = v1alpha1.Argument {Name : "valid" , Value : pointer .StringPtr ("true" )}
300
- allErrs := ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
301
- assert .Empty (t , allErrs )
302
- })
303
-
304
- t .Run ("failure - duplicate metrics" , func (t * testing.T ) {
305
- template .AnalysisTemplates [0 ].Spec .Args = append (template .AnalysisTemplates [0 ].Spec .Args , v1alpha1.Argument {Name : "metric1-name" , Value : pointer .StringPtr ("true" )})
306
- template .AnalysisTemplates [0 ].Spec .Args [0 ] = v1alpha1.Argument {Name : "valid" , Value : pointer .StringPtr ("true" )}
307
- allErrs := ValidateAnalysisTemplateWithType (rollout , template .AnalysisTemplates [0 ], nil , template .TemplateType , GetAnalysisTemplateWithTypeFieldPath (template .TemplateType , template .CanaryStepIndex ))
308
- assert .Empty (t , allErrs )
309
- })
310
-
311
- }
312
-
313
316
func TestValidateIngress (t * testing.T ) {
314
317
t .Run ("validate ingress - success" , func (t * testing.T ) {
315
318
ingress := getIngress ()
0 commit comments