Skip to content

Commit 593b2fc

Browse files
committed
Revert "Update cleanup job node affinity logic (#1455)"
This reverts commit c184ef9.
1 parent c184ef9 commit 593b2fc

File tree

1 file changed

+14
-34
lines changed

1 file changed

+14
-34
lines changed

pkg/provision/storage/cleanup.go

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ import (
3030
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
3131
"k8s.io/apimachinery/pkg/api/resource"
3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
33-
"k8s.io/apimachinery/pkg/labels"
3433
"k8s.io/apimachinery/pkg/types"
35-
"sigs.k8s.io/controller-runtime/pkg/client"
3634
k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
3735
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
3836

@@ -122,11 +120,11 @@ func getSpecCommonPVCCleanupJob(workspace *common.DevWorkspaceWithConfig, cluste
122120
pvcName = workspace.Config.Workspace.PVCName
123121
}
124122

125-
targetNode, err := getTargetNodeName(workspace, clusterAPI)
123+
targetNode, err := getCommonPVCTargetNode(workspace, clusterAPI)
126124
if err != nil {
127-
clusterAPI.Logger.Error(err, "Error getting target node for cleanup job")
125+
clusterAPI.Logger.Info("Error getting target node for PVC", "PVC", fmt.Sprintf("%s/%s", workspace.Namespace, workspace.Config.Workspace.PVCName), "error", err)
128126
} else if targetNode == "" {
129-
clusterAPI.Logger.Info("No target node for cleanup job, NodeAffinity will not be defined")
127+
clusterAPI.Logger.Info("PVC does not have a target node annotation", "PVC", fmt.Sprintf("%s/%s", workspace.Namespace, workspace.Config.Workspace.PVCName))
130128
}
131129

132130
jobLabels := map[string]string{
@@ -255,39 +253,21 @@ func commonPVCExists(workspace *common.DevWorkspaceWithConfig, clusterAPI sync.C
255253
return true, nil
256254
}
257255

258-
// getTargetNodeName returns the node name of the node a running devworkspace pod that already mounts the
259-
// common PVC is running in.
260-
// Returns an empty string if no such pod exists.
261-
func getTargetNodeName(workspace *common.DevWorkspaceWithConfig, clusterAPI sync.ClusterAPI) (string, error) {
262-
263-
labelSelector, err := labels.Parse(constants.DevWorkspaceIDLabel)
264-
if err != nil {
265-
return "", err
266-
}
267-
268-
listOptions := &client.ListOptions{
269-
Namespace: workspace.Namespace,
270-
LabelSelector: labelSelector,
256+
func getCommonPVCTargetNode(workspace *common.DevWorkspaceWithConfig, clusterAPI sync.ClusterAPI) (string, error) {
257+
namespacedName := types.NamespacedName{
258+
Name: workspace.Config.Workspace.PVCName,
259+
Namespace: workspace.Namespace,
271260
}
272-
273-
found := &corev1.PodList{}
274-
err = clusterAPI.Client.List(clusterAPI.Ctx, found, listOptions)
261+
pvc := &corev1.PersistentVolumeClaim{}
262+
err := clusterAPI.Client.Get(clusterAPI.Ctx, namespacedName, pvc)
275263
if err != nil {
276264
return "", err
277265
}
278266

279-
return getNodeNameWithPVC(found, workspace.Config.Workspace.PVCName), nil
280-
}
281-
282-
func getNodeNameWithPVC(list *corev1.PodList, pvcName string) string {
283-
for _, pod := range list.Items {
284-
if pod.Status.Phase == corev1.PodRunning {
285-
for _, volume := range pod.Spec.Volumes {
286-
if volume.PersistentVolumeClaim != nil && volume.PersistentVolumeClaim.ClaimName == pvcName {
287-
return pod.Spec.NodeName
288-
}
289-
}
290-
}
267+
targetNode := ""
268+
if pvc.Annotations != nil {
269+
targetNode = pvc.Annotations[constants.SelectedNodeAnnotation]
291270
}
292-
return ""
271+
272+
return targetNode, nil
293273
}

0 commit comments

Comments
 (0)