cmd/utils/k8s.go (20 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package utils import ( "context" "strings" "github.com/kinvolk/inspektor-gadget/pkg/k8sutil" metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/cli-runtime/pkg/genericclioptions" ) var KubernetesConfigFlags = genericclioptions.NewConfigFlags(false) // GetNodeResourceID retrieve the Azure resource ID of a given node. In other // words, the resource ID of the VM scale set instance. It returns format: // /subscriptions/mySubID/resourceGroups/myRG/providers/myProvider/virtualMachineScaleSets/myVMSS/virtualMachines/myInsID func GetNodeResourceID(ctx context.Context, nodeName string) (string, error) { client, err := k8sutil.NewClientsetFromConfigFlags(KubernetesConfigFlags) if err != nil { return "", err } nodeRes, err := client.CoreV1().Nodes().Get(ctx, nodeName, metaV1.GetOptions{}) if err != nil { return "", err } return strings.TrimPrefix(nodeRes.Spec.ProviderID, "azure://"), nil }