Skip to content

Commit cdd7ca8

Browse files
committed
e2e: split NFD and SGX webhook away from SGX plugin deployment
Previously, the SGX plugin deployment pulled in NFD and SGX webhook as well. This triggered kustomize issues when trying to get everything under the same namespace. This commit splits the three deployments into their own steps. It allows to keep the static parts part of [Before|After]Each and helps to build SGX plugin/application test cases more easily. Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
1 parent c087bd2 commit cdd7ca8

File tree

3 files changed

+56
-13
lines changed

3 files changed

+56
-13
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: apps/v1
2+
kind: DaemonSet
3+
metadata:
4+
name: intel-sgx-plugin
5+
spec:
6+
template:
7+
spec:
8+
initContainers:
9+
- name: intel-sgx-initcontainer
10+
image: intel/intel-sgx-initcontainer:devel
11+
imagePullPolicy: IfNotPresent
12+
securityContext:
13+
readOnlyRootFilesystem: true
14+
volumeMounts:
15+
- mountPath: /etc/kubernetes/node-feature-discovery/source.d/
16+
name: nfd-source-hooks
17+
volumes:
18+
- name: nfd-source-hooks
19+
hostPath:
20+
path: /etc/kubernetes/node-feature-discovery/source.d/
21+
type: DirectoryOrCreate
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
resources:
2+
- ../../base
3+
patches:
4+
- add-epc-nfd-initcontainer.yaml

test/e2e/sgx/sgx.go

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package sgx
1616

1717
import (
1818
"context"
19-
"os"
2019
"path/filepath"
2120
"time"
2221

@@ -33,7 +32,9 @@ import (
3332
)
3433

3534
const (
36-
kustomizationYaml = "deployments/sgx_plugin/overlays/epc-nfd/kustomization.yaml"
35+
kustomizationWebhook = "deployments/sgx_admissionwebhook/overlays/default-with-certmanager/kustomization.yaml"
36+
kustomizationPlugin = "deployments/sgx_plugin/overlays/epc-hook-initcontainer/kustomization.yaml"
37+
kustomizationNFD = "deployments/sgx_nfd/kustomization.yaml"
3738
)
3839

3940
func init() {
@@ -43,25 +44,42 @@ func init() {
4344
func describe() {
4445
f := framework.NewDefaultFramework("sgxplugin")
4546

46-
kustomizationPath, err := utils.LocateRepoFile(kustomizationYaml)
47+
deploymentWebhookPath, err := utils.LocateRepoFile(kustomizationWebhook)
4748
if err != nil {
48-
framework.Failf("unable to locate %q: %v", kustomizationYaml, err)
49+
framework.Failf("unable to locate %q: %v", kustomizationWebhook, err)
4950
}
5051

51-
ginkgo.It("checks availability of SGX resources", func() {
52-
tmpDir, err := os.MkdirTemp("", "sgxplugine2etest-"+f.Namespace.Name)
53-
if err != nil {
54-
framework.Failf("unable to create temp directory: %v", err)
52+
deploymentNFDPath, err := utils.LocateRepoFile(kustomizationNFD)
53+
if err != nil {
54+
framework.Failf("unable to locate %q: %v", kustomizationNFD, err)
55+
}
56+
57+
ginkgo.BeforeEach(func() {
58+
_ = utils.DeployWebhook(f, deploymentWebhookPath)
59+
60+
msg := framework.RunKubectlOrDie("node-feature-discovery", "apply", "-k", filepath.Dir(deploymentNFDPath))
61+
framework.Logf("Deploy node-feature-discovery:\n%s", msg)
62+
63+
if _, err = e2epod.WaitForPodsWithLabelRunningReady(f.ClientSet, "node-feature-discovery",
64+
labels.Set{"app": "nfd-master"}.AsSelector(), 1 /* one replica */, 100*time.Second); err != nil {
65+
framework.Failf("unable to wait for NFD pods to be running and ready: %v", err)
5566
}
56-
defer os.RemoveAll(tmpDir)
67+
})
68+
69+
ginkgo.AfterEach(func() {
70+
msg := framework.RunKubectlOrDie("node-feature-discovery", "delete", "-k", filepath.Dir(deploymentNFDPath))
71+
framework.Logf("Delete node-feature-discovery:\n%s", msg)
72+
})
5773

58-
err = utils.CreateKustomizationOverlay(f.Namespace.Name, filepath.Dir(kustomizationPath), tmpDir)
74+
ginkgo.It("checks availability of SGX resources", func() {
75+
ginkgo.By("deploying SGX plugin")
76+
77+
deploymentPluginPath, err := utils.LocateRepoFile(kustomizationPlugin)
5978
if err != nil {
60-
framework.Failf("unable to create kustomization overlay: %v", err)
79+
framework.Failf("unable to locate %q: %v", kustomizationPlugin, err)
6180
}
6281

63-
ginkgo.By("deploying SGX plugin")
64-
framework.RunKubectlOrDie(f.Namespace.Name, "--namespace", f.Namespace.Name, "apply", "-k", tmpDir)
82+
framework.RunKubectlOrDie(f.Namespace.Name, "apply", "-k", filepath.Dir(deploymentPluginPath))
6583

6684
ginkgo.By("waiting for SGX plugin's availability")
6785
if _, err = e2epod.WaitForPodsWithLabelRunningReady(f.ClientSet, f.Namespace.Name,

0 commit comments

Comments
 (0)