Another question about ingress controllers. I am ...
# kubernetes
v
Another question about ingress controllers. I am trying to assign a private ip to an internal loadbalancer that will be used with nginx ingress controller. Problem is the specified ip address is being ignored.
Copy code
ingress = IngressController(
    'ingress-nginx-private',
    helm_options=ReleaseArgs(
        namespace="ingress-private",
        version="4.1.3"
    ),
    controller=ControllerArgs(
        service=ControllerServiceArgs(
            load_balancer_ips="172.28.0.111",
            #    enabled=True,
            # ),
            annotations={
                "<http://service.beta.kubernetes.io/azure-dns-label-name|service.beta.kubernetes.io/azure-dns-label-name>": f"{environment}private",
                "<http://service.beta.kubernetes.io/azure-load-balancer-internal|service.beta.kubernetes.io/azure-load-balancer-internal>": "true"
            }
        ),
This should work with aks and kubernetes
Copy code
helm install stable/nginx-ingress --namespace kube-system --name general-ingress --set rbac.create=false --set rbac.createRole=false --set rbac.createClusterRole=false --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"='"true"' --set controller.service.loadBalancerIP="10.240.0.60"
But the above pulumi does not assign ip address. It does setup an internal load balancer though.
Any ideas on how to set loadbalancer ip for private load balaner?
When I check the deployment in lense there is no reference of the load balancer ip. I am wondering if this is a bug with pulumi?
I tried with helm and it works FYI
Copy code
helm install test-ingress stable/nginx-ingress    --namespace=ingress-private    --set rbac.create=true    --set controller.service.loadBalancerIP="172.24.204.112"    --set controller.replicaCount=1    --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"="true"
This seems to be a bug or misconfiguration with pulumi.
Can someone confirm that this is the right syntax?
Copy code
ingress = IngressController(
    'ingress-nginx-private',
    helm_options=ReleaseArgs(
        namespace="ingress-private",
        version="4.1.3"
    ),
    controller=ControllerArgs(
        service=ControllerServiceArgs(
            load_balancer_ips="172.28.0.111",
            #    enabled=True,
            # ),
            annotations={
                "<http://service.beta.kubernetes.io/azure-dns-label-name|service.beta.kubernetes.io/azure-dns-label-name>": f"{environment}private",
                "<http://service.beta.kubernetes.io/azure-load-balancer-internal|service.beta.kubernetes.io/azure-load-balancer-internal>": "true"
            }
        ),
I just got off a call with azure aks support and we ruled out issues with the aks cluster and verified that things should work with helm chart.
next steps may be to use the chart resource instead of the ingress controller resource.
As it appears to be broken with regard to applying loadbalancerIP.