Exoscale Public API

Infrastructure automation API, allowing programmatic access to all Exoscale products and services.

This documentation refers to an alpha version, and is currently not officially supported.

The OpenAPI Specification source of this documentation can be obtained here:

The currently supported API documentation can be consulted here:
https://community.exoscale.com/api/

This is the documentation for version 2.0.0-alpha2 of the API. Last update on Jan 14, 2021.

Base URL
{protocol}://{environment}-{zone}.exoscale.com/v2.alpha

API Request Signature

In order to authenticate legitimate users, the Exoscale API requires incoming requests to be signed using valid Exoscale API account credentials with the following mechanism.

Signature Mechanism

The message (i.e. content) to sign contains several segments concatenated using a line return character (\n). All segments must be included and in the described order, including empty ones depending on the context of the request (e.g. no request body).
* Request method and request URL (path only), separated by a space character
* Request body
* Request URL parameters (Query String) values, concatenated without separator. The matching parameter names have to be specified in the resulting signature header signed-query-args= pragma, separated by semicolons (e.g. p1;p2;pN).
* Request header values, concatenated without separator (none at the moment, leave empty)
* Request expiration date in UNIX timestamp format
Example message to sign for GET /v2.alpha/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0?p1=v1&p2=v2 :

GET /v2.alpha/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0
v1v2
1599140767

The request signature consists of the HMAC hash of the base64-encoded message and the Exoscale API secret using the SHA265 function:

signature = HMAC_SHA256(Exoscale API secret, BASE64_ENCODE(message))

Finally, the computed signature must be added to the API request in a Authorization header such as:

Authorization: EXO2-HMAC-SHA256 credential=,expires=,signature=

Example API query:

GET /v2.alpha/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0?p1=v1&p2=v2 HTTP/1.1
Host: api-ch-gva-2.exoscale.com
Authorization: EXO2-HMAC-SHA256 credential=EXO29147e9f89102b7ac1e88514,signed-query-args=p1;p2,expires=1599140767,signature=2AOBQsbElQb4FpKT/FM/9T4NobjlmZkSGvvdUth/xlY=

Reference Implementations

You can look up the following existing reference implementations:
* Go: github.com/exoscale/egoscale/api/v2 > SecurityProviderExoscale.signRequest
* Python: requests-exoscale-auth > ExoscaleV2Auth


Network load balancer

A Network Load Balancer (NLB) is a Layer 4 (TCP/UDP) load balancer that distributes incoming traffic to Compute instances managed by an Instance Pool.

Read more

Retrieve Load Balancer Service details

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Responses
  • 200 object

    200

    • description string

      Load balancer service description

    • protocol Required / string

      Load balanced protocol

      Values are tcp and udp.

    • name Required / string

      Load balancer service name

    • state string

      Load balancer service state

      Values are creating, deleting, running, updating, and error.

    • target-port Required / integer(int64)

      Port on which the balanced traffic will be forwarded to on the receiving instance

    • port Required / integer(int64)

      Port exposed on the load balancer's public IP

    • instance-pool Required / object

      Instance Pool

      • instance-pool.anti-affinity-groups array[object]

        Instance Pool Anti-affinity Groups

        • instance-pool.anti-affinity-groups.id string(uuid)

          Anti-affinity Group ID

        • instance-pool.anti-affinity-groups.name string

          Anti-affinity Group name

        • instance-pool.anti-affinity-groups.description string

          Anti-affinity Group description

        • instance-pool.anti-affinity-groups.instances array[object]

          Anti-affinity Group instances

          • instance-pool.anti-affinity-groups.instances.id string(uuid)

            Instance ID

          • instance-pool.anti-affinity-groups.instances.name string

            Instance name

      • instance-pool.description string

        Instance Pool description

      • instance-pool.security-groups array[object]

        Instance Pool Security Groups

        • instance-pool.security-groups.id string(uuid)

          Security Group ID

        • instance-pool.security-groups.name string

          Security Group name

        • instance-pool.security-groups.description string

          Security Group description

        • instance-pool.security-groups.rules array[object]

          Security Group rules

          • instance-pool.security-groups.rules.description string

            Security Group rule description

          • instance-pool.security-groups.rules.start-port integer(int64)

            Start port of the range

            Minimum value is 1, maximum value is 65535.

          • instance-pool.security-groups.rules.protocol string

            Network protocol

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • instance-pool.security-groups.rules.icmp object

            ICMP details

            • instance-pool.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • instance-pool.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • instance-pool.security-groups.rules.end-port integer(int64)

            End port of the range

            Minimum value is 1, maximum value is 65535.

          • instance-pool.security-groups.rules.security-group object

            Security Group

            • instance-pool.security-groups.rules.security-group.id string(uuid)

              Security Group ID

            • instance-pool.security-groups.rules.security-group.name Required / string

              Security Group name

          • instance-pool.security-groups.rules.id string(uuid)

            Security Group rule ID

          • instance-pool.security-groups.rules.network string

            CIDR-formatted network allowed

          • instance-pool.security-groups.rules.flow-direction string

            Network flow direction to match

            Values are ingress and egress.

      • instance-pool.name string

        Instance Pool name

      • instance-pool.instance-type object

        Compute instance type

        • instance-pool.instance-type.id string(uuid)

          Instance type ID

        • instance-pool.instance-type.size string

          Instance type size

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • instance-pool.instance-type.family string

          Instance type family

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • instance-pool.instance-type.cpus integer(int64)

          CPU count

        • instance-pool.instance-type.gpus integer(int64)

          GPU count

        • instance-pool.instance-type.authorized boolean

          Requires authorization or publicly available

        • instance-pool.instance-type.memory integer(int64)

          Available memory

      • instance-pool.private-networks array[object]

        Instance Pool Private networks

        • instance-pool.private-networks.id string(uuid)

          Private network ID

        • instance-pool.private-networks.name string

          Private network name

        • instance-pool.private-networks.description string

          Private network description

        • instance-pool.private-networks.netmask string(ipv4)

          Private network netmask

        • instance-pool.private-networks.start-ip string(ipv4)

          Private network start ip address

        • instance-pool.private-networks.end-ip string(ipv4)

          Private network end ip address

      • instance-pool.template object

        Instance template

        • instance-pool.template.description string

          Template description

        • instance-pool.template.ssh-key-enabled boolean

          Enable SSH key based login

        • instance-pool.template.family string

          Template family

        • instance-pool.template.name string

          Template name

        • instance-pool.template.default-user string

          Template default user

        • instance-pool.template.size integer(int64)

          Template size

        • instance-pool.template.password-enabled boolean

          Enable password based login

        • instance-pool.template.build string

          Template build

        • instance-pool.template.checksum string

          Template md5 checksum

        • instance-pool.template.boot-mode string

          Boot mode (default: legacy)

          Values are legacy and uefi.

        • instance-pool.template.id string(uuid)

          Template ID

        • instance-pool.template.url string

          Template source URL

        • instance-pool.template.version string

          Template version

        • instance-pool.template.created-at string(date-time)

          Template creation date

        • instance-pool.template.visibility string

          Template visibility

          Values are private and public.

      • instance-pool.state string

        Instance Pool state

        Values are scaling-up, scaling-down, destroying, creating, and running.

      • instance-pool.size integer(int64)

        Number of instances

      • instance-pool.ssh-key object

        SSH key

        • instance-pool.ssh-key.name string

          SSH key name

        • instance-pool.ssh-key.fingerprint string

          SSH key fingerprint

      • instance-pool.user-data string

        Instances Cloud-init user-data

      • instance-pool.manager object

        Resource manager

        • instance-pool.manager.id string(uuid)

          Manager ID

        • instance-pool.manager.type string

          Manager type

          Values are sks-nodepool.

      • instance-pool.instances array[object]

        Instances

        • instance-pool.instances.id string(uuid)

          Instance ID

        • instance-pool.instances.name string

          Instance name

      • instance-pool.ipv6-enabled boolean

        Enable IPv6 for instances

      • instance-pool.id string(uuid)

        Instance Pool ID

      • instance-pool.disk-size integer(int64)

        Instances disk size

        Minimum value is 10, maximum value is 50000.

    • strategy Required / string

      Load balancing strategy

      Values are round-robin and source-hash.

    • healthcheck Required / object

      Elastic IP address healthcheck

      • healthcheck.mode Required / string

        Healthcheck mode

        Values are tcp, http, and https.

      • healthcheck.interval integer(int64)

        Healthcheck interval

      • healthcheck.uri string

        Healthcheck URI

      • healthcheck.port Required / integer(int64)

        Healthcheck port

      • healthcheck.timeout integer(int64)

        Healthcheck timeout value

      • healthcheck.retries integer(int64)

        Number of retries before considering a service failed

      • healthcheck.tls-sni string

        SNI domain for https healthchecks

    • id string(uuid)

      Load balancer service ID

    • healthcheck-status array[object]

      Healthcheck status per backend server

      • healthcheck-status.public-ip string(ipv4)

        Backend server public IP

      • healthcheck-status.status string

        Status of the instance's healthcheck

        Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json"
Response example (200)
{ "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] }

Update a Load Balancer Service

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Body
  • name string
  • description string
  • protocol string

    Values are tcp and udp.

  • strategy string

    Values are round-robin and source-hash.

  • port integer(int64)
  • target-port integer(int64)
  • healthcheck object

    Elastic IP address healthcheck

    • healthcheck.mode Required / string

      Healthcheck mode

      Values are tcp, http, and https.

    • healthcheck.interval integer(int64)

      Healthcheck interval

    • healthcheck.uri string

      Healthcheck URI

    • healthcheck.port Required / integer(int64)

      Healthcheck port

    • healthcheck.timeout integer(int64)

      Healthcheck timeout value

    • healthcheck.retries integer(int64)

      Number of retries before considering a service failed

    • healthcheck.tls-sni string

      SNI domain for https healthchecks

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json" \ -d '{"name":"string","description":"string","protocol":"tcp","strategy":"round-robin","port":42,"target-port":42,"healthcheck":{"mode":"tcp","interval":42,"uri":"string","port":42,"timeout":42,"retries":42,"tls-sni":"string"}}'
Request payload example
{ "name": "string", "description": "string", "protocol": "tcp", "strategy": "round-robin", "port": 42, "target-port": 42, "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" } }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a Load Balancer Service

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List Load Balancers

