virtualcluster/nodes_list.go (27 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package virtualcluster import ( "context" "fmt" "strings" "helm.sh/helm/v3/pkg/release" "github.com/Azure/kperf/helmcli" ) // ListNodeppol lists nodepools added by the vc nodeppool add command. func ListNodepools(_ context.Context, kubeconfigPath string) ([]*release.Release, error) { listCli, err := helmcli.NewListCli(kubeconfigPath, virtualnodeReleaseNamespace) if err != nil { return nil, fmt.Errorf("failed to create helm list client: %w", err) } releases, err := listCli.List() if err != nil { return nil, fmt.Errorf("failed to list nodepool: %w", err) } // NOTE: Skip node controllers res := make([]*release.Release, 0, len(releases)/2) for idx := range releases { r := releases[idx] if strings.HasSuffix(r.Name, reservedNodepoolSuffixName) { continue } res = append(res, r) } return res, nil }