Logo
OpenScaler
API DocumentationLoad Balancer Frontends

Create a Frontend

POST
/v1/lbs/{lb_id}/frontends

Create a new frontend on the given load balancer.

A frontend is the entry point for incoming traffic. It defines which ports to listen on, what protocol to use, and optional ACL rules to route traffic to different backends.

Authorization

bearer_auth
AuthorizationBearer <token>

Authentication

Create an API token on Profile, or with osctl auth login. Send it in the Authorization header:

Authorization: Bearer os1_...

Do not use the Keycloak web-session JWT as an API token. Keep the secret secure and do not share it.

In: header

Path Parameters

lb_id*string

A unique identifier for a load balancer instance.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request body for creating or updating a frontend.

Response Body

application/json

application/json

text/pain

application/json

application/json

curl -X POST "https://example.com/v1/lbs/550e8400-e29b-41d4-a716-446655440000/frontends" \  -H "Content-Type: application/json" \  -d '{    "name": "https-frontend",    "mode": "http",    "binds": [      {        "port": 443      }    ]  }'
{  "name": "https-frontend",  "mode": "http",  "default_backend": "main-backend",  "binds": [    {      "port": 443,      "ssl": true,      "ssl_certificate": "my-cert",      "use_http3": false    }  ],  "acls": [    {      "name": "is_api",      "criterion": "path_beg",      "value": "/api"    }  ],  "backends": [    {      "backend": "api-backend",      "cond": "if",      "test": "is_api"    }  ],  "options": {    "redirect_ssl": true,    "forward_for": true  }}
{  "errors": [    {      "message": "'vcpus' field must be an integer",      "field": "resource_id"    }  ]}
"Access denied"
{  "errors": [    {      "message": "User not initialized. Send POST /v1/init, then retry the request."    }  ]}
{  "errors": [    {      "message": "VM with ID 23 not found"    }  ]}