1
+ import json
1
2
import subprocess
2
3
import time
3
4
@@ -22,7 +23,7 @@ def test_spawn_basic(
22
23
r = api_request .post ("/users/" + jupyter_user + "/server" )
23
24
assert r .status_code in (201 , 202 )
24
25
try :
25
- # check successfull spawn
26
+ # check successful spawn
26
27
server_model = _wait_for_user_to_spawn (
27
28
api_request , jupyter_user , request_data ["test_timeout" ]
28
29
)
@@ -36,8 +37,38 @@ def test_spawn_basic(
36
37
assert r .status_code == 200
37
38
assert "version" in r .json ()
38
39
39
- # check user pod's extra environment variable
40
40
pod_name = server_model ["state" ]["pod_name" ]
41
+
42
+ # check user pod's labels
43
+ pod_json = subprocess .check_output (
44
+ [
45
+ "kubectl" ,
46
+ "get" ,
47
+ "pod" ,
48
+ "--output=json" ,
49
+ pod_name ,
50
+ ]
51
+ )
52
+ pod = json .loads (pod_json )
53
+ pod_labels = pod ["metadata" ]["labels" ]
54
+
55
+ # check for modern labels
56
+ assert pod_labels ["app.kubernetes.io/name" ] == "jupyterhub"
57
+ assert "app.kubernetes.io/instance" in pod_labels
58
+ # FIXME: app.kubernetes.io/component for user pods require kubespawner
59
+ # with https://github.com/jupyterhub/kubespawner/pull/835.
60
+ # assert pod_labels["app.kubernetes.io/component"] == "singleuser-server"
61
+ assert pod_labels ["helm.sh/chart" ].startswith ("jupyterhub-" )
62
+ assert "app.kubernetes.io/version" in pod_labels
63
+ assert pod_labels ["app.kubernetes.io/managed-by" ] == "kubespawner"
64
+
65
+ # check for legacy labels still meant to be around
66
+ assert pod_labels ["app" ] == "jupyterhub"
67
+ assert "release" in pod_labels
68
+ assert pod_labels ["chart" ].startswith ("jupyterhub-" )
69
+ assert pod_labels ["component" ] == "singleuser-server"
70
+
71
+ # check user pod's extra environment variable
41
72
c = subprocess .run (
42
73
[
43
74
"kubectl" ,
0 commit comments