@@ -8,34 +8,28 @@ import (
8
8
9
9
func TestPointValue (t * testing.T ) {
10
10
newSCC := func (priv bool , seLinuxStrategy securityapi.SELinuxContextStrategyType , userStrategy securityapi.RunAsUserStrategyType ) * securityapi.SecurityContextConstraints {
11
- scc := & securityapi.SecurityContextConstraints {
11
+ return & securityapi.SecurityContextConstraints {
12
+ AllowPrivilegedContainer : priv ,
12
13
SELinuxContext : securityapi.SELinuxContextStrategyOptions {
13
14
Type : seLinuxStrategy ,
14
15
},
15
16
RunAsUser : securityapi.RunAsUserStrategyOptions {
16
17
Type : userStrategy ,
17
18
},
18
19
}
19
- if priv {
20
- scc .AllowPrivilegedContainer = true
21
- }
22
-
23
- return scc
24
20
}
25
21
26
- seLinuxStrategies := map [securityapi.SELinuxContextStrategyType ]int {
27
- securityapi .SELinuxStrategyRunAsAny : 4 ,
28
- securityapi .SELinuxStrategyMustRunAs : 1 ,
22
+ seLinuxStrategies := map [securityapi.SELinuxContextStrategyType ]points {
23
+ securityapi .SELinuxStrategyRunAsAny : runAsAnyUserPoints ,
24
+ securityapi .SELinuxStrategyMustRunAs : runAsUserPoints ,
29
25
}
30
- userStrategies := map [securityapi.RunAsUserStrategyType ]int {
31
- securityapi .RunAsUserStrategyRunAsAny : 4 ,
32
- securityapi .RunAsUserStrategyMustRunAsNonRoot : 3 ,
33
- securityapi .RunAsUserStrategyMustRunAsRange : 2 ,
34
- securityapi .RunAsUserStrategyMustRunAs : 1 ,
26
+ userStrategies := map [securityapi.RunAsUserStrategyType ]points {
27
+ securityapi .RunAsUserStrategyRunAsAny : runAsAnyUserPoints ,
28
+ securityapi .RunAsUserStrategyMustRunAsNonRoot : runAsNonRootPoints ,
29
+ securityapi .RunAsUserStrategyMustRunAsRange : runAsRangePoints ,
30
+ securityapi .RunAsUserStrategyMustRunAs : runAsUserPoints ,
35
31
}
36
32
37
- privilegedPoints := 20
38
-
39
33
// run through all combos of user strategy + seLinux strategy + priv
40
34
for userStrategy , userStrategyPoints := range userStrategies {
41
35
for seLinuxStrategy , seLinuxStrategyPoints := range seLinuxStrategies {
@@ -61,7 +55,9 @@ func TestPointValue(t *testing.T) {
61
55
scc := newSCC (false , securityapi .SELinuxStrategyMustRunAs , securityapi .RunAsUserStrategyMustRunAs )
62
56
scc .Volumes = []securityapi.FSType {securityapi .FSTypeHostPath }
63
57
actualPoints := pointValue (scc )
64
- if actualPoints != 12 { //1 (SELinux) + 1 (User) + 10 (host path volume)
58
+ // SELinux + User + host path volume
59
+ expectedPoints := runAsUserPoints + runAsUserPoints + hostVolumePoints
60
+ if actualPoints != expectedPoints {
65
61
t .Errorf ("volume score was not added to the scc point value correctly!" )
66
62
}
67
63
}
@@ -90,79 +86,79 @@ func TestVolumePointValue(t *testing.T) {
90
86
91
87
tests := map [string ]struct {
92
88
scc * securityapi.SecurityContextConstraints
93
- expectedPoints int
89
+ expectedPoints points
94
90
}{
95
91
"all volumes" : {
96
92
scc : allowAllSCC ,
97
- expectedPoints : 10 ,
93
+ expectedPoints : hostVolumePoints ,
98
94
},
99
95
"host volume" : {
100
96
scc : newSCC (true , false , false ),
101
- expectedPoints : 10 ,
97
+ expectedPoints : hostVolumePoints ,
102
98
},
103
99
"host volume and non trivial volumes" : {
104
100
scc : newSCC (true , true , false ),
105
- expectedPoints : 10 ,
101
+ expectedPoints : hostVolumePoints ,
106
102
},
107
103
"host volume, non trivial, and trivial" : {
108
104
scc : newSCC (true , true , true ),
109
- expectedPoints : 10 ,
105
+ expectedPoints : hostVolumePoints ,
110
106
},
111
107
"non trivial" : {
112
108
scc : newSCC (false , true , false ),
113
- expectedPoints : 5 ,
109
+ expectedPoints : nonTrivialVolumePoints ,
114
110
},
115
111
"non trivial and trivial" : {
116
112
scc : newSCC (false , true , true ),
117
- expectedPoints : 5 ,
113
+ expectedPoints : nonTrivialVolumePoints ,
118
114
},
119
115
"trivial" : {
120
116
scc : newSCC (false , false , true ),
121
- expectedPoints : 0 ,
117
+ expectedPoints : noPoints ,
122
118
},
123
119
"trivial - secret" : {
124
120
scc : & securityapi.SecurityContextConstraints {
125
121
Volumes : []securityapi.FSType {securityapi .FSTypeSecret },
126
122
},
127
- expectedPoints : 0 ,
123
+ expectedPoints : noPoints ,
128
124
},
129
125
"trivial - configMap" : {
130
126
scc : & securityapi.SecurityContextConstraints {
131
127
Volumes : []securityapi.FSType {securityapi .FSTypeConfigMap },
132
128
},
133
- expectedPoints : 0 ,
129
+ expectedPoints : noPoints ,
134
130
},
135
131
"trivial - emptyDir" : {
136
132
scc : & securityapi.SecurityContextConstraints {
137
133
Volumes : []securityapi.FSType {securityapi .FSTypeEmptyDir },
138
134
},
139
- expectedPoints : 0 ,
135
+ expectedPoints : noPoints ,
140
136
},
141
137
"trivial - downwardAPI" : {
142
138
scc : & securityapi.SecurityContextConstraints {
143
139
Volumes : []securityapi.FSType {securityapi .FSTypeDownwardAPI },
144
140
},
145
- expectedPoints : 0 ,
141
+ expectedPoints : noPoints ,
146
142
},
147
143
"trivial - projected" : {
148
144
scc : & securityapi.SecurityContextConstraints {
149
145
Volumes : []securityapi.FSType {securityapi .FSProjected },
150
146
},
151
- expectedPoints : 0 ,
147
+ expectedPoints : noPoints ,
152
148
},
153
149
"trivial - none" : {
154
150
scc : & securityapi.SecurityContextConstraints {
155
151
Volumes : []securityapi.FSType {securityapi .FSTypeNone },
156
152
},
157
- expectedPoints : 0 ,
153
+ expectedPoints : noPoints ,
158
154
},
159
155
"no volumes allowed" : {
160
156
scc : newSCC (false , false , false ),
161
- expectedPoints : 0 ,
157
+ expectedPoints : noPoints ,
162
158
},
163
159
"nil volumes" : {
164
160
scc : nilVolumeSCC ,
165
- expectedPoints : 0 ,
161
+ expectedPoints : noPoints ,
166
162
},
167
163
}
168
164
for k , v := range tests {
0 commit comments