@@ -137,6 +137,10 @@ func describeQatDpdkPlugin() {
137
137
gomega .Expect (err ).To (gomega .BeNil (), utils .GetPodLogs (ctx , f , "qat-dpdk-test-crypto-perf" , "crypto-perf" ))
138
138
})
139
139
140
+ ginkgo .It ("deploys a crypto pod (qat-engine testapp) [App:qat-engine]" , func (ctx context.Context ) {
141
+ runQatEngineTestApp (ctx , f , resourceName )
142
+ })
143
+
140
144
ginkgo .When ("there is no app to run [App:noapp]" , func () {
141
145
ginkgo .It ("does nothing" , func () {})
142
146
})
@@ -251,6 +255,39 @@ func runCpaSampleCode(ctx context.Context, f *framework.Framework, runTests int,
251
255
gomega .Expect (err ).To (gomega .BeNil (), utils .GetPodLogs (ctx , f , pod .ObjectMeta .Name , pod .Spec .Containers [0 ].Name ))
252
256
}
253
257
258
+ func runQatEngineTestApp (ctx context.Context , f * framework.Framework , resourceName v1.ResourceName ) {
259
+ ginkgo .By ("submitting a pod requesting QAT" + resourceName .String () + "resources" )
260
+ podSpec := & v1.Pod {
261
+ ObjectMeta : metav1.ObjectMeta {Name : "openssl-qat-engine" },
262
+ Spec : v1.PodSpec {
263
+ Containers : []v1.Container {
264
+ {
265
+ Name : "openssl-qat-engine" ,
266
+ Image : "intel/openssl-qat-engine:devel" ,
267
+ ImagePullPolicy : "IfNotPresent" ,
268
+ Command : []string {"testapp" , "-engine" , "qatengine" , "-async_jobs" , "1" , "-c" , "1" , "-n" , "1" , "-nc" , "1" , "-v" , "-hw_algo" , "0x0029" },
269
+ SecurityContext : & v1.SecurityContext {
270
+ Capabilities : & v1.Capabilities {
271
+ Add : []v1.Capability {"IPC_LOCK" }},
272
+ },
273
+ Resources : v1.ResourceRequirements {
274
+ Requests : v1.ResourceList {resourceName : resource .MustParse ("1" )},
275
+ Limits : v1.ResourceList {resourceName : resource .MustParse ("1" )},
276
+ },
277
+ },
278
+ },
279
+ RestartPolicy : v1 .RestartPolicyNever ,
280
+ },
281
+ }
282
+ pod , err := f .ClientSet .CoreV1 ().Pods (f .Namespace .Name ).Create (ctx , podSpec , metav1.CreateOptions {})
283
+ framework .ExpectNoError (err , "pod Create API error" )
284
+
285
+ ginkgo .By ("waiting the qat-engine's testapp pod for the resource" + resourceName .String () + "to finish successfully" )
286
+
287
+ err = e2epod .WaitForPodSuccessInNamespaceTimeout (ctx , f .ClientSet , pod .ObjectMeta .Name , f .Namespace .Name , 300 * time .Second )
288
+ gomega .Expect (err ).To (gomega .BeNil (), utils .GetPodLogs (ctx , f , pod .ObjectMeta .Name , pod .Spec .Containers [0 ].Name ))
289
+ }
290
+
254
291
func injectError (ctx context.Context , f * framework.Framework , resourceName v1.ResourceName ) {
255
292
nodeName , _ := utils .FindNodeAndResourceCapacity (f , ctx , resourceName .String ())
256
293
if nodeName == "" {
0 commit comments