@@ -32,8 +32,9 @@ import (
3232 "github.com/fluid-cloudnative/fluid/pkg/utils"
3333 "github.com/fluid-cloudnative/fluid/pkg/utils/cmdguard"
3434 "github.com/fluid-cloudnative/fluid/pkg/utils/dataset/volume"
35+ "github.com/fluid-cloudnative/fluid/pkg/utils/kubeclient"
3536 "github.com/pkg/errors"
36- v1 "k8s.io/api/core/v1"
37+ corev1 "k8s.io/api/core/v1"
3738 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3839 "k8s.io/apimachinery/pkg/types"
3940 "k8s.io/apimachinery/pkg/util/wait"
@@ -60,7 +61,7 @@ type nodeServer struct {
6061 apiReader client.Reader
6162 nodeAuthorizedClient * kubernetes.Clientset
6263 locks * utils.VolumeLocks
63- node * v1 .Node
64+ node * corev1 .Node
6465}
6566
6667func (ns * nodeServer ) NodePublishVolume (ctx context.Context , req * csi.NodePublishVolumeRequest ) (* csi.NodePublishVolumeResponse , error ) {
@@ -464,7 +465,7 @@ func (ns *nodeServer) getRuntimeNamespacedName(volumeContext map[string]string,
464465}
465466
466467// getNode first checks cached node
467- func (ns * nodeServer ) getNode () (node * v1 .Node , err error ) {
468+ func (ns * nodeServer ) getNode () (node * corev1 .Node , err error ) {
468469 // Default to allow patch stale node info
469470 if envVar , found := os .LookupEnv (AllowPatchStaleNodeEnv ); ! found || envVar == "true" {
470471 if ns .node != nil {
@@ -473,20 +474,23 @@ func (ns *nodeServer) getNode() (node *v1.Node, err error) {
473474 }
474475 }
475476
476- if node , err = ns .nodeAuthorizedClient .CoreV1 ().Nodes ().Get (context .TODO (), ns .nodeId , metav1.GetOptions {}); err != nil {
477- return nil , err
477+ useNodeAuthorization := ns .nodeAuthorizedClient != nil
478+ if useNodeAuthorization {
479+ if node , err = ns .nodeAuthorizedClient .CoreV1 ().Nodes ().Get (context .TODO (), ns .nodeId , metav1.GetOptions {}); err != nil {
480+ return nil , err
481+ }
482+ } else {
483+ if node , err = kubeclient .GetNode (ns .apiReader , ns .nodeId ); err != nil {
484+ return nil , err
485+ }
478486 }
479487
480- // if node, err = kubeclient.GetNode(ns.apiReader, ns.nodeId); err != nil {
481- // return nil, err
482- // }
483-
484488 glog .V (1 ).Infof ("Got node %s from api server" , node .Name )
485489 ns .node = node
486490 return ns .node , nil
487491}
488492
489- func (ns * nodeServer ) patchNodeWithLabel (node * v1 .Node , labelsToModify common.LabelsToModify ) error {
493+ func (ns * nodeServer ) patchNodeWithLabel (node * corev1 .Node , labelsToModify common.LabelsToModify ) error {
490494 labels := labelsToModify .GetLabels ()
491495 labelValuePair := map [string ]interface {}{}
492496
@@ -516,10 +520,22 @@ func (ns *nodeServer) patchNodeWithLabel(node *v1.Node, labelsToModify common.La
516520 if err != nil {
517521 return err
518522 }
519-
520- _ , err = ns .nodeAuthorizedClient .CoreV1 ().Nodes ().Patch (context .TODO (), node .Name , types .StrategicMergePatchType , patchByteData , metav1.PatchOptions {})
521- if err != nil {
522- return err
523+ useNodeAuthorization := ns .nodeAuthorizedClient != nil
524+ if useNodeAuthorization {
525+ _ , err = ns .nodeAuthorizedClient .CoreV1 ().Nodes ().Patch (context .TODO (), node .Name , types .StrategicMergePatchType , patchByteData , metav1.PatchOptions {})
526+ if err != nil {
527+ return err
528+ }
529+ } else {
530+ nodeToPatch := & corev1.Node {
531+ ObjectMeta : metav1.ObjectMeta {
532+ Name : node .Name ,
533+ },
534+ }
535+ err = ns .client .Patch (context .TODO (), nodeToPatch , client .RawPatch (types .StrategicMergePatchType , patchByteData ))
536+ if err != nil {
537+ return err
538+ }
523539 }
524540
525541 return nil
0 commit comments