Skip to content

Commit f7d7663

Browse files
authored
Merge pull request #3723 from divyenpatel/multi-vc-fix
fix getNodeTopologyInfo for multi vCenter deployment
2 parents 8940fba + 7f71f27 commit f7d7663

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

pkg/common/cns-lib/node/manager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ type Manager interface {
4848
DiscoverNode(ctx context.Context, nodeUUID string) error
4949
// GetK8sNode returns Kubernetes Node object for the given node name
5050
GetK8sNode(ctx context.Context, nodename string) (*v1.Node, error)
51-
// GetNode refreshes and returns the VirtualMachine for a registered node
52-
// given its UUID. If datacenter is present, GetNode will search within this
51+
// GetNodeVMAndUpdateCache refreshes and returns the VirtualMachine for a registered node
52+
// given its UUID. If datacenter is present, GetNodeVMAndUpdateCache will search within this
5353
// datacenter given its UUID. If not, it will search in all registered
5454
// datacenters.
5555
GetNodeVMAndUpdateCache(ctx context.Context, nodeUUID string, dc *vsphere.Datacenter) (*vsphere.VirtualMachine, error)

pkg/syncer/cnsoperator/controller/csinodetopology/csinodetopology_controller.go

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package csinodetopology
1818

1919
import (
2020
"context"
21+
"errors"
2122
"fmt"
2223
"strings"
2324
"sync"
@@ -40,10 +41,10 @@ import (
4041
"sigs.k8s.io/controller-runtime/pkg/predicate"
4142
"sigs.k8s.io/controller-runtime/pkg/reconcile"
4243
"sigs.k8s.io/controller-runtime/pkg/source"
44+
volumes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/volume"
4345
cnsoperatortypes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/syncer/cnsoperator/types"
4446

4547
"sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/node"
46-
volumes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/volume"
4748
cnsvsphere "sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/vsphere"
4849
cnsconfig "sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/config"
4950
"sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/utils"
@@ -206,7 +207,6 @@ type ReconcileCSINodeTopology struct {
206207
configInfo *cnsconfig.ConfigurationInfo
207208
recorder record.EventRecorder
208209
enableTKGsHAinGuest bool
209-
isMultiVCFSSEnabled bool
210210
vmOperatorClient client.Client
211211
supervisorNamespace string
212212
}
@@ -281,7 +281,7 @@ func (r *ReconcileCSINodeTopology) reconcileForVanilla(ctx context.Context, requ
281281
nodeVM, err = nodeManager.GetNodeVMByNameAndUpdateCache(ctx, nodeID)
282282
}
283283
if err != nil {
284-
if err == node.ErrNodeNotFound {
284+
if errors.Is(err, node.ErrNodeNotFound) {
285285
log.Warnf("Node %q is not yet registered in the node manager. Error: %+v", nodeID, err)
286286
return reconcile.Result{}, err
287287
}
@@ -316,7 +316,7 @@ func (r *ReconcileCSINodeTopology) reconcileForVanilla(ctx context.Context, requ
316316
}
317317

318318
// Fetch topology labels for nodeVM.
319-
topologyLabels, err := getNodeTopologyInfo(ctx, nodeVM, r.configInfo.Cfg, r.isMultiVCFSSEnabled)
319+
topologyLabels, err := getNodeTopologyInfo(ctx, nodeVM, r.configInfo.Cfg)
320320
if err != nil {
321321
msg := fmt.Sprintf("failed to fetch topology information for the nodeVM %q. Error: %v",
322322
instance.Name, err)
@@ -485,28 +485,19 @@ func updateCRStatus(ctx context.Context, r *ReconcileCSINodeTopology, instance *
485485
return nil
486486
}
487487

488-
func getNodeTopologyInfo(ctx context.Context, nodeVM *cnsvsphere.VirtualMachine, cfg *cnsconfig.Config,
489-
isMultiVCFSSEnabled bool) ([]csinodetopologyv1alpha1.TopologyLabel, error) {
488+
func getNodeTopologyInfo(ctx context.Context, nodeVM *cnsvsphere.VirtualMachine,
489+
cfg *cnsconfig.Config) ([]csinodetopologyv1alpha1.TopologyLabel, error) {
490490
log := logger.GetLogger(ctx)
491491
var (
492492
vcenter *cnsvsphere.VirtualCenter
493493
err error
494494
)
495495
// Get VC instance.
496-
if isMultiVCFSSEnabled {
497-
vcenter, err = cnsvsphere.GetVirtualCenterInstanceForVCenterHost(ctx, nodeVM.VirtualCenterHost, true)
498-
if err != nil {
499-
return nil, logger.LogNewErrorf(log, "failed to get vCenterInstance for vCenter Host: %q, err: %v",
500-
nodeVM.VirtualCenterHost, err)
501-
}
502-
} else {
503-
vcenter, err = cnsvsphere.GetVirtualCenterInstance(ctx, &cnsconfig.ConfigurationInfo{Cfg: cfg}, false)
504-
if err != nil {
505-
log.Errorf("failed to get virtual center instance with error: %v", err)
506-
return nil, err
507-
}
496+
vcenter, err = cnsvsphere.GetVirtualCenterInstanceForVCenterHost(ctx, nodeVM.VirtualCenterHost, true)
497+
if err != nil {
498+
return nil, logger.LogNewErrorf(log, "failed to get vCenterInstance for vCenter Host: %q, err: %v",
499+
nodeVM.VirtualCenterHost, err)
508500
}
509-
510501
// Get tag manager instance.
511502
tagManager, err := cnsvsphere.GetTagManager(ctx, vcenter)
512503
if err != nil {

0 commit comments

Comments
 (0)