agreeable-action-67810
02/13/2025, 11:07 AMnodes, err := v1.GetNodeList(ctx, "allnodes", nil, nil, pulumi.Provider(n.KubernetesProvider))
if err != nil {
fmt.Printf("failed to get NODE LIST: %w", err)
return err
}
nodes.Items.ApplyT(func(items []v1.Node) error {
for _, node := range items {
pulumi.Printf("Node Name: %s\n", node.Metadata.Name)
}
return nil
})
Above is code i am trying but unsuccessful. Any help would be appreciated . Thanks!modern-zebra-45309
02/13/2025, 11:10 AMagreeable-action-67810
02/13/2025, 11:11 AMagreeable-action-67810
02/13/2025, 11:12 AMresource ID is required for lookup and cannot be empty
modern-zebra-45309
02/13/2025, 11:14 AMv1.GetNodeList
come from? I can't find it in the Pulumi docs or code.agreeable-action-67810
02/13/2025, 11:15 AM"<http://github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1|github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1>"
agreeable-action-67810
02/13/2025, 11:17 AMpackage main
import (
"<http://github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1|github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1>"
"<http://github.com/pulumi/pulumi/sdk/v3/go/pulumi|github.com/pulumi/pulumi/sdk/v3/go/pulumi>"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Lookup the NodeList
nodeList, err := v1.GetNodeList(ctx, &v1.GetNodeListArgs{})
if err != nil {
return err
}
// Export the nodes' names
for _, node := range nodeList.Items {
ctx.Export("nodeName", pulumi.String(node.Metadata.Name))
}
return nil
})
}
agreeable-action-67810
02/13/2025, 11:17 AMmodern-zebra-45309
02/13/2025, 11:18 AMagreeable-action-67810
02/13/2025, 11:19 AMmodern-zebra-45309
02/13/2025, 11:21 AMGetNodeList
is not looking up the list of nodes, but is looking up an existing NodeList resource: https://github.com/pulumi/pulumi-kubernetes/blob/9da6bcffc28b49e68ce0469056d5d27c7d29ed53/sdk/go/kubernetes/core/v1/nodeList.go#L51-L61agreeable-action-67810
02/13/2025, 11:22 AMmodern-zebra-45309
02/13/2025, 11:22 AMmodern-zebra-45309
02/13/2025, 11:23 AMagreeable-action-67810
02/13/2025, 11:27 AMdata "kubernetes_nodes"
and passing nodegroup as the label after which we apply taint to those nodes using resource "kubernetes_node_taint"
agreeable-action-67810
02/13/2025, 11:27 AMmodern-zebra-45309
02/13/2025, 11:31 AMdata
is similar to Pulumi's Get...
, it gives you access to a read-only resource representation.modern-zebra-45309
02/13/2025, 11:32 AMkubernetes_nodes
and kubernetes_node_taint
in the Pulumi Kubernetes provider. As far as I know, these do not directly correspond to Kubernetes resources.modern-zebra-45309
02/13/2025, 11:34 AMGetNode
, you cannot modify it (just like you cannot modify a TF data
object).agreeable-action-67810
02/13/2025, 11:38 AMGetNode
works? Like if i pass nodegroup name as the parameter or match label it gives nodes?agreeable-action-67810
02/13/2025, 11:38 AMmodern-zebra-45309
02/13/2025, 11:40 AMmodern-zebra-45309
02/13/2025, 11:41 AMGetNode
is equivalent to data "kubernetes_node"
, so it will give you a specific node resource but you have to know its nameagreeable-action-67810
02/13/2025, 11:42 AMmodern-zebra-45309
02/13/2025, 11:43 AMmodern-zebra-45309
02/13/2025, 11:45 AMGetNode
only works if you know the name of the node already.agreeable-action-67810
02/13/2025, 11:45 AMmodern-zebra-45309
02/13/2025, 11:48 AMagreeable-action-67810
02/13/2025, 11:49 AMagreeable-action-67810
02/13/2025, 11:49 AMmodern-zebra-45309
02/13/2025, 11:51 AMagreeable-action-67810
02/13/2025, 11:52 AM