Skip to content

Attach Kubernetes LoadBalancer IPs

POST
/tenant_clusters/{tenant_cluster_id}/lb-ips/
curl --request POST \
--url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/tenant_clusters/{tenant_cluster_id}/lb-ips/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"reserved_ip_ids": [
358,
359
]
}'

Attaches reserved IPs to the cluster’s LoadBalancer IP pool. A Service of type LoadBalancer then takes one of them as its address; with none free, its EXTERNAL-IP stays <pending>.

The cluster must be worker_joining, worker_joined, or ready. The addresses must be public reserved IPs in this project and region that are not in use: a VPC IP, or an IP attached to another cluster, is refused.

Note: Get reserved IP IDs from the Reserve IP section of the API.

tenant_cluster_id
required
integer

Kubernetes cluster ID, as returned by List Kubernetes Clusters.

project_id
required
integer

Project ID

active_iam
integer

Active IAM ID (To access contact person account) Find your Active IAM ID here

location
required
string
Allowed values: Delhi Chennai

Location

Media typeapplication/json
object
reserved_ip_ids
required

IDs of available public reserved IPs in this project and region.

Array<integer>
>= 1 items

Example

{
"reserved_ip_ids": [
358,
359
]
}

The IPs are attached.

Media typeapplication/json
object
code
integer
data
object
lb_ips
Array<object>
object
id
integer
ip_address
string
status

Unavailable once the address is attached to the cluster.

string
location
string
created_at
string format: date-time
errors
object
message
string

Example

{
"code": 201,
"data": {
"lb_ips": [
{
"id": 358,
"ip_address": "203.0.113.10",
"status": "Unavailable",
"location": "Delhi",
"created_at": "2026-10-20T10:15:00Z"
}
]
},
"errors": {},
"message": "2 reserved IP(s) attached to the cluster LoadBalancer pool."
}