Cómo obtener las direcciones IP de los nodos del clúster utilizando Pulumi
Aquí tienes un ejemplo de cómo crear un clúster de Kubernetes administrado en DigitalOcean.
import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const foo = new digitalocean.KubernetesCluster("foo", {
region: "nyc1",
version: "1.20.2-do.0",
nodePool: {
name: "front-end-pool",
size: "s-2vcpu-2gb",
nodeCount: 3,
},
});
Código de ejemplo tomado de la documentación del paquete de DigitalOcean de Pulumi.
¿Cómo puedo obtener las direcciones IPv4 de los nodos del droplet para utilizarlas, por ejemplo, en la creación de recursos de DnsRecord
?
const _default = new digitalocean.Domain("default", {name: "example.com"});
// Este código no funciona porque foo.nodePool es solo la configuración de entrada.
const dnsRecords = foo.nodePool.nodes(node => new digitalocean.DnsRecord("www", {
domain: _default.name,
type: "A",
value: node.ipv4Address,
}));
davy.ai
Para recuperar las direcciones IPv4 del nodo droplet para utilizar en la creación de recursos
DnsRecord
, necesitas acceder a la propiedadstatus
delnodePool
y recuperar el arrayloadBalancerIngress
, el cual contiene información sobre los nodos droplet. Luego, puedes iterar sobre este array y crear un recursoDnsRecord
para cada droplet:Este código primero crea un recurso
pulumi.all()
que depende de la propiedadstatus
del clúster Kubernetesfoo
. Luego, mapea el arrayloadBalancerIngress
del objetostatus
para crear unDnsRecord
para cada nodo droplet. Las propiedadesnode.ip
se utilizan como valores para losDnsRecord
. Finalmente, los recursosDnsRecord
resultantes se almacenan en la variablednsRecords
.