@@ -17,8 +17,10 @@ import (
17
17
18
18
"github.com/edgelesssys/contrast/cli/cmd"
19
19
"github.com/edgelesssys/contrast/e2e/internal/kubeclient"
20
+ "github.com/edgelesssys/contrast/internal/kubeapi"
20
21
"github.com/stretchr/testify/assert"
21
22
"github.com/stretchr/testify/require"
23
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
22
24
)
23
25
24
26
// namespace the tests are executed in.
@@ -36,6 +38,34 @@ func TestOpenSSL(t *testing.T) {
36
38
namespace := os .Getenv (namespaceEnv )
37
39
require .NotEmpty (t , namespace , "environment variable %q must be set" , namespaceEnv )
38
40
41
+ resources , err := filepath .Glob ("./workspace/deployment/*.yml" )
42
+ require .NoError (t , err )
43
+
44
+ // TODO(burgerdev): policy hash should come from contrast generate output.
45
+ coordinatorPolicyHashBytes , err := os .ReadFile ("workspace/coordinator-policy.sha256" )
46
+ require .NoError (t , err )
47
+ coordinatorPolicyHash := string (coordinatorPolicyHashBytes )
48
+ require .NotEmpty (t , coordinatorPolicyHash , "expected apply to fill coordinator policy hash" )
49
+
50
+ require .True (t , t .Run ("apply" , func (t * testing.T ) {
51
+ require := require .New (t )
52
+
53
+ var objects []* unstructured.Unstructured
54
+ for _ , file := range resources {
55
+ yaml , err := os .ReadFile (file )
56
+ require .NoError (err )
57
+ fileObjects , err := kubeapi .UnmarshalUnstructuredK8SResource (yaml )
58
+ require .NoError (err )
59
+ objects = append (objects , fileObjects ... )
60
+ }
61
+
62
+ ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
63
+ defer cancel ()
64
+
65
+ c := kubeclient .NewForTest (t )
66
+ require .NoError (c .Apply (ctx , objects ... ))
67
+ }), "Kubernetes resources need to be applied for subsequent tests" )
68
+
39
69
require .True (t , t .Run ("set" , func (t * testing.T ) {
40
70
require := require .New (t )
41
71
@@ -48,11 +78,8 @@ func TestOpenSSL(t *testing.T) {
48
78
require .NoError (err )
49
79
defer cancelPortForward ()
50
80
51
- resources , err := filepath .Glob ("./workspace/deployment/*.yml" )
52
- require .NoError (err )
53
-
54
81
args := []string {
55
- "--coordinator-policy-hash= " , // TODO(burgerdev): enable policy checking
82
+ "--coordinator-policy-hash" , coordinatorPolicyHash ,
56
83
"--coordinator" , coordinator ,
57
84
"--workspace-dir" , "./workspace" ,
58
85
}
@@ -88,7 +115,7 @@ func TestOpenSSL(t *testing.T) {
88
115
verify := cmd .NewVerifyCmd ()
89
116
verify .SetArgs ([]string {
90
117
"--workspace-dir" , workspaceDir ,
91
- "--coordinator-policy-hash= " , // TODO(burgerdev): enable policy checking
118
+ "--coordinator-policy-hash" , coordinatorPolicyHash ,
92
119
"--coordinator" , coordinator ,
93
120
})
94
121
verify .SetOut (io .Discard )
0 commit comments