Skip to content

Commit 8cdc067

Browse files
committed
CH-208 Change jupyterhub user volume related affinity to preferred to enable scale up
1 parent 4f41429 commit 8cdc067

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

  • applications/jupyterhub/src/harness_jupyter/harness_jupyter

applications/jupyterhub/src/harness_jupyter/harness_jupyter/jupyterhub.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,27 @@ def affinity_spec(key, value):
7272
'topologyKey': 'kubernetes.io/hostname'
7373
}
7474

75+
def affinity_preferred_spec(key, value, topology_key='kubernetes.io/hostname', operator='In'):
76+
"""
77+
Generates a Kubernetes preferred affinity term.
78+
"""
79+
80+
return {
81+
'weight': 100,
82+
'podAffinityTerm': {
83+
'labelSelector': {
84+
'matchExpressions': [
85+
{
86+
'key': key,
87+
'operator': operator,
88+
'values': [value]
89+
}
90+
]
91+
},
92+
'topologyKey': topology_key
93+
}
94+
}
95+
7596

7697
def set_user_volume_affinity(self: KubeSpawner):
7798
# Add labels to use for affinity
@@ -83,7 +104,7 @@ def set_user_volume_affinity(self: KubeSpawner):
83104
self.extra_labels = labels
84105

85106
for key, value in labels.items():
86-
self.pod_affinity_required.append(affinity_spec(key, value))
107+
self.pod_affinity_preferred.append(affinity_preferred_spec(key, value))
87108

88109

89110
def set_key_value(self, key, value, unit=None):

0 commit comments

Comments
 (0)