Skip to content

Should be able to grab the loadBalancerIp when using type: "LoadBalancer" #222

@Sleepful

Description

@Sleepful

I had to do this and it took me too much time to figure out 😅

At the very least, this sample should be easy to find in the docs.

Even better would be to grab the IP from a property of the Release object, but it does not seem to be there.

import { interpolate, Output } from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";

const ingressNginx = new k8s.helm.v3.Release(
  "nginx-ingress",
  {
    chart: "ingress-nginx",
    version: "4.2.0",
    repositoryOpts: {
      repo: "https://kubernetes.github.io/ingress-nginx",
    },
    values: {
      controller: {
        publishService: {
          enabled: true,
        },
        service: {
          type: "LoadBalancer",
        },
      },
    },
    // namespace: nsBe.metadata.name,
    skipAwait: false
  },
  {
    provider,
    // deleteBeforeReplace: true
  }
);


  const serviceFQN = interpolate`${ingressNginx.id}-ingress-nginx-controller`
  // serviceFQN.apply(r => console.log(r))
  const ingressCtrlSvc = k8s.core.v1.Service.get("ingress-ctrl-svc",
    serviceFQN,
    { dependsOn: ingressNginx }
  );

  // ingressCtrlSvc.spec.apply(r => console.log(r))
  // ingressCtrlSvc.status.loadBalancer.ingress.apply(r => console.log(r))
  return ingressCtrlSvc.status.loadBalancer.ingress[0].ip

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions