@@ -145,27 +145,26 @@ async def mock_oath2(self, request):
145
145
@patch (
146
146
"feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_namespaced_role_binding"
147
147
)
148
- @patch (
149
- "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_cluster_role_binding"
150
- )
151
148
def test_k8s_token_validation_success (
152
- mock_crb ,
153
149
mock_rb ,
154
150
mock_jwt ,
155
151
mock_config ,
156
152
rolebindings ,
157
- clusterrolebindings ,
153
+ monkeypatch ,
154
+ my_namespace ,
155
+ sa_name ,
156
+ sa_namespace ,
158
157
):
159
- sa_name = "my-name"
160
- namespace = "my-ns"
161
- subject = f"system:serviceaccount:{ namespace } :{ sa_name } "
158
+ monkeypatch .setattr (
159
+ "feast.permissions.auth.kubernetes_token_parser.KubernetesTokenParser._read_namespace_from_file" ,
160
+ lambda self : my_namespace ,
161
+ )
162
+ subject = f"system:serviceaccount:{ sa_namespace } :{ sa_name } "
162
163
mock_jwt .return_value = {"sub" : subject }
163
164
164
165
mock_rb .return_value = rolebindings ["items" ]
165
- mock_crb .return_value = clusterrolebindings ["items" ]
166
166
167
167
roles = rolebindings ["roles" ]
168
- croles = clusterrolebindings ["roles" ]
169
168
170
169
access_token = "aaa-bbb-ccc"
171
170
token_parser = KubernetesTokenParser ()
@@ -175,12 +174,10 @@ def test_k8s_token_validation_success(
175
174
176
175
assertpy .assert_that (user ).is_type_of (User )
177
176
if isinstance (user , User ):
178
- assertpy .assert_that (user .username ).is_equal_to (f"{ namespace } :{ sa_name } " )
179
- assertpy .assert_that (user .roles .sort ()).is_equal_to (( roles + croles ) .sort ())
177
+ assertpy .assert_that (user .username ).is_equal_to (f"{ sa_namespace } :{ sa_name } " )
178
+ assertpy .assert_that (user .roles .sort ()).is_equal_to (roles .sort ())
180
179
for r in roles :
181
180
assertpy .assert_that (user .has_matching_role ([r ])).is_true ()
182
- for cr in croles :
183
- assertpy .assert_that (user .has_matching_role ([cr ])).is_true ()
184
181
assertpy .assert_that (user .has_matching_role (["foo" ])).is_false ()
185
182
186
183
@@ -212,30 +209,29 @@ def test_k8s_inter_server_comm(
212
209
oidc_config ,
213
210
request ,
214
211
rolebindings ,
215
- clusterrolebindings ,
216
212
monkeypatch ,
217
213
):
218
214
if is_intra_server :
219
215
subject = f":::{ intra_communication_val } "
220
216
else :
221
217
sa_name = request .getfixturevalue ("sa_name" )
222
- namespace = request .getfixturevalue ("namespace" )
223
- subject = f"system:serviceaccount:{ namespace } :{ sa_name } "
218
+ sa_namespace = request .getfixturevalue ("sa_namespace" )
219
+ my_namespace = request .getfixturevalue ("my_namespace" )
220
+ subject = f"system:serviceaccount:{ sa_namespace } :{ sa_name } "
224
221
rolebindings = request .getfixturevalue ("rolebindings" )
225
- clusterrolebindings = request .getfixturevalue ("clusterrolebindings" )
226
222
227
223
monkeypatch .setattr (
228
224
"feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_namespaced_role_binding" ,
229
225
lambda * args , ** kwargs : rolebindings ["items" ],
230
226
)
231
- monkeypatch .setattr (
232
- "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_cluster_role_binding" ,
233
- lambda * args , ** kwargs : clusterrolebindings ["items" ],
234
- )
235
227
monkeypatch .setattr (
236
228
"feast.permissions.client.kubernetes_auth_client_manager.KubernetesAuthClientManager.get_token" ,
237
229
lambda self : "my-token" ,
238
230
)
231
+ monkeypatch .setattr (
232
+ "feast.permissions.auth.kubernetes_token_parser.KubernetesTokenParser._read_namespace_from_file" ,
233
+ lambda self : my_namespace ,
234
+ )
239
235
240
236
monkeypatch .setattr (
241
237
"feast.permissions.auth.kubernetes_token_parser.config.load_incluster_config" ,
@@ -248,7 +244,6 @@ def test_k8s_inter_server_comm(
248
244
)
249
245
250
246
roles = rolebindings ["roles" ]
251
- croles = clusterrolebindings ["roles" ]
252
247
253
248
access_token = "aaa-bbb-ccc"
254
249
token_parser = KubernetesTokenParser ()
@@ -263,10 +258,8 @@ def test_k8s_inter_server_comm(
263
258
else :
264
259
assertpy .assert_that (user ).is_type_of (User )
265
260
if isinstance (user , User ):
266
- assertpy .assert_that (user .username ).is_equal_to (f"{ namespace } :{ sa_name } " )
267
- assertpy .assert_that (user .roles .sort ()).is_equal_to (( roles + croles ) .sort ())
261
+ assertpy .assert_that (user .username ).is_equal_to (f"{ sa_namespace } :{ sa_name } " )
262
+ assertpy .assert_that (user .roles .sort ()).is_equal_to (roles .sort ())
268
263
for r in roles :
269
264
assertpy .assert_that (user .has_matching_role ([r ])).is_true ()
270
- for cr in croles :
271
- assertpy .assert_that (user .has_matching_role ([cr ])).is_true ()
272
265
assertpy .assert_that (user .has_matching_role (["foo" ])).is_false ()
0 commit comments