Responses
  • 200 object

    200

    • load-balancers array[object]
      • load-balancers.id string(uuid)

        Load balancer ID

      • load-balancers.description string

        Load balancer description

      • load-balancers.name Required / string

        Load balancer name

      • load-balancers.state string

        Load balancer state

        Values are creating, deleting, running, and error.

      • load-balancers.created-at string(date-time)

        Load balancer creation date

      • load-balancers.ip string(ipv4)

        Load balancer public IP

      • load-balancers.services array[object]

        Load balancer services

        • load-balancers.services.description string

          Load balancer service description

        • load-balancers.services.protocol Required / string

          Load balanced protocol

          Values are tcp and udp.

        • load-balancers.services.name Required / string

          Load balancer service name

        • load-balancers.services.state string

          Load balancer service state

          Values are creating, deleting, running, updating, and error.

        • load-balancers.services.target-port Required / integer(int64)

          Port on which the balanced traffic will be forwarded to on the receiving instance

        • load-balancers.services.port Required / integer(int64)

          Port exposed on the load balancer's public IP

        • load-balancers.services.instance-pool Required / object

          Instance Pool

          • load-balancers.services.instance-pool.anti-affinity-groups array[object]

            Instance Pool Anti-affinity Groups

            • load-balancers.services.instance-pool.anti-affinity-groups.id string(uuid)

              Anti-affinity Group ID

            • load-balancers.services.instance-pool.anti-affinity-groups.name string

              Anti-affinity Group name

            • load-balancers.services.instance-pool.anti-affinity-groups.description string

              Anti-affinity Group description

            • load-balancers.services.instance-pool.anti-affinity-groups.instances array[object]

              Anti-affinity Group instances

              • load-balancers.services.instance-pool.anti-affinity-groups.instances.id string(uuid)

                Instance ID

              • load-balancers.services.instance-pool.anti-affinity-groups.instances.name string

                Instance name

          • load-balancers.services.instance-pool.description string

            Instance Pool description

          • load-balancers.services.instance-pool.security-groups array[object]

            Instance Pool Security Groups

            • load-balancers.services.instance-pool.security-groups.id string(uuid)

              Security Group ID

            • load-balancers.services.instance-pool.security-groups.name string

              Security Group name

            • load-balancers.services.instance-pool.security-groups.description string

              Security Group description

            • load-balancers.services.instance-pool.security-groups.rules array[object]

              Security Group rules

              • load-balancers.services.instance-pool.security-groups.rules.description string

                Security Group rule description

              • load-balancers.services.instance-pool.security-groups.rules.start-port integer(int64)

                Start port of the range

                Minimum value is 1, maximum value is 65535.

              • load-balancers.services.instance-pool.security-groups.rules.protocol string

                Network protocol

                Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

              • load-balancers.services.instance-pool.security-groups.rules.icmp object

                ICMP details

                • load-balancers.services.instance-pool.security-groups.rules.icmp.code integer(int64)

                  Minimum value is 0, maximum value is 254.

                • load-balancers.services.instance-pool.security-groups.rules.icmp.type integer(int64)

                  Minimum value is 0, maximum value is 254.

              • load-balancers.services.instance-pool.security-groups.rules.end-port integer(int64)

                End port of the range

                Minimum value is 1, maximum value is 65535.

              • load-balancers.services.instance-pool.security-groups.rules.security-group object

                Security Group

                • load-balancers.services.instance-pool.security-groups.rules.security-group.id string(uuid)

                  Security Group ID

                • load-balancers.services.instance-pool.security-groups.rules.security-group.name Required / string

                  Security Group name

              • load-balancers.services.instance-pool.security-groups.rules.id string(uuid)

                Security Group rule ID

              • load-balancers.services.instance-pool.security-groups.rules.network string

                CIDR-formatted network allowed

              • load-balancers.services.instance-pool.security-groups.rules.flow-direction string

                Network flow direction to match

                Values are ingress and egress.

          • load-balancers.services.instance-pool.name string

            Instance Pool name

          • load-balancers.services.instance-pool.instance-type object

            Compute instance type

            • load-balancers.services.instance-pool.instance-type.id string(uuid)

              Instance type ID

            • load-balancers.services.instance-pool.instance-type.size string

              Instance type size

              Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

            • load-balancers.services.instance-pool.instance-type.family string

              Instance type family

              Values are gpu2, gpu, memory, storage, standard, and cpu.

            • load-balancers.services.instance-pool.instance-type.cpus integer(int64)

              CPU count

            • load-balancers.services.instance-pool.instance-type.gpus integer(int64)

              GPU count

            • load-balancers.services.instance-pool.instance-type.authorized boolean

              Requires authorization or publicly available

            • load-balancers.services.instance-pool.instance-type.memory integer(int64)

              Available memory

          • load-balancers.services.instance-pool.private-networks array[object]

            Instance Pool Private networks

            • load-balancers.services.instance-pool.private-networks.id string(uuid)

              Private network ID

            • load-balancers.services.instance-pool.private-networks.name string

              Private network name

            • load-balancers.services.instance-pool.private-networks.description string

              Private network description

            • load-balancers.services.instance-pool.private-networks.netmask string(ipv4)

              Private network netmask

            • load-balancers.services.instance-pool.private-networks.start-ip string(ipv4)

              Private network start ip address

            • load-balancers.services.instance-pool.private-networks.end-ip string(ipv4)

              Private network end ip address

          • load-balancers.services.instance-pool.template object

            Instance template

            • load-balancers.services.instance-pool.template.description string

              Template description

            • load-balancers.services.instance-pool.template.ssh-key-enabled boolean

              Enable SSH key based login

            • load-balancers.services.instance-pool.template.family string

              Template family

            • load-balancers.services.instance-pool.template.name string

              Template name

            • load-balancers.services.instance-pool.template.default-user string

              Template default user

            • load-balancers.services.instance-pool.template.size integer(int64)

              Template size

            • load-balancers.services.instance-pool.template.password-enabled boolean

              Enable password based login

            • load-balancers.services.instance-pool.template.build string

              Template build

            • load-balancers.services.instance-pool.template.checksum string

              Template md5 checksum

            • load-balancers.services.instance-pool.template.boot-mode string

              Boot mode (default: legacy)

              Values are legacy and uefi.

            • load-balancers.services.instance-pool.template.id string(uuid)

              Template ID

            • load-balancers.services.instance-pool.template.url string

              Template source URL

            • load-balancers.services.instance-pool.template.version string

              Template version

            • load-balancers.services.instance-pool.template.created-at string(date-time)

              Template creation date

            • load-balancers.services.instance-pool.template.visibility string

              Template visibility

              Values are private and public.

          • load-balancers.services.instance-pool.state string

            Instance Pool state

            Values are scaling-up, scaling-down, destroying, creating, and running.

          • load-balancers.services.instance-pool.size integer(int64)

            Number of instances

          • load-balancers.services.instance-pool.ssh-key object

            SSH key

            • load-balancers.services.instance-pool.ssh-key.name string

              SSH key name

            • load-balancers.services.instance-pool.ssh-key.fingerprint string

              SSH key fingerprint

          • load-balancers.services.instance-pool.user-data string

            Instances Cloud-init user-data

          • load-balancers.services.instance-pool.manager object

            Resource manager

            • load-balancers.services.instance-pool.manager.id string(uuid)

              Manager ID

            • load-balancers.services.instance-pool.manager.type string

              Manager type

              Values are sks-nodepool.

          • load-balancers.services.instance-pool.instances array[object]

            Instances

            • load-balancers.services.instance-pool.instances.id string(uuid)

              Instance ID

            • load-balancers.services.instance-pool.instances.name string

              Instance name

          • load-balancers.services.instance-pool.ipv6-enabled boolean

            Enable IPv6 for instances

          • load-balancers.services.instance-pool.id string(uuid)

            Instance Pool ID

          • load-balancers.services.instance-pool.disk-size integer(int64)

            Instances disk size

            Minimum value is 10, maximum value is 50000.

        • load-balancers.services.strategy Required / string

          Load balancing strategy

          Values are round-robin and source-hash.

        • load-balancers.services.healthcheck Required / object

          Elastic IP address healthcheck

          • load-balancers.services.healthcheck.mode Required / string

            Healthcheck mode

            Values are tcp, http, and https.

          • load-balancers.services.healthcheck.interval integer(int64)

            Healthcheck interval

          • load-balancers.services.healthcheck.uri string

            Healthcheck URI

          • load-balancers.services.healthcheck.port Required / integer(int64)

            Healthcheck port

          • load-balancers.services.healthcheck.timeout integer(int64)

            Healthcheck timeout value

          • load-balancers.services.healthcheck.retries integer(int64)

            Number of retries before considering a service failed

          • load-balancers.services.healthcheck.tls-sni string

            SNI domain for https healthchecks

        • load-balancers.services.id string(uuid)

          Load balancer service ID

        • load-balancers.services.healthcheck-status array[object]

          Healthcheck status per backend server

          • load-balancers.services.healthcheck-status.public-ip string(ipv4)

            Backend server public IP

          • load-balancers.services.healthcheck-status.status string

            Status of the instance's healthcheck

            Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer \ -H "Content-Type: application/json"
Response example (200)
{ "load-balancers": [ { "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2021-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] } ] }

Create a Load Balancer

Body
  • id string(uuid)

    Load balancer ID

  • description string

    Load balancer description

  • name Required / string

    Load balancer name

  • state string

    Load balancer state

    Values are creating, deleting, running, and error.

  • created-at string(date-time)

    Load balancer creation date

  • ip string(ipv4)

    Load balancer public IP

  • services array[object]

    Load balancer services

    • services.description string

      Load balancer service description

    • services.protocol Required / string

      Load balanced protocol

      Values are tcp and udp.

    • services.name Required / string

      Load balancer service name

    • services.state string

      Load balancer service state

      Values are creating, deleting, running, updating, and error.

    • services.target-port Required / integer(int64)

      Port on which the balanced traffic will be forwarded to on the receiving instance

    • services.port Required / integer(int64)

      Port exposed on the load balancer's public IP

    • services.instance-pool Required / object

      Instance Pool

      • services.instance-pool.anti-affinity-groups array[object]

        Instance Pool Anti-affinity Groups

        • services.instance-pool.anti-affinity-groups.id string(uuid)

          Anti-affinity Group ID

        • services.instance-pool.anti-affinity-groups.name string

          Anti-affinity Group name

        • services.instance-pool.anti-affinity-groups.description string

          Anti-affinity Group description

        • services.instance-pool.anti-affinity-groups.instances array[object]

          Anti-affinity Group instances

          • services.instance-pool.anti-affinity-groups.instances.id string(uuid)

            Instance ID

          • services.instance-pool.anti-affinity-groups.instances.name string

            Instance name

      • services.instance-pool.description string

        Instance Pool description

      • services.instance-pool.security-groups array[object]

        Instance Pool Security Groups

        • services.instance-pool.security-groups.id string(uuid)

          Security Group ID

        • services.instance-pool.security-groups.name string

          Security Group name

        • services.instance-pool.security-groups.description string

          Security Group description

        • services.instance-pool.security-groups.rules array[object]

          Security Group rules

          • services.instance-pool.security-groups.rules.description string

            Security Group rule description

          • services.instance-pool.security-groups.rules.start-port integer(int64)

            Start port of the range

            Minimum value is 1, maximum value is 65535.

          • services.instance-pool.security-groups.rules.protocol string

            Network protocol

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • services.instance-pool.security-groups.rules.icmp object

            ICMP details

            • services.instance-pool.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • services.instance-pool.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • services.instance-pool.security-groups.rules.end-port integer(int64)

            End port of the range

            Minimum value is 1, maximum value is 65535.

          • services.instance-pool.security-groups.rules.security-group object

            Security Group

            • services.instance-pool.security-groups.rules.security-group.id string(uuid)

              Security Group ID

            • services.instance-pool.security-groups.rules.security-group.name Required / string

              Security Group name

          • services.instance-pool.security-groups.rules.id string(uuid)

            Security Group rule ID

          • services.instance-pool.security-groups.rules.network string

            CIDR-formatted network allowed

          • services.instance-pool.security-groups.rules.flow-direction string

            Network flow direction to match

            Values are ingress and egress.

      • services.instance-pool.name string

        Instance Pool name

      • services.instance-pool.instance-type object

        Compute instance type

        • services.instance-pool.instance-type.id string(uuid)

          Instance type ID

        • services.instance-pool.instance-type.size string

          Instance type size

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • services.instance-pool.instance-type.family string

          Instance type family

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • services.instance-pool.instance-type.cpus integer(int64)

          CPU count

        • services.instance-pool.instance-type.gpus integer(int64)

          GPU count

        • services.instance-pool.instance-type.authorized boolean

          Requires authorization or publicly available

        • services.instance-pool.instance-type.memory integer(int64)

          Available memory

      • services.instance-pool.private-networks array[object]

        Instance Pool Private networks

        • services.instance-pool.private-networks.id string(uuid)

          Private network ID

        • services.instance-pool.private-networks.name string

          Private network name

        • services.instance-pool.private-networks.description string

          Private network description

        • services.instance-pool.private-networks.netmask string(ipv4)

          Private network netmask

        • services.instance-pool.private-networks.start-ip string(ipv4)

          Private network start ip address

        • services.instance-pool.private-networks.end-ip string(ipv4)

          Private network end ip address

      • services.instance-pool.template object

        Instance template

        • services.instance-pool.template.description string

          Template description

        • services.instance-pool.template.ssh-key-enabled boolean

          Enable SSH key based login

        • services.instance-pool.template.family string

          Template family

        • services.instance-pool.template.name string

          Template name

        • services.instance-pool.template.default-user string

          Template default user

        • services.instance-pool.template.size integer(int64)

          Template size

        • services.instance-pool.template.password-enabled boolean

          Enable password based login

        • services.instance-pool.template.build string

          Template build

        • services.instance-pool.template.checksum string

          Template md5 checksum

        • services.instance-pool.template.boot-mode string

          Boot mode (default: legacy)

          Values are legacy and uefi.

        • services.instance-pool.template.id string(uuid)

          Template ID

        • services.instance-pool.template.url string

          Template source URL

        • services.instance-pool.template.version string

          Template version

        • services.instance-pool.template.created-at string(date-time)

          Template creation date

        • services.instance-pool.template.visibility string

          Template visibility

          Values are private and public.

      • services.instance-pool.state string

        Instance Pool state

        Values are scaling-up, scaling-down, destroying, creating, and running.

      • services.instance-pool.size integer(int64)

        Number of instances

      • services.instance-pool.ssh-key object

        SSH key

        • services.instance-pool.ssh-key.name string

          SSH key name

        • services.instance-pool.ssh-key.fingerprint string

          SSH key fingerprint

      • services.instance-pool.user-data string

        Instances Cloud-init user-data

      • services.instance-pool.manager object

        Resource manager

        • services.instance-pool.manager.id string(uuid)

          Manager ID

        • services.instance-pool.manager.type string

          Manager type

          Values are sks-nodepool.

      • services.instance-pool.instances array[object]

        Instances

        • services.instance-pool.instances.id string(uuid)

          Instance ID

        • services.instance-pool.instances.name string

          Instance name

      • services.instance-pool.ipv6-enabled boolean

        Enable IPv6 for instances

      • services.instance-pool.id string(uuid)

        Instance Pool ID

      • services.instance-pool.disk-size integer(int64)

        Instances disk size

        Minimum value is 10, maximum value is 50000.

    • services.strategy Required / string

      Load balancing strategy

      Values are round-robin and source-hash.

    • services.healthcheck Required / object

      Elastic IP address healthcheck

      • services.healthcheck.mode Required / string

        Healthcheck mode

        Values are tcp, http, and https.

      • services.healthcheck.interval integer(int64)

        Healthcheck interval

      • services.healthcheck.uri string

        Healthcheck URI

      • services.healthcheck.port Required / integer(int64)

        Healthcheck port

      • services.healthcheck.timeout integer(int64)

        Healthcheck timeout value

      • services.healthcheck.retries integer(int64)

        Number of retries before considering a service failed

      • services.healthcheck.tls-sni string

        SNI domain for https healthchecks

    • services.id string(uuid)

      Load balancer service ID

    • services.healthcheck-status array[object]

      Healthcheck status per backend server

      • services.healthcheck-status.public-ip string(ipv4)

        Backend server public IP

      • services.healthcheck-status.status string

        Status of the instance's healthcheck

        Values are failure and success.

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer \ -H "Content-Type: application/json" \ -d '{"id":"string","description":"string","name":"string","state":"creating","created-at":"2021-05-04T09:42:00+00:00","ip":"string","services":[{"description":"string","protocol":"tcp","name":"string","state":"creating","target-port":42,"port":42,"instance-pool":{"anti-affinity-groups":[{"id":"string","name":"string","description":"string","instances":[{"id":"string","name":"string"}]}],"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"des...}'
Request payload example
{ "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2021-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Add a Load Balancer Service

URL parameters
  • id Required / string(uuid)
Body
  • description string

    Load balancer service description

  • protocol Required / string

    Load balanced protocol

    Values are tcp and udp.

  • name Required / string

    Load balancer service name

  • state string

    Load balancer service state

    Values are creating, deleting, running, updating, and error.

  • target-port Required / integer(int64)

    Port on which the balanced traffic will be forwarded to on the receiving instance

  • port Required / integer(int64)

    Port exposed on the load balancer's public IP

  • instance-pool Required / object

    Instance Pool

    • instance-pool.anti-affinity-groups array[object]

      Instance Pool Anti-affinity Groups

      • instance-pool.anti-affinity-groups.id string(uuid)

        Anti-affinity Group ID

      • instance-pool.anti-affinity-groups.name string

        Anti-affinity Group name

      • instance-pool.anti-affinity-groups.description string

        Anti-affinity Group description

      • instance-pool.anti-affinity-groups.instances array[object]

        Anti-affinity Group instances

        • instance-pool.anti-affinity-groups.instances.id string(uuid)

          Instance ID

        • instance-pool.anti-affinity-groups.instances.name string

          Instance name

    • instance-pool.description string

      Instance Pool description

    • instance-pool.security-groups array[object]

      Instance Pool Security Groups

      • instance-pool.security-groups.id string(uuid)

        Security Group ID

      • instance-pool.security-groups.name string

        Security Group name

      • instance-pool.security-groups.description string

        Security Group description

      • instance-pool.security-groups.rules array[object]

        Security Group rules

        • instance-pool.security-groups.rules.description string

          Security Group rule description

        • instance-pool.security-groups.rules.start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • instance-pool.security-groups.rules.icmp object

          ICMP details

          • instance-pool.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • instance-pool.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • instance-pool.security-groups.rules.end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.security-group object

          Security Group

          • instance-pool.security-groups.rules.security-group.id string(uuid)

            Security Group ID

          • instance-pool.security-groups.rules.security-group.name Required / string

            Security Group name

        • instance-pool.security-groups.rules.id string(uuid)

          Security Group rule ID

        • instance-pool.security-groups.rules.network string

          CIDR-formatted network allowed

        • instance-pool.security-groups.rules.flow-direction string

          Network flow direction to match

          Values are ingress and egress.

    • instance-pool.name string

      Instance Pool name

    • instance-pool.instance-type object

      Compute instance type

      • instance-pool.instance-type.id string(uuid)

        Instance type ID

      • instance-pool.instance-type.size string

        Instance type size

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-pool.instance-type.family string

        Instance type family

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-pool.instance-type.cpus integer(int64)

        CPU count

      • instance-pool.instance-type.gpus integer(int64)

        GPU count

      • instance-pool.instance-type.authorized boolean

        Requires authorization or publicly available

      • instance-pool.instance-type.memory integer(int64)

        Available memory

    • instance-pool.private-networks array[object]

      Instance Pool Private networks

      • instance-pool.private-networks.id string(uuid)

        Private network ID

      • instance-pool.private-networks.name string

        Private network name

      • instance-pool.private-networks.description string

        Private network description

      • instance-pool.private-networks.netmask string(ipv4)

        Private network netmask

      • instance-pool.private-networks.start-ip string(ipv4)

        Private network start ip address

      • instance-pool.private-networks.end-ip string(ipv4)

        Private network end ip address

    • instance-pool.template object

      Instance template

      • instance-pool.template.description string

        Template description

      • instance-pool.template.ssh-key-enabled boolean

        Enable SSH key based login

      • instance-pool.template.family string

        Template family

      • instance-pool.template.name string

        Template name

      • instance-pool.template.default-user string

        Template default user

      • instance-pool.template.size integer(int64)

        Template size

      • instance-pool.template.password-enabled boolean

        Enable password based login

      • instance-pool.template.build string

        Template build

      • instance-pool.template.checksum string

        Template md5 checksum

      • instance-pool.template.boot-mode string

        Boot mode (default: legacy)

        Values are legacy and uefi.

      • instance-pool.template.id string(uuid)

        Template ID

      • instance-pool.template.url string

        Template source URL

      • instance-pool.template.version string

        Template version

      • instance-pool.template.created-at string(date-time)

        Template creation date

      • instance-pool.template.visibility string

        Template visibility

        Values are private and public.

    • instance-pool.state string

      Instance Pool state

      Values are scaling-up, scaling-down, destroying, creating, and running.

    • instance-pool.size integer(int64)

      Number of instances

    • instance-pool.ssh-key object

      SSH key

      • instance-pool.ssh-key.name string

        SSH key name

      • instance-pool.ssh-key.fingerprint string

        SSH key fingerprint

    • instance-pool.user-data string

      Instances Cloud-init user-data

    • instance-pool.manager object

      Resource manager

      • instance-pool.manager.id string(uuid)

        Manager ID

      • instance-pool.manager.type string

        Manager type

        Values are sks-nodepool.

    • instance-pool.instances array[object]

      Instances

      • instance-pool.instances.id string(uuid)

        Instance ID

      • instance-pool.instances.name string

        Instance name

    • instance-pool.ipv6-enabled boolean

      Enable IPv6 for instances

    • instance-pool.id string(uuid)

      Instance Pool ID

    • instance-pool.disk-size integer(int64)

      Instances disk size

      Minimum value is 10, maximum value is 50000.

  • strategy Required / string

    Load balancing strategy

    Values are round-robin and source-hash.

  • healthcheck Required / object

    Elastic IP address healthcheck

    • healthcheck.mode Required / string

      Healthcheck mode

      Values are tcp, http, and https.

    • healthcheck.interval integer(int64)

      Healthcheck interval

    • healthcheck.uri string

      Healthcheck URI

    • healthcheck.port Required / integer(int64)

      Healthcheck port

    • healthcheck.timeout integer(int64)

      Healthcheck timeout value

    • healthcheck.retries integer(int64)

      Number of retries before considering a service failed

    • healthcheck.tls-sni string

      SNI domain for https healthchecks

  • id string(uuid)

    Load balancer service ID

  • healthcheck-status array[object]

    Healthcheck status per backend server

    • healthcheck-status.public-ip string(ipv4)

      Backend server public IP

    • healthcheck-status.status string

      Status of the instance's healthcheck

      Values are failure and success.

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service \ -H "Content-Type: application/json" \ -d '{"description":"string","protocol":"tcp","name":"string","state":"creating","target-port":42,"port":42,"instance-pool":{"anti-affinity-groups":[{"id":"string","name":"string","description":"string","instances":[{"id":"string","name":"string"}]}],"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"strin...}'
Request payload example
{ "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve Load Balancer details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)

      Load balancer ID

    • description string

      Load balancer description

    • name Required / string

      Load balancer name

    • state string

      Load balancer state

      Values are creating, deleting, running, and error.

    • created-at string(date-time)

      Load balancer creation date

    • ip string(ipv4)

      Load balancer public IP

    • services array[object]

      Load balancer services

      • services.description string

        Load balancer service description

      • services.protocol Required / string

        Load balanced protocol

        Values are tcp and udp.

      • services.name Required / string

        Load balancer service name

      • services.state string

        Load balancer service state

        Values are creating, deleting, running, updating, and error.

      • services.target-port Required / integer(int64)

        Port on which the balanced traffic will be forwarded to on the receiving instance

      • services.port Required / integer(int64)

        Port exposed on the load balancer's public IP

      • services.instance-pool Required / object

        Instance Pool

        • services.instance-pool.anti-affinity-groups array[object]

          Instance Pool Anti-affinity Groups

          • services.instance-pool.anti-affinity-groups.id string(uuid)

            Anti-affinity Group ID

          • services.instance-pool.anti-affinity-groups.name string

            Anti-affinity Group name

          • services.instance-pool.anti-affinity-groups.description string

            Anti-affinity Group description

          • services.instance-pool.anti-affinity-groups.instances array[object]

            Anti-affinity Group instances

            • services.instance-pool.anti-affinity-groups.instances.id string(uuid)

              Instance ID

            • services.instance-pool.anti-affinity-groups.instances.name string

              Instance name

        • services.instance-pool.description string

          Instance Pool description

        • services.instance-pool.security-groups array[object]

          Instance Pool Security Groups

          • services.instance-pool.security-groups.id string(uuid)

            Security Group ID

          • services.instance-pool.security-groups.name string

            Security Group name

          • services.instance-pool.security-groups.description string

            Security Group description

          • services.instance-pool.security-groups.rules array[object]

            Security Group rules

            • services.instance-pool.security-groups.rules.description string

              Security Group rule description

            • services.instance-pool.security-groups.rules.start-port integer(int64)

              Start port of the range

              Minimum value is 1, maximum value is 65535.

            • services.instance-pool.security-groups.rules.protocol string

              Network protocol

              Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

            • services.instance-pool.security-groups.rules.icmp object

              ICMP details

              • services.instance-pool.security-groups.rules.icmp.code integer(int64)

                Minimum value is 0, maximum value is 254.

              • services.instance-pool.security-groups.rules.icmp.type integer(int64)

                Minimum value is 0, maximum value is 254.

            • services.instance-pool.security-groups.rules.end-port integer(int64)

              End port of the range

              Minimum value is 1, maximum value is 65535.

            • services.instance-pool.security-groups.rules.security-group object

              Security Group

              • services.instance-pool.security-groups.rules.security-group.id string(uuid)

                Security Group ID

              • services.instance-pool.security-groups.rules.security-group.name Required / string

                Security Group name

            • services.instance-pool.security-groups.rules.id string(uuid)

              Security Group rule ID

            • services.instance-pool.security-groups.rules.network string

              CIDR-formatted network allowed

            • services.instance-pool.security-groups.rules.flow-direction string

              Network flow direction to match

              Values are ingress and egress.

        • services.instance-pool.name string

          Instance Pool name

        • services.instance-pool.instance-type object

          Compute instance type

          • services.instance-pool.instance-type.id string(uuid)

            Instance type ID

          • services.instance-pool.instance-type.size string

            Instance type size

            Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

          • services.instance-pool.instance-type.family string

            Instance type family

            Values are gpu2, gpu, memory, storage, standard, and cpu.

          • services.instance-pool.instance-type.cpus integer(int64)

            CPU count

          • services.instance-pool.instance-type.gpus integer(int64)

            GPU count

          • services.instance-pool.instance-type.authorized boolean

            Requires authorization or publicly available

          • services.instance-pool.instance-type.memory integer(int64)

            Available memory

        • services.instance-pool.private-networks array[object]

          Instance Pool Private networks

          • services.instance-pool.private-networks.id string(uuid)

            Private network ID

          • services.instance-pool.private-networks.name string

            Private network name

          • services.instance-pool.private-networks.description string

            Private network description

          • services.instance-pool.private-networks.netmask string(ipv4)

            Private network netmask

          • services.instance-pool.private-networks.start-ip string(ipv4)

            Private network start ip address

          • services.instance-pool.private-networks.end-ip string(ipv4)

            Private network end ip address

        • services.instance-pool.template object

          Instance template

          • services.instance-pool.template.description string

            Template description

          • services.instance-pool.template.ssh-key-enabled boolean

            Enable SSH key based login

          • services.instance-pool.template.family string

            Template family

          • services.instance-pool.template.name string

            Template name

          • services.instance-pool.template.default-user string

            Template default user

          • services.instance-pool.template.size integer(int64)

            Template size

          • services.instance-pool.template.password-enabled boolean

            Enable password based login

          • services.instance-pool.template.build string

            Template build

          • services.instance-pool.template.checksum string

            Template md5 checksum

          • services.instance-pool.template.boot-mode string

            Boot mode (default: legacy)

            Values are legacy and uefi.

          • services.instance-pool.template.id string(uuid)

            Template ID

          • services.instance-pool.template.url string

            Template source URL

          • services.instance-pool.template.version string

            Template version

          • services.instance-pool.template.created-at string(date-time)

            Template creation date

          • services.instance-pool.template.visibility string

            Template visibility

            Values are private and public.

        • services.instance-pool.state string

          Instance Pool state

          Values are scaling-up, scaling-down, destroying, creating, and running.

        • services.instance-pool.size integer(int64)

          Number of instances

        • services.instance-pool.ssh-key object

          SSH key

          • services.instance-pool.ssh-key.name string

            SSH key name

          • services.instance-pool.ssh-key.fingerprint string

            SSH key fingerprint

        • services.instance-pool.user-data string

          Instances Cloud-init user-data

        • services.instance-pool.manager object

          Resource manager

          • services.instance-pool.manager.id string(uuid)

            Manager ID

          • services.instance-pool.manager.type string

            Manager type

            Values are sks-nodepool.

        • services.instance-pool.instances array[object]

          Instances

          • services.instance-pool.instances.id string(uuid)

            Instance ID

          • services.instance-pool.instances.name string

            Instance name

        • services.instance-pool.ipv6-enabled boolean

          Enable IPv6 for instances

        • services.instance-pool.id string(uuid)

          Instance Pool ID

        • services.instance-pool.disk-size integer(int64)

          Instances disk size

          Minimum value is 10, maximum value is 50000.

      • services.strategy Required / string

        Load balancing strategy

        Values are round-robin and source-hash.

      • services.healthcheck Required / object

        Elastic IP address healthcheck

        • services.healthcheck.mode Required / string

          Healthcheck mode

          Values are tcp, http, and https.

        • services.healthcheck.interval integer(int64)

          Healthcheck interval

        • services.healthcheck.uri string

          Healthcheck URI

        • services.healthcheck.port Required / integer(int64)

          Healthcheck port

        • services.healthcheck.timeout integer(int64)

          Healthcheck timeout value

        • services.healthcheck.retries integer(int64)

          Number of retries before considering a service failed

        • services.healthcheck.tls-sni string

          SNI domain for https healthchecks

      • services.id string(uuid)

        Load balancer service ID

      • services.healthcheck-status array[object]

        Healthcheck status per backend server

        • services.healthcheck-status.public-ip string(ipv4)

          Backend server public IP

        • services.healthcheck-status.status string

          Status of the instance's healthcheck

          Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2021-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] }

Update a Load Balancer

URL parameters
  • id Required / string(uuid)
Body
  • name string
  • description string
Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json" \ -d '{"name":"string","description":"string"}'
Request payload example
{ "name": "string", "description": "string" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a Load Balancer

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Event

Events form the basis of the Exoscale audit-trail, a mechanism to query past events
which happened on an organization

Read more

List Events

Retrieve Events for a given date range. Defaults to retrieving Events
for the current and previous day. Both a from and to arguments can
be passed specifying dates to start from and to

URL parameters
  • from string(date-time)
  • to string(date-time)
Responses
  • 200 array[object]

    200

    • timestamp string(date-time)

      Time at which the event happened, millisecond resolution

    • payload object

      Event payload. This is a free-form map

      • payload.
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/event
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/event \ -H "Content-Type: application/json"
Response example (200)
[ { "timestamp": "2021-05-04T09:42:00+00:00", "payload": { "": "string" } } ]

Sks

SKS is Exoscale's scalable Kubernetes service which provides managed Kubernetes
control planes with integrated support for Exoscale instance pools ands network load
balancers.
Read more

Generate a new Kubeconfig file for a SKS cluster

This operation returns a Kubeconfig file encoded in base64.

URL parameters
  • id Required / string(uuid)
Body
  • ttl integer(int64)

    Validity in seconds of the Kubeconfig user certificate (default: 30 days).

  • user string

    User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field.

  • groups array[string]

    List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field.

Responses
  • 200 object

    200

    • kubeconfig string
Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster-kubeconfig/{id}
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster-kubeconfig/{id} \ -H "Content-Type: application/json" \ -d '{"ttl":42,"user":"string","groups":["string"]}'
Request payload example
{ "ttl": 42, "user": "string", "groups": [ "string" ] }
Response example (200)
{ "kubeconfig": "string" }

Retrieve SKS Nodepool details

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Responses
  • 200 object

    200

    • anti-affinity-groups array[object]

      Nodepool Anti-affinity Groups

      • anti-affinity-groups.id string(uuid)

        Anti-affinity Group ID

      • anti-affinity-groups.name string

        Anti-affinity Group name

      • anti-affinity-groups.description string

        Anti-affinity Group description

      • anti-affinity-groups.instances array[object]

        Anti-affinity Group instances

        • anti-affinity-groups.instances.id string(uuid)

          Instance ID

        • anti-affinity-groups.instances.name string

          Instance name

    • description string

      Nodepool description

    • security-groups array[object]

      Nodepool Security Groups

      • security-groups.id string(uuid)

        Security Group ID

      • security-groups.name string

        Security Group name

      • security-groups.description string

        Security Group description

      • security-groups.rules array[object]

        Security Group rules

        • security-groups.rules.description string

          Security Group rule description

        • security-groups.rules.start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • security-groups.rules.icmp object

          ICMP details

          • security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • security-groups.rules.end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.security-group object

          Security Group

          • security-groups.rules.security-group.id string(uuid)

            Security Group ID

          • security-groups.rules.security-group.name Required / string

            Security Group name

        • security-groups.rules.id string(uuid)

          Security Group rule ID

        • security-groups.rules.network string

          CIDR-formatted network allowed

        • security-groups.rules.flow-direction string

          Network flow direction to match

          Values are ingress and egress.

    • name string

      Nodepool name

    • instance-type object

      Compute instance type

      • instance-type.id string(uuid)

        Instance type ID

      • instance-type.size string

        Instance type size

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-type.family string

        Instance type family

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-type.cpus integer(int64)

        CPU count

      • instance-type.gpus integer(int64)

        GPU count

      • instance-type.authorized boolean

        Requires authorization or publicly available

      • instance-type.memory integer(int64)

        Available memory

    • template object

      Instance template

      • template.description string

        Template description

      • template.ssh-key-enabled boolean

        Enable SSH key based login

      • template.family string

        Template family

      • template.name string

        Template name

      • template.default-user string

        Template default user

      • template.size integer(int64)

        Template size

      • template.password-enabled boolean

        Enable password based login

      • template.build string

        Template build

      • template.checksum string

        Template md5 checksum

      • template.boot-mode string

        Boot mode (default: legacy)

        Values are legacy and uefi.

      • template.id string(uuid)

        Template ID

      • template.url string

        Template source URL

      • template.version string

        Template version

      • template.created-at string(date-time)

        Template creation date

      • template.visibility string

        Template visibility

        Values are private and public.

    • state string

      Nodepool state

      Values are renewing-token, creating, deleting, running, updating, and error.

    • size integer(int64)

      Number of instances

    • instance-pool object

      Instance Pool

      • instance-pool.anti-affinity-groups array[object]

        Instance Pool Anti-affinity Groups

        • instance-pool.anti-affinity-groups.id string(uuid)

          Anti-affinity Group ID

        • instance-pool.anti-affinity-groups.name string

          Anti-affinity Group name

        • instance-pool.anti-affinity-groups.description string

          Anti-affinity Group description

        • instance-pool.anti-affinity-groups.instances array[object]

          Anti-affinity Group instances

          • instance-pool.anti-affinity-groups.instances.id string(uuid)

            Instance ID

          • instance-pool.anti-affinity-groups.instances.name string

            Instance name

      • instance-pool.description string

        Instance Pool description

      • instance-pool.security-groups array[object]

        Instance Pool Security Groups

        • instance-pool.security-groups.id string(uuid)

          Security Group ID

        • instance-pool.security-groups.name string

          Security Group name

        • instance-pool.security-groups.description string

          Security Group description

        • instance-pool.security-groups.rules array[object]

          Security Group rules

          • instance-pool.security-groups.rules.description string

            Security Group rule description

          • instance-pool.security-groups.rules.start-port integer(int64)

            Start port of the range

            Minimum value is 1, maximum value is 65535.

          • instance-pool.security-groups.rules.protocol string

            Network protocol

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • instance-pool.security-groups.rules.icmp object

            ICMP details

            • instance-pool.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • instance-pool.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • instance-pool.security-groups.rules.end-port integer(int64)

            End port of the range

            Minimum value is 1, maximum value is 65535.

          • instance-pool.security-groups.rules.security-group object

            Security Group

            • instance-pool.security-groups.rules.security-group.id string(uuid)

              Security Group ID

            • instance-pool.security-groups.rules.security-group.name Required / string

              Security Group name

          • instance-pool.security-groups.rules.id string(uuid)

            Security Group rule ID

          • instance-pool.security-groups.rules.network string

            CIDR-formatted network allowed

          • instance-pool.security-groups.rules.flow-direction string

            Network flow direction to match

            Values are ingress and egress.

      • instance-pool.name string

        Instance Pool name

      • instance-pool.instance-type object

        Compute instance type

        • instance-pool.instance-type.id string(uuid)

          Instance type ID

        • instance-pool.instance-type.size string

          Instance type size

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • instance-pool.instance-type.family string

          Instance type family

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • instance-pool.instance-type.cpus integer(int64)

          CPU count

        • instance-pool.instance-type.gpus integer(int64)

          GPU count

        • instance-pool.instance-type.authorized boolean

          Requires authorization or publicly available

        • instance-pool.instance-type.memory integer(int64)

          Available memory

      • instance-pool.private-networks array[object]

        Instance Pool Private networks

        • instance-pool.private-networks.id string(uuid)

          Private network ID

        • instance-pool.private-networks.name string

          Private network name

        • instance-pool.private-networks.description string

          Private network description

        • instance-pool.private-networks.netmask string(ipv4)

          Private network netmask

        • instance-pool.private-networks.start-ip string(ipv4)

          Private network start ip address

        • instance-pool.private-networks.end-ip string(ipv4)

          Private network end ip address

      • instance-pool.template object

        Instance template

        • instance-pool.template.description string

          Template description

        • instance-pool.template.ssh-key-enabled boolean

          Enable SSH key based login

        • instance-pool.template.family string

          Template family

        • instance-pool.template.name string

          Template name

        • instance-pool.template.default-user string

          Template default user

        • instance-pool.template.size integer(int64)

          Template size

        • instance-pool.template.password-enabled boolean

          Enable password based login

        • instance-pool.template.build string

          Template build

        • instance-pool.template.checksum string

          Template md5 checksum

        • instance-pool.template.boot-mode string

          Boot mode (default: legacy)

          Values are legacy and uefi.

        • instance-pool.template.id string(uuid)

          Template ID

        • instance-pool.template.url string

          Template source URL

        • instance-pool.template.version string

          Template version

        • instance-pool.template.created-at string(date-time)

          Template creation date

        • instance-pool.template.visibility string

          Template visibility

          Values are private and public.

      • instance-pool.state string

        Instance Pool state

        Values are scaling-up, scaling-down, destroying, creating, and running.

      • instance-pool.size integer(int64)

        Number of instances

      • instance-pool.ssh-key object

        SSH key

        • instance-pool.ssh-key.name string

          SSH key name

        • instance-pool.ssh-key.fingerprint string

          SSH key fingerprint

      • instance-pool.user-data string

        Instances Cloud-init user-data

      • instance-pool.manager object

        Resource manager

        • instance-pool.manager.id string(uuid)

          Manager ID

        • instance-pool.manager.type string

          Manager type

          Values are sks-nodepool.

      • instance-pool.instances array[object]

        Instances

        • instance-pool.instances.id string(uuid)

          Instance ID

        • instance-pool.instances.name string

          Instance name

      • instance-pool.ipv6-enabled boolean

        Enable IPv6 for instances

      • instance-pool.id string(uuid)

        Instance Pool ID

      • instance-pool.disk-size integer(int64)

        Instances disk size

        Minimum value is 10, maximum value is 50000.

    • id string(uuid)

      Nodepool ID

    • disk-size integer(int64)

      Nodepool instances disk size

      Minimum value is 20, maximum value is 50000.

    • version string

      Nodepool version

    • created-at string(date-time)

      Nodepool creation date

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json"
Response example (200)
{ "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "id": "string", "disk-size": 42, "version": "string", "created-at": "2021-05-04T09:42:00+00:00" }

Update a SKS Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Body
  • anti-affinity-groups array[object]

    Nodepool Anti-affinity Groups

    • anti-affinity-groups.id string(uuid)

      Anti-affinity Group ID

    • anti-affinity-groups.name string

      Anti-affinity Group name

    • anti-affinity-groups.description string

      Anti-affinity Group description

    • anti-affinity-groups.instances array[object]

      Anti-affinity Group instances

      • anti-affinity-groups.instances.id string(uuid)

        Instance ID

      • anti-affinity-groups.instances.name string

        Instance name

  • description string

    Nodepool description

  • security-groups array[object]

    Nodepool Security Groups

    • security-groups.id string(uuid)

      Security Group ID

    • security-groups.name string

      Security Group name

    • security-groups.description string

      Security Group description

    • security-groups.rules array[object]

      Security Group rules

      • security-groups.rules.description string

        Security Group rule description

      • security-groups.rules.start-port integer(int64)

        Start port of the range

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.protocol string

        Network protocol

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • security-groups.rules.icmp object

        ICMP details

        • security-groups.rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • security-groups.rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • security-groups.rules.end-port integer(int64)

        End port of the range

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.security-group object

        Security Group

        • security-groups.rules.security-group.id string(uuid)

          Security Group ID

        • security-groups.rules.security-group.name Required / string

          Security Group name

      • security-groups.rules.id string(uuid)

        Security Group rule ID

      • security-groups.rules.network string

        CIDR-formatted network allowed

      • security-groups.rules.flow-direction string

        Network flow direction to match

        Values are ingress and egress.

  • name string

    Nodepool name

  • instance-type object

    Compute instance type

    • instance-type.id string(uuid)

      Instance type ID

    • instance-type.size string

      Instance type size

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • instance-type.family string

      Instance type family

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • instance-type.cpus integer(int64)

      CPU count

    • instance-type.gpus integer(int64)

      GPU count

    • instance-type.authorized boolean

      Requires authorization or publicly available

    • instance-type.memory integer(int64)

      Available memory

  • template object

    Instance template

    • template.description string

      Template description

    • template.ssh-key-enabled boolean

      Enable SSH key based login

    • template.family string

      Template family

    • template.name string

      Template name

    • template.default-user string

      Template default user

    • template.size integer(int64)

      Template size

    • template.password-enabled boolean

      Enable password based login

    • template.build string

      Template build

    • template.checksum string

      Template md5 checksum

    • template.boot-mode string

      Boot mode (default: legacy)

      Values are legacy and uefi.

    • template.id string(uuid)

      Template ID

    • template.url string

      Template source URL

    • template.version string

      Template version

    • template.created-at string(date-time)

      Template creation date

    • template.visibility string

      Template visibility

      Values are private and public.

  • state string

    Nodepool state

    Values are renewing-token, creating, deleting, running, updating, and error.

  • size integer(int64)

    Number of instances

  • instance-pool object

    Instance Pool

    • instance-pool.anti-affinity-groups array[object]

      Instance Pool Anti-affinity Groups

      • instance-pool.anti-affinity-groups.id string(uuid)

        Anti-affinity Group ID

      • instance-pool.anti-affinity-groups.name string

        Anti-affinity Group name

      • instance-pool.anti-affinity-groups.description string

        Anti-affinity Group description

      • instance-pool.anti-affinity-groups.instances array[object]

        Anti-affinity Group instances

        • instance-pool.anti-affinity-groups.instances.id string(uuid)

          Instance ID

        • instance-pool.anti-affinity-groups.instances.name string

          Instance name

    • instance-pool.description string

      Instance Pool description

    • instance-pool.security-groups array[object]

      Instance Pool Security Groups

      • instance-pool.security-groups.id string(uuid)

        Security Group ID

      • instance-pool.security-groups.name string

        Security Group name

      • instance-pool.security-groups.description string

        Security Group description

      • instance-pool.security-groups.rules array[object]

        Security Group rules

        • instance-pool.security-groups.rules.description string

          Security Group rule description

        • instance-pool.security-groups.rules.start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • instance-pool.security-groups.rules.icmp object

          ICMP details

          • instance-pool.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • instance-pool.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • instance-pool.security-groups.rules.end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.security-group object

          Security Group

          • instance-pool.security-groups.rules.security-group.id string(uuid)

            Security Group ID

          • instance-pool.security-groups.rules.security-group.name Required / string

            Security Group name

        • instance-pool.security-groups.rules.id string(uuid)

          Security Group rule ID

        • instance-pool.security-groups.rules.network string

          CIDR-formatted network allowed

        • instance-pool.security-groups.rules.flow-direction string

          Network flow direction to match

          Values are ingress and egress.

    • instance-pool.name string

      Instance Pool name

    • instance-pool.instance-type object

      Compute instance type

      • instance-pool.instance-type.id string(uuid)

        Instance type ID

      • instance-pool.instance-type.size string

        Instance type size

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-pool.instance-type.family string

        Instance type family

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-pool.instance-type.cpus integer(int64)

        CPU count

      • instance-pool.instance-type.gpus integer(int64)

        GPU count

      • instance-pool.instance-type.authorized boolean

        Requires authorization or publicly available

      • instance-pool.instance-type.memory integer(int64)

        Available memory

    • instance-pool.private-networks array[object]

      Instance Pool Private networks

      • instance-pool.private-networks.id string(uuid)

        Private network ID

      • instance-pool.private-networks.name string

        Private network name

      • instance-pool.private-networks.description string

        Private network description

      • instance-pool.private-networks.netmask string(ipv4)

        Private network netmask

      • instance-pool.private-networks.start-ip string(ipv4)

        Private network start ip address

      • instance-pool.private-networks.end-ip string(ipv4)

        Private network end ip address

    • instance-pool.template object

      Instance template

      • instance-pool.template.description string

        Template description

      • instance-pool.template.ssh-key-enabled boolean

        Enable SSH key based login

      • instance-pool.template.family string

        Template family

      • instance-pool.template.name string

        Template name

      • instance-pool.template.default-user string

        Template default user

      • instance-pool.template.size integer(int64)

        Template size

      • instance-pool.template.password-enabled boolean

        Enable password based login

      • instance-pool.template.build string

        Template build

      • instance-pool.template.checksum string

        Template md5 checksum

      • instance-pool.template.boot-mode string

        Boot mode (default: legacy)

        Values are legacy and uefi.

      • instance-pool.template.id string(uuid)

        Template ID

      • instance-pool.template.url string

        Template source URL

      • instance-pool.template.version string

        Template version

      • instance-pool.template.created-at string(date-time)

        Template creation date

      • instance-pool.template.visibility string

        Template visibility

        Values are private and public.

    • instance-pool.state string

      Instance Pool state

      Values are scaling-up, scaling-down, destroying, creating, and running.

    • instance-pool.size integer(int64)

      Number of instances

    • instance-pool.ssh-key object

      SSH key

      • instance-pool.ssh-key.name string

        SSH key name

      • instance-pool.ssh-key.fingerprint string

        SSH key fingerprint

    • instance-pool.user-data string

      Instances Cloud-init user-data

    • instance-pool.manager object

      Resource manager

      • instance-pool.manager.id string(uuid)

        Manager ID

      • instance-pool.manager.type string

        Manager type

        Values are sks-nodepool.

    • instance-pool.instances array[object]

      Instances

      • instance-pool.instances.id string(uuid)

        Instance ID

      • instance-pool.instances.name string

        Instance name

    • instance-pool.ipv6-enabled boolean

      Enable IPv6 for instances

    • instance-pool.id string(uuid)

      Instance Pool ID

    • instance-pool.disk-size integer(int64)

      Instances disk size

      Minimum value is 10, maximum value is 50000.

  • id string(uuid)

    Nodepool ID

  • disk-size integer(int64)

    Nodepool instances disk size

    Minimum value is 20, maximum value is 50000.

  • version string

    Nodepool version

  • created-at string(date-time)

    Nodepool creation date

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json" \ -d '{"anti-affinity-groups":[{"id":"string","name":"string","description":"string","instances":[{"id":"string","name":"string"}]}],"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":"string","instance-type":{"id":"string","siz...}'
Request payload example
{ "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "id": "string", "disk-size": 42, "version": "string", "created-at": "2021-05-04T09:42:00+00:00" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a SKS Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Scale a SKS Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Body
  • anti-affinity-groups array[object]

    Nodepool Anti-affinity Groups

    • anti-affinity-groups.id string(uuid)

      Anti-affinity Group ID

    • anti-affinity-groups.name string

      Anti-affinity Group name

    • anti-affinity-groups.description string

      Anti-affinity Group description

    • anti-affinity-groups.instances array[object]

      Anti-affinity Group instances

      • anti-affinity-groups.instances.id string(uuid)

        Instance ID

      • anti-affinity-groups.instances.name string

        Instance name

  • description string

    Nodepool description

  • security-groups array[object]

    Nodepool Security Groups

    • security-groups.id string(uuid)

      Security Group ID

    • security-groups.name string

      Security Group name

    • security-groups.description string

      Security Group description

    • security-groups.rules array[object]

      Security Group rules

      • security-groups.rules.description string

        Security Group rule description

      • security-groups.rules.start-port integer(int64)

        Start port of the range

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.protocol string

        Network protocol

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • security-groups.rules.icmp object

        ICMP details

        • security-groups.rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • security-groups.rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • security-groups.rules.end-port integer(int64)

        End port of the range

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.security-group object

        Security Group

        • security-groups.rules.security-group.id string(uuid)

          Security Group ID

        • security-groups.rules.security-group.name Required / string

          Security Group name

      • security-groups.rules.id string(uuid)

        Security Group rule ID

      • security-groups.rules.network string

        CIDR-formatted network allowed

      • security-groups.rules.flow-direction string

        Network flow direction to match

        Values are ingress and egress.

  • name string

    Nodepool name

  • instance-type object

    Compute instance type

    • instance-type.id string(uuid)

      Instance type ID

    • instance-type.size string

      Instance type size

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • instance-type.family string

      Instance type family

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • instance-type.cpus integer(int64)

      CPU count

    • instance-type.gpus integer(int64)

      GPU count

    • instance-type.authorized boolean

      Requires authorization or publicly available

    • instance-type.memory integer(int64)

      Available memory

  • template object

    Instance template

    • template.description string

      Template description

    • template.ssh-key-enabled boolean

      Enable SSH key based login

    • template.family string

      Template family

    • template.name string

      Template name

    • template.default-user string

      Template default user

    • template.size integer(int64)

      Template size

    • template.password-enabled boolean

      Enable password based login

    • template.build string

      Template build

    • template.checksum string

      Template md5 checksum

    • template.boot-mode string

      Boot mode (default: legacy)

      Values are legacy and uefi.

    • template.id string(uuid)

      Template ID

    • template.url string

      Template source URL

    • template.version string

      Template version

    • template.created-at string(date-time)

      Template creation date

    • template.visibility string

      Template visibility

      Values are private and public.

  • state string

    Nodepool state

    Values are renewing-token, creating, deleting, running, updating, and error.

  • size integer(int64)

    Number of instances

  • instance-pool object

    Instance Pool

    • instance-pool.anti-affinity-groups array[object]

      Instance Pool Anti-affinity Groups

      • instance-pool.anti-affinity-groups.id string(uuid)

        Anti-affinity Group ID

      • instance-pool.anti-affinity-groups.name string

        Anti-affinity Group name

      • instance-pool.anti-affinity-groups.description string

        Anti-affinity Group description

      • instance-pool.anti-affinity-groups.instances array[object]

        Anti-affinity Group instances

        • instance-pool.anti-affinity-groups.instances.id string(uuid)

          Instance ID

        • instance-pool.anti-affinity-groups.instances.name string

          Instance name

    • instance-pool.description string

      Instance Pool description

    • instance-pool.security-groups array[object]

      Instance Pool Security Groups

      • instance-pool.security-groups.id string(uuid)

        Security Group ID

      • instance-pool.security-groups.name string

        Security Group name

      • instance-pool.security-groups.description string

        Security Group description

      • instance-pool.security-groups.rules array[object]

        Security Group rules

        • instance-pool.security-groups.rules.description string

          Security Group rule description

        • instance-pool.security-groups.rules.start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • instance-pool.security-groups.rules.icmp object

          ICMP details

          • instance-pool.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • instance-pool.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • instance-pool.security-groups.rules.end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • instance-pool.security-groups.rules.security-group object

          Security Group

          • instance-pool.security-groups.rules.security-group.id string(uuid)

            Security Group ID

          • instance-pool.security-groups.rules.security-group.name Required / string

            Security Group name

        • instance-pool.security-groups.rules.id string(uuid)

          Security Group rule ID

        • instance-pool.security-groups.rules.network string

          CIDR-formatted network allowed

        • instance-pool.security-groups.rules.flow-direction string

          Network flow direction to match

          Values are ingress and egress.

    • instance-pool.name string

      Instance Pool name

    • instance-pool.instance-type object

      Compute instance type

      • instance-pool.instance-type.id string(uuid)

        Instance type ID

      • instance-pool.instance-type.size string

        Instance type size

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-pool.instance-type.family string

        Instance type family

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-pool.instance-type.cpus integer(int64)

        CPU count

      • instance-pool.instance-type.gpus integer(int64)

        GPU count

      • instance-pool.instance-type.authorized boolean

        Requires authorization or publicly available

      • instance-pool.instance-type.memory integer(int64)

        Available memory

    • instance-pool.private-networks array[object]

      Instance Pool Private networks

      • instance-pool.private-networks.id string(uuid)

        Private network ID

      • instance-pool.private-networks.name string

        Private network name

      • instance-pool.private-networks.description string

        Private network description

      • instance-pool.private-networks.netmask string(ipv4)

        Private network netmask

      • instance-pool.private-networks.start-ip string(ipv4)

        Private network start ip address

      • instance-pool.private-networks.end-ip string(ipv4)

        Private network end ip address

    • instance-pool.template object

      Instance template

      • instance-pool.template.description string

        Template description

      • instance-pool.template.ssh-key-enabled boolean

        Enable SSH key based login

      • instance-pool.template.family string

        Template family

      • instance-pool.template.name string

        Template name

      • instance-pool.template.default-user string

        Template default user

      • instance-pool.template.size integer(int64)

        Template size

      • instance-pool.template.password-enabled boolean

        Enable password based login

      • instance-pool.template.build string

        Template build

      • instance-pool.template.checksum string

        Template md5 checksum

      • instance-pool.template.boot-mode string

        Boot mode (default: legacy)

        Values are legacy and uefi.

      • instance-pool.template.id string(uuid)

        Template ID

      • instance-pool.template.url string

        Template source URL

      • instance-pool.template.version string

        Template version

      • instance-pool.template.created-at string(date-time)

        Template creation date

      • instance-pool.template.visibility string

        Template visibility

        Values are private and public.

    • instance-pool.state string

      Instance Pool state

      Values are scaling-up, scaling-down, destroying, creating, and running.

    • instance-pool.size integer(int64)

      Number of instances

    • instance-pool.ssh-key object

      SSH key

      • instance-pool.ssh-key.name string

        SSH key name

      • instance-pool.ssh-key.fingerprint string

        SSH key fingerprint

    • instance-pool.user-data string

      Instances Cloud-init user-data

    • instance-pool.manager object

      Resource manager

      • instance-pool.manager.id string(uuid)

        Manager ID

      • instance-pool.manager.type string

        Manager type

        Values are sks-nodepool.

    • instance-pool.instances array[object]

      Instances

      • instance-pool.instances.id string(uuid)

        Instance ID

      • instance-pool.instances.name string

        Instance name

    • instance-pool.ipv6-enabled boolean

      Enable IPv6 for instances

    • instance-pool.id string(uuid)

      Instance Pool ID

    • instance-pool.disk-size integer(int64)

      Instances disk size

      Minimum value is 10, maximum value is 50000.

  • id string(uuid)

    Nodepool ID

  • disk-size integer(int64)

    Nodepool instances disk size

    Minimum value is 20, maximum value is 50000.

  • version string

    Nodepool version

  • created-at string(date-time)

    Nodepool creation date

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale \ -H "Content-Type: application/json" \ -d '{"anti-affinity-groups":[{"id":"string","name":"string","description":"string","instances":[{"id":"string","name":"string"}]}],"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":"string","instance-type":{"id":"string","siz...}'
Request payload example
{ "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "id": "string", "disk-size": 42, "version": "string", "created-at": "2021-05-04T09:42:00+00:00" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Evict Nodepool members

This operation evicts the specified Compute instances member from the Nodepool, shrinking it to <current nodepool size> - <# evicted members>.

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Body
  • instances array[string](uuid)
Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict \ -H "Content-Type: application/json" \ -d '{"instances":["string"]}'
Request payload example
{ "instances": [ "string" ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List SKS clusters

Responses
  • 200 object

    200

    • sks-clusters array[object]
      • sks-clusters.description string

        Cluster description

      • sks-clusters.cni string

        Cluster CNI

        Values are calico.

      • sks-clusters.name string

        Cluster name

      • sks-clusters.state string

        Cluster state

        Values are creating, upgrading, deleting, running, updating, and error.

      • sks-clusters.nodepools array[object]

        Cluster Nodepools

        • sks-clusters.nodepools.anti-affinity-groups array[object]

          Nodepool Anti-affinity Groups

          • sks-clusters.nodepools.anti-affinity-groups.id string(uuid)

            Anti-affinity Group ID

          • sks-clusters.nodepools.anti-affinity-groups.name string

            Anti-affinity Group name

          • sks-clusters.nodepools.anti-affinity-groups.description string

            Anti-affinity Group description

          • sks-clusters.nodepools.anti-affinity-groups.instances array[object]

            Anti-affinity Group instances

            • sks-clusters.nodepools.anti-affinity-groups.instances.id string(uuid)

              Instance ID

            • sks-clusters.nodepools.anti-affinity-groups.instances.name string

              Instance name

        • sks-clusters.nodepools.description string

          Nodepool description

        • sks-clusters.nodepools.security-groups array[object]

          Nodepool Security Groups

          • sks-clusters.nodepools.security-groups.id string(uuid)

            Security Group ID

          • sks-clusters.nodepools.security-groups.name string

            Security Group name

          • sks-clusters.nodepools.security-groups.description string

            Security Group description

          • sks-clusters.nodepools.security-groups.rules array[object]

            Security Group rules

            • sks-clusters.nodepools.security-groups.rules.description string

              Security Group rule description

            • sks-clusters.nodepools.security-groups.rules.start-port integer(int64)

              Start port of the range

              Minimum value is 1, maximum value is 65535.

            • sks-clusters.nodepools.security-groups.rules.protocol string

              Network protocol

              Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

            • sks-clusters.nodepools.security-groups.rules.icmp object

              ICMP details

              • sks-clusters.nodepools.security-groups.rules.icmp.code integer(int64)

                Minimum value is 0, maximum value is 254.

              • sks-clusters.nodepools.security-groups.rules.icmp.type integer(int64)

                Minimum value is 0, maximum value is 254.

            • sks-clusters.nodepools.security-groups.rules.end-port integer(int64)

              End port of the range

              Minimum value is 1, maximum value is 65535.

            • sks-clusters.nodepools.security-groups.rules.security-group object

              Security Group

              • sks-clusters.nodepools.security-groups.rules.security-group.id string(uuid)

                Security Group ID

              • sks-clusters.nodepools.security-groups.rules.security-group.name Required / string

                Security Group name

            • sks-clusters.nodepools.security-groups.rules.id string(uuid)

              Security Group rule ID

            • sks-clusters.nodepools.security-groups.rules.network string

              CIDR-formatted network allowed

            • sks-clusters.nodepools.security-groups.rules.flow-direction string

              Network flow direction to match

              Values are ingress and egress.

        • sks-clusters.nodepools.name string

          Nodepool name

        • sks-clusters.nodepools.instance-type object

          Compute instance type

          • sks-clusters.nodepools.instance-type.id string(uuid)

            Instance type ID

          • sks-clusters.nodepools.instance-type.size string

            Instance type size

            Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

          • sks-clusters.nodepools.instance-type.family string

            Instance type family

            Values are gpu2, gpu, memory, storage, standard, and cpu.

          • sks-clusters.nodepools.instance-type.cpus integer(int64)

            CPU count

          • sks-clusters.nodepools.instance-type.gpus integer(int64)

            GPU count

          • sks-clusters.nodepools.instance-type.authorized boolean

            Requires authorization or publicly available

          • sks-clusters.nodepools.instance-type.memory integer(int64)

            Available memory

        • sks-clusters.nodepools.template object

          Instance template

          • sks-clusters.nodepools.template.description string

            Template description

          • sks-clusters.nodepools.template.ssh-key-enabled boolean

            Enable SSH key based login

          • sks-clusters.nodepools.template.family string

            Template family

          • sks-clusters.nodepools.template.name string

            Template name

          • sks-clusters.nodepools.template.default-user string

            Template default user

          • sks-clusters.nodepools.template.size integer(int64)

            Template size

          • sks-clusters.nodepools.template.password-enabled boolean

            Enable password based login

          • sks-clusters.nodepools.template.build string

            Template build

          • sks-clusters.nodepools.template.checksum string

            Template md5 checksum

          • sks-clusters.nodepools.template.boot-mode string

            Boot mode (default: legacy)

            Values are legacy and uefi.

          • sks-clusters.nodepools.template.id string(uuid)

            Template ID

          • sks-clusters.nodepools.template.url string

            Template source URL

          • sks-clusters.nodepools.template.version string

            Template version

          • sks-clusters.nodepools.template.created-at string(date-time)

            Template creation date

          • sks-clusters.nodepools.template.visibility string

            Template visibility

            Values are private and public.

        • sks-clusters.nodepools.state string

          Nodepool state

          Values are renewing-token, creating, deleting, running, updating, and error.

        • sks-clusters.nodepools.size integer(int64)

          Number of instances

        • sks-clusters.nodepools.instance-pool object

          Instance Pool

          • sks-clusters.nodepools.instance-pool.anti-affinity-groups array[object]

            Instance Pool Anti-affinity Groups

            • sks-clusters.nodepools.instance-pool.anti-affinity-groups.id string(uuid)

              Anti-affinity Group ID

            • sks-clusters.nodepools.instance-pool.anti-affinity-groups.name string

              Anti-affinity Group name

            • sks-clusters.nodepools.instance-pool.anti-affinity-groups.description string

              Anti-affinity Group description

            • sks-clusters.nodepools.instance-pool.anti-affinity-groups.instances array[object]

              Anti-affinity Group instances

              • sks-clusters.nodepools.instance-pool.anti-affinity-groups.instances.id string(uuid)

                Instance ID

              • sks-clusters.nodepools.instance-pool.anti-affinity-groups.instances.name string

                Instance name

          • sks-clusters.nodepools.instance-pool.description string

            Instance Pool description

          • sks-clusters.nodepools.instance-pool.security-groups array[object]

            Instance Pool Security Groups

            • sks-clusters.nodepools.instance-pool.security-groups.id string(uuid)

              Security Group ID

            • sks-clusters.nodepools.instance-pool.security-groups.name string

              Security Group name

            • sks-clusters.nodepools.instance-pool.security-groups.description string

              Security Group description

            • sks-clusters.nodepools.instance-pool.security-groups.rules array[object]

              Security Group rules

              • sks-clusters.nodepools.instance-pool.security-groups.rules.description string

                Security Group rule description

              • sks-clusters.nodepools.instance-pool.security-groups.rules.start-port integer(int64)

                Start port of the range

                Minimum value is 1, maximum value is 65535.

              • sks-clusters.nodepools.instance-pool.security-groups.rules.protocol string

                Network protocol

                Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

              • sks-clusters.nodepools.instance-pool.security-groups.rules.icmp object

                ICMP details

                • sks-clusters.nodepools.instance-pool.security-groups.rules.icmp.code integer(int64)

                  Minimum value is 0, maximum value is 254.

                • sks-clusters.nodepools.instance-pool.security-groups.rules.icmp.type integer(int64)

                  Minimum value is 0, maximum value is 254.

              • sks-clusters.nodepools.instance-pool.security-groups.rules.end-port integer(int64)

                End port of the range

                Minimum value is 1, maximum value is 65535.

              • sks-clusters.nodepools.instance-pool.security-groups.rules.security-group object

                Security Group

                • sks-clusters.nodepools.instance-pool.security-groups.rules.security-group.id string(uuid)

                  Security Group ID

                • sks-clusters.nodepools.instance-pool.security-groups.rules.security-group.name Required / string

                  Security Group name

              • sks-clusters.nodepools.instance-pool.security-groups.rules.id string(uuid)

                Security Group rule ID

              • sks-clusters.nodepools.instance-pool.security-groups.rules.network string

                CIDR-formatted network allowed

              • sks-clusters.nodepools.instance-pool.security-groups.rules.flow-direction string

                Network flow direction to match

                Values are ingress and egress.

          • sks-clusters.nodepools.instance-pool.name string

            Instance Pool name

          • sks-clusters.nodepools.instance-pool.instance-type object

            Compute instance type

            • sks-clusters.nodepools.instance-pool.instance-type.id string(uuid)

              Instance type ID

            • sks-clusters.nodepools.instance-pool.instance-type.size string

              Instance type size

              Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

            • sks-clusters.nodepools.instance-pool.instance-type.family string

              Instance type family

              Values are gpu2, gpu, memory, storage, standard, and cpu.

            • sks-clusters.nodepools.instance-pool.instance-type.cpus integer(int64)

              CPU count

            • sks-clusters.nodepools.instance-pool.instance-type.gpus integer(int64)

              GPU count

            • sks-clusters.nodepools.instance-pool.instance-type.authorized boolean

              Requires authorization or publicly available

            • sks-clusters.nodepools.instance-pool.instance-type.memory integer(int64)

              Available memory

          • sks-clusters.nodepools.instance-pool.private-networks array[object]

            Instance Pool Private networks

            • sks-clusters.nodepools.instance-pool.private-networks.id string(uuid)

              Private network ID

            • sks-clusters.nodepools.instance-pool.private-networks.name string

              Private network name

            • sks-clusters.nodepools.instance-pool.private-networks.description string

              Private network description

            • sks-clusters.nodepools.instance-pool.private-networks.netmask string(ipv4)

              Private network netmask

            • sks-clusters.nodepools.instance-pool.private-networks.start-ip string(ipv4)

              Private network start ip address

            • sks-clusters.nodepools.instance-pool.private-networks.end-ip string(ipv4)

              Private network end ip address

          • sks-clusters.nodepools.instance-pool.template object

            Instance template

            • sks-clusters.nodepools.instance-pool.template.description string

              Template description

            • sks-clusters.nodepools.instance-pool.template.ssh-key-enabled boolean

              Enable SSH key based login

            • sks-clusters.nodepools.instance-pool.template.family string

              Template family

            • sks-clusters.nodepools.instance-pool.template.name string

              Template name

            • sks-clusters.nodepools.instance-pool.template.default-user string

              Template default user

            • sks-clusters.nodepools.instance-pool.template.size integer(int64)

              Template size

            • sks-clusters.nodepools.instance-pool.template.password-enabled boolean

              Enable password based login

            • sks-clusters.nodepools.instance-pool.template.build string

              Template build

            • sks-clusters.nodepools.instance-pool.template.checksum string

              Template md5 checksum

            • sks-clusters.nodepools.instance-pool.template.boot-mode string

              Boot mode (default: legacy)

              Values are legacy and uefi.

            • sks-clusters.nodepools.instance-pool.template.id string(uuid)

              Template ID

            • sks-clusters.nodepools.instance-pool.template.url string

              Template source URL

            • sks-clusters.nodepools.instance-pool.template.version string

              Template version

            • sks-clusters.nodepools.instance-pool.template.created-at string(date-time)

              Template creation date

            • sks-clusters.nodepools.instance-pool.template.visibility string

              Template visibility

              Values are private and public.

          • sks-clusters.nodepools.instance-pool.state string

            Instance Pool state

            Values are scaling-up, scaling-down, destroying, creating, and running.

          • sks-clusters.nodepools.instance-pool.size integer(int64)

            Number of instances

          • sks-clusters.nodepools.instance-pool.ssh-key object

            SSH key

            • sks-clusters.nodepools.instance-pool.ssh-key.name string

              SSH key name

            • sks-clusters.nodepools.instance-pool.ssh-key.fingerprint string

              SSH key fingerprint

          • sks-clusters.nodepools.instance-pool.user-data string

            Instances Cloud-init user-data

          • sks-clusters.nodepools.instance-pool.manager object

            Resource manager

            • sks-clusters.nodepools.instance-pool.manager.id string(uuid)

              Manager ID

            • sks-clusters.nodepools.instance-pool.manager.type string

              Manager type

              Values are sks-nodepool.

          • sks-clusters.nodepools.instance-pool.instances array[object]

            Instances

            • sks-clusters.nodepools.instance-pool.instances.id string(uuid)

              Instance ID

            • sks-clusters.nodepools.instance-pool.instances.name string

              Instance name

          • sks-clusters.nodepools.instance-pool.ipv6-enabled boolean

            Enable IPv6 for instances

          • sks-clusters.nodepools.instance-pool.id string(uuid)

            Instance Pool ID

          • sks-clusters.nodepools.instance-pool.disk-size integer(int64)

            Instances disk size

            Minimum value is 10, maximum value is 50000.

        • sks-clusters.nodepools.id string(uuid)

          Nodepool ID

        • sks-clusters.nodepools.disk-size integer(int64)

          Nodepool instances disk size

          Minimum value is 20, maximum value is 50000.

        • sks-clusters.nodepools.version string

          Nodepool version

        • sks-clusters.nodepools.created-at string(date-time)

          Nodepool creation date

      • sks-clusters.level string

        Cluster level

        Values are starter and pro.

      • sks-clusters.addons array[string]

        Cluster addons

        Values are exoscale-cloud-controller.

      • sks-clusters.id string(uuid)

        Cluster ID

      • sks-clusters.version string

        Control plane Kubernetes version

      • sks-clusters.created-at string(date-time)

        Cluster creation date

      • sks-clusters.endpoint string

        Cluster endpoint

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster \ -H "Content-Type: application/json"
Response example (200)
{ "sks-clusters": [ { "description": "string", "cni": "calico", "name": "string", "state": "creating", "nodepools": [ { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "id": "string", "disk-size": 42, "version": "string", "created-at": "2021-05-04T09:42:00+00:00" } ], "level": "starter", "addons": [ "exoscale-cloud-controller" ], "id": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "endpoint": "string" } ] }

Create a SKS cluster

Body
  • description string

    Cluster description

  • cni string

    Cluster CNI

    Values are calico.

  • name string

    Cluster name

  • state string

    Cluster state

    Values are creating, upgrading, deleting, running, updating, and error.

  • nodepools array[object]

    Cluster Nodepools

    • nodepools.anti-affinity-groups array[object]

      Nodepool Anti-affinity Groups

      • nodepools.anti-affinity-groups.id string(uuid)

        Anti-affinity Group ID

      • nodepools.anti-affinity-groups.name string

        Anti-affinity Group name

      • nodepools.anti-affinity-groups.description string

        Anti-affinity Group description

      • nodepools.anti-affinity-groups.instances array[object]

        Anti-affinity Group instances

        • nodepools.anti-affinity-groups.instances.id string(uuid)

          Instance ID

        • nodepools.anti-affinity-groups.instances.name string

          Instance name

    • nodepools.description string

      Nodepool description

    • nodepools.security-groups array[object]

      Nodepool Security Groups

      • nodepools.security-groups.id string(uuid)

        Security Group ID

      • nodepools.security-groups.name string

        Security Group name

      • nodepools.security-groups.description string

        Security Group description

      • nodepools.security-groups.rules array[object]

        Security Group rules

        • nodepools.security-groups.rules.description string

          Security Group rule description

        • nodepools.security-groups.rules.start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • nodepools.security-groups.rules.protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • nodepools.security-groups.rules.icmp object

          ICMP details

          • nodepools.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • nodepools.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • nodepools.security-groups.rules.end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • nodepools.security-groups.rules.security-group object

          Security Group

          • nodepools.security-groups.rules.security-group.id string(uuid)

            Security Group ID

          • nodepools.security-groups.rules.security-group.name Required / string

            Security Group name

        • nodepools.security-groups.rules.id string(uuid)

          Security Group rule ID

        • nodepools.security-groups.rules.network string

          CIDR-formatted network allowed

        • nodepools.security-groups.rules.flow-direction string

          Network flow direction to match

          Values are ingress and egress.

    • nodepools.name string

      Nodepool name

    • nodepools.instance-type object

      Compute instance type

      • nodepools.instance-type.id string(uuid)

        Instance type ID

      • nodepools.instance-type.size string

        Instance type size

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • nodepools.instance-type.family string

        Instance type family

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • nodepools.instance-type.cpus integer(int64)

        CPU count

      • nodepools.instance-type.gpus integer(int64)

        GPU count

      • nodepools.instance-type.authorized boolean

        Requires authorization or publicly available

      • nodepools.instance-type.memory integer(int64)

        Available memory

    • nodepools.template object

      Instance template

      • nodepools.template.description string

        Template description

      • nodepools.template.ssh-key-enabled boolean

        Enable SSH key based login

      • nodepools.template.family string

        Template family

      • nodepools.template.name string

        Template name

      • nodepools.template.default-user string

        Template default user

      • nodepools.template.size integer(int64)

        Template size

      • nodepools.template.password-enabled boolean

        Enable password based login

      • nodepools.template.build string

        Template build

      • nodepools.template.checksum string

        Template md5 checksum

      • nodepools.template.boot-mode string

        Boot mode (default: legacy)

        Values are legacy and uefi.

      • nodepools.template.id string(uuid)

        Template ID

      • nodepools.template.url string

        Template source URL

      • nodepools.template.version string

        Template version

      • nodepools.template.created-at string(date-time)

        Template creation date

      • nodepools.template.visibility string

        Template visibility

        Values are private and public.

    • nodepools.state string

      Nodepool state

      Values are renewing-token, creating, deleting, running, updating, and error.

    • nodepools.size integer(int64)

      Number of instances

    • nodepools.instance-pool object

      Instance Pool

      • nodepools.instance-pool.anti-affinity-groups array[object]

        Instance Pool Anti-affinity Groups

        • nodepools.instance-pool.anti-affinity-groups.id string(uuid)

          Anti-affinity Group ID

        • nodepools.instance-pool.anti-affinity-groups.name string

          Anti-affinity Group name

        • nodepools.instance-pool.anti-affinity-groups.description string

          Anti-affinity Group description

        • nodepools.instance-pool.anti-affinity-groups.instances array[object]

          Anti-affinity Group instances

          • nodepools.instance-pool.anti-affinity-groups.instances.id string(uuid)

            Instance ID

          • nodepools.instance-pool.anti-affinity-groups.instances.name string

            Instance name

      • nodepools.instance-pool.description string

        Instance Pool description

      • nodepools.instance-pool.security-groups array[object]

        Instance Pool Security Groups

        • nodepools.instance-pool.security-groups.id string(uuid)

          Security Group ID

        • nodepools.instance-pool.security-groups.name string

          Security Group name

        • nodepools.instance-pool.security-groups.description string

          Security Group description

        • nodepools.instance-pool.security-groups.rules array[object]

          Security Group rules

          • nodepools.instance-pool.security-groups.rules.description string

            Security Group rule description

          • nodepools.instance-pool.security-groups.rules.start-port integer(int64)

            Start port of the range

            Minimum value is 1, maximum value is 65535.

          • nodepools.instance-pool.security-groups.rules.protocol string

            Network protocol

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • nodepools.instance-pool.security-groups.rules.icmp object

            ICMP details

            • nodepools.instance-pool.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • nodepools.instance-pool.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • nodepools.instance-pool.security-groups.rules.end-port integer(int64)

            End port of the range

            Minimum value is 1, maximum value is 65535.

          • nodepools.instance-pool.security-groups.rules.security-group object

            Security Group

            • nodepools.instance-pool.security-groups.rules.security-group.id string(uuid)

              Security Group ID

            • nodepools.instance-pool.security-groups.rules.security-group.name Required / string

              Security Group name

          • nodepools.instance-pool.security-groups.rules.id string(uuid)

            Security Group rule ID

          • nodepools.instance-pool.security-groups.rules.network string

            CIDR-formatted network allowed

          • nodepools.instance-pool.security-groups.rules.flow-direction string

            Network flow direction to match

            Values are ingress and egress.

      • nodepools.instance-pool.name string

        Instance Pool name

      • nodepools.instance-pool.instance-type object

        Compute instance type

        • nodepools.instance-pool.instance-type.id string(uuid)

          Instance type ID

        • nodepools.instance-pool.instance-type.size string

          Instance type size

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • nodepools.instance-pool.instance-type.family string

          Instance type family

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • nodepools.instance-pool.instance-type.cpus integer(int64)

          CPU count

        • nodepools.instance-pool.instance-type.gpus integer(int64)

          GPU count

        • nodepools.instance-pool.instance-type.authorized boolean

          Requires authorization or publicly available

        • nodepools.instance-pool.instance-type.memory integer(int64)

          Available memory

      • nodepools.instance-pool.private-networks array[object]

        Instance Pool Private networks

        • nodepools.instance-pool.private-networks.id string(uuid)

          Private network ID

        • nodepools.instance-pool.private-networks.name string

          Private network name

        • nodepools.instance-pool.private-networks.description string

          Private network description

        • nodepools.instance-pool.private-networks.netmask string(ipv4)

          Private network netmask

        • nodepools.instance-pool.private-networks.start-ip string(ipv4)

          Private network start ip address

        • nodepools.instance-pool.private-networks.end-ip string(ipv4)

          Private network end ip address

      • nodepools.instance-pool.template object

        Instance template

        • nodepools.instance-pool.template.description string

          Template description

        • nodepools.instance-pool.template.ssh-key-enabled boolean

          Enable SSH key based login

        • nodepools.instance-pool.template.family string

          Template family

        • nodepools.instance-pool.template.name string

          Template name

        • nodepools.instance-pool.template.default-user string

          Template default user

        • nodepools.instance-pool.template.size integer(int64)

          Template size

        • nodepools.instance-pool.template.password-enabled boolean

          Enable password based login

        • nodepools.instance-pool.template.build string

          Template build

        • nodepools.instance-pool.template.checksum string

          Template md5 checksum

        • nodepools.instance-pool.template.boot-mode string

          Boot mode (default: legacy)

          Values are legacy and uefi.

        • nodepools.instance-pool.template.id string(uuid)

          Template ID

        • nodepools.instance-pool.template.url string

          Template source URL

        • nodepools.instance-pool.template.version string

          Template version

        • nodepools.instance-pool.template.created-at string(date-time)

          Template creation date

        • nodepools.instance-pool.template.visibility string

          Template visibility

          Values are private and public.

      • nodepools.instance-pool.state string

        Instance Pool state

        Values are scaling-up, scaling-down, destroying, creating, and running.

      • nodepools.instance-pool.size integer(int64)

        Number of instances

      • nodepools.instance-pool.ssh-key object

        SSH key

        • nodepools.instance-pool.ssh-key.name string

          SSH key name

        • nodepools.instance-pool.ssh-key.fingerprint string

          SSH key fingerprint

      • nodepools.instance-pool.user-data string

        Instances Cloud-init user-data

      • nodepools.instance-pool.manager object

        Resource manager

        • nodepools.instance-pool.manager.id string(uuid)

          Manager ID

        • nodepools.instance-pool.manager.type string

          Manager type

          Values are sks-nodepool.

      • nodepools.instance-pool.instances array[object]

        Instances

        • nodepools.instance-pool.instances.id string(uuid)

          Instance ID

        • nodepools.instance-pool.instances.name string

          Instance name

      • nodepools.instance-pool.ipv6-enabled boolean

        Enable IPv6 for instances

      • nodepools.instance-pool.id string(uuid)

        Instance Pool ID

      • nodepools.instance-pool.disk-size integer(int64)

        Instances disk size

        Minimum value is 10, maximum value is 50000.

    • nodepools.id string(uuid)

      Nodepool ID

    • nodepools.disk-size integer(int64)

      Nodepool instances disk size

      Minimum value is 20, maximum value is 50000.

    • nodepools.version string

      Nodepool version

    • nodepools.created-at string(date-time)

      Nodepool creation date

  • level string

    Cluster level

    Values are starter and pro.

  • addons array[string]

    Cluster addons

    Values are exoscale-cloud-controller.

  • id string(uuid)

    Cluster ID

  • version string

    Control plane Kubernetes version

  • created-at string(date-time)

    Cluster creation date

  • endpoint string

    Cluster endpoint

Responses
  • 200 object

    200

    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object

      Resource reference

      • reference.id string(uuid)

        Reference ID

      • reference.link string

        Link to the referenced resource

      • reference.command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster \ -H "Content-Type: application/json" \ -d '{"description":"string","cni":"calico","name":"string","state":"creating","nodepools":[{"anti-affinity-groups":[{"id":"string","name":"string","description":"string","instances":[{"id":"string","name":"string"}]}],"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"str...}'
Request payload example
{ "description": "string", "cni": "calico", "name": "string", "state": "creating", "nodepools": [ { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "anti-affinity-groups": [ { "id": "string", "name": "string", "description": "string", "instances": [ { "id": "string", "name": "string" } ] } ], "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "private-networks": [ { "id": "string", "name": "string", "description": "string", "netmask": "string", "start-ip": "string", "end-ip": "string" } ], "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "visibility": "private" }, "state": "scaling-up", "size": 42, "ssh-key": { "name": "string", "fingerprint": "string" }, "user-data": "string", "manager": { "id": "string", "type": "sks-nodepool" }, "instances": [ { "id": "string", "name": "string" } ], "ipv6-enabled": true, "id": "string", "disk-size": 42 }, "id": "string", "disk-size": 42, "version": "string", "created-at": "2021-05-04T09:42:00+00:00" } ], "level": "starter", "addons": [ "exoscale-cloud-controller" ], "id": "string", "version": "string", "created-at": "2021-05-04T09:42:00+00:00", "endpoint": "string" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve SKS cluster details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • description string

      Cluster description

    • cni string

      Cluster CNI

      Values are calico.

    • name string

      Cluster name

    • state string

      Cluster state

      Values are creating, upgrading, deleting, running, updating, and error.

    • nodepools array[object]

      Cluster Nodepools

      • nodepools.anti-affinity-groups array[object]

        Nodepool Anti-affinity Groups

        • nodepools.anti-affinity-groups.id string(uuid)

          Anti-affinity Group ID

        • nodepools.anti-affinity-groups.name string

          Anti-affinity Group name

        • nodepools.anti-affinity-groups.description string

          Anti-affinity Group description

        • nodepools.anti-affinity-groups.instances array[object]

          Anti-affinity Group instances

          • nodepools.anti-affinity-groups.instances.id string(uuid)

            Instance ID

          • nodepools.anti-affinity-groups.instances.name string

            Instance name

      • nodepools.description string

        Nodepool description

      • nodepools.security-groups array[object]

        Nodepool Security Groups

        • nodepools.security-groups.id string(uuid)

          Security Group ID

        • nodepools.security-groups.name string

          Security Group name

        • nodepools.security-groups.description string

          Security Group description

        • nodepools.security-groups.rules array[object]

          Security Group rules

          • nodepools.security-groups.rules.description string

            Security Group rule description

          • nodepools.security-groups.rules.start-port integer(int64)

            Start port of the range

            Minimum value is 1, maximum value is 65535.

          • nodepools.security-groups.rules.protocol string

            Network protocol

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • nodepools.security-groups.rules.icmp object

            ICMP details

            • nodepools.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • nodepools.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • nodepools.security-groups.rules.end-port integer(int64)

            End port of the range

            Minimum value is 1, maximum value is 65535.

          • nodepools.security-groups.rules.security-group object

            Security Group

            • nodepools.security-groups.rules.security-group.id string(uuid)

              Security Group ID

            • nodepools.security-groups.rules.security-group.name Required / string

              Security Group name

          • nodepools.security-groups.rules.id string(uuid)

            Security Group rule ID

          • nodepools.security-groups.rules.network string

            CIDR-formatted network allowed

          • nodepools.security-groups.rules.flow-direction string

            Network flow direction to match

            Values are ingress and egress.

      • nodepools.name string

        Nodepool name

      • nodepools.instance-type object

        Compute instance type

        • nodepools.instance-type.id string(uuid)

          Instance type ID

        • nodepools.instance-type.size string

          Instance type size

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • nodepools.instance-type.family string

          Instance type family

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • nodepools.instance-type.cpus integer(int64)

          CPU count

        • nodepools.instance-type.gpus integer(int64)

          GPU count

        • nodepools.instance-type.authorized boolean

          Requires authorization or publicly available

        • nodepools.instance-type.memory integer(int64)

          Available memory

      • nodepools.template object

        Instance template

        • nodepools.template.description string

          Template description

        • nodepools.template.ssh-key-enabled boolean

          Enable SSH key based login

        • nodepools.template.family string

          Template family

        • nodepools.template.name string

          Template name

        • nodepools.template.default-user string

          Template default user

        • nodepools.template.size integer(int64)

          Template size

        • nodepools.template.password-enabled boolean

          Enable password based login

        • nodepools.template.build string

          Template build

        • nodepools.template.checksum string

          Template md5 checksum

        • nodepools.template.boot-mode string

          Boot mode (default: legacy)

          Values are legacy and uefi.

        • nodepools.template.id string(uuid)

          Template ID

        • nodepools.template.url string

          Template source URL

        • nodepools.template.version string

          Template version

        • nodepools.template.created-at string(date-time)

          Template creation date

        • nodepools.template.visibility string

          Template visibility

          Values are private and public.

      • nodepools.state string

        Nodepool state

        Values are renewing-token, creating, deleting, running, updating, and error.

      • nodepools.size integer(int64)

        Number of instances

      • nodepools.instance-pool object

        Instance Pool

        • nodepools.instance-pool.anti-affinity-groups array[object]

          Instance Pool Anti-affinity Groups

          • nodepools.instance-pool.anti-affinity-groups.id string(uuid)

            Anti-affinity Group ID

          • nodepools.instance-pool.anti-affinity-groups.name string

            Anti-affinity Group name

          • nodepools.instance-pool.anti-affinity-groups.description string

            Anti-affinity Group description

          • nodepools.instance-pool.anti-affinity-groups.instances array[object]

            Anti-affinity Group instances

            • nodepools.instance-pool.anti-affinity-groups.instances.id string(uuid)

              Instance ID

            • nodepools.instance-pool.anti-affinity-groups.instances.name string

              Instance name

        • nodepools.instance-pool.description string

          Instance Pool description

        • nodepools.instance-pool.security-groups array[object]

          Instance Pool Security Groups

          • nodepools.instance-pool.security-groups.id string(uuid)

            Security Group ID

          • nodepools.instance-pool.security-groups.name string

            Security Group name

          • nodepools.instance-pool.security-groups.description string

            Security Group description

          • nodepools.instance-pool.security-groups.rules array[object]

            Security Group rules

            • nodepools.instance-pool.security-groups.rules.description string