brief-salesmen-62354
03/14/2025, 2:13 PMimport pulumi
import pulumi_kubernetes as k8s
from pulumi_kubernetes.helm.v3 import Chart, ChartOpts
from pulumi_kubernetes_ingress_nginx import IngressController
from pulumi_kubernetes_ingress_nginx import ControllerArgs, ControllerPublishServiceArgs,ControllerServiceArgs
from pulumi_kubernetes.core.v1 import Service
# Install NGINX Ingress Controller with Static IP
nginx_ingress = IngressController(
"nginx-ingress-controller",
fullname_override="nginx-ingress-controller",
name_override="nginx-ingress",
controller=ControllerArgs(
publish_service=ControllerPublishServiceArgs(enabled=True),
config={"proxy-body-size": "50m"}, # Custom config
service=ControllerServiceArgs(
type="LoadBalancer",
load_balancer_ip="34.125.27.78", # Your reserved static IP
),
),
opts=pulumi.ResourceOptions(provider=k8s_provider),
)
spec = pulumi.Output.all(frontend_service.metadata.name, api_service.metadata.name).apply(lambda names: {
"rules": [
{
"http": {
"host": "<http://temp.instel.ai|temp.instel.ai>",
"paths": [
{
"path": "/api",
"pathType": "Prefix",
"backend": {
"service": {
"name": names[1], # api-service name
"port": { "number": 9000 }
}
}
},
{
"path": "/",
"pathType": "Prefix",
"backend": {
"service": {
"name": names[0], # frontend name
"port": { "number": 3000 }
}
}
}
]
}
}
]
})
# Define the Ingress Resource
app_ingress = k8s.networking.v1.Ingress(
"app-ingress",
metadata={
"name": "app-ingress",
"annotations": {
"<http://kubernetes.io/ingress.class|kubernetes.io/ingress.class>": "nginx",
"<http://nginx.ingress.kubernetes.io/rewrite-target|nginx.ingress.kubernetes.io/rewrite-target>": "/", # Ensure correct path rewriting
},
},
spec=spec,
opts=pulumi.ResourceOptions(provider=k8s_provider, depends_on=[nginx_ingress]),
)
I am trying to provide a static ip to the load balancer but still its getting assigned to random temp ip address
any ideas how to solve this issue