linode Linode Kubernetes Engine (LKE) API
Deploy and manage Kubernetes clusters, node pools, and cluster configurations through the Linode Kubernetes Engine.
Deploy and manage Kubernetes clusters, node pools, and cluster configurations through the Linode Kubernetes Engine.
openapi: 3.1.0
info:
title: Linode API v4 Account Linode Kubernetes Engine (LKE) API
description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints.
version: 4.189.0
contact:
name: Linode Support
url: https://www.linode.com/support/
termsOfService: https://www.linode.com/legal-tos/
servers:
- url: https://api.linode.com/v4
description: Production Server
security:
- personalAccessToken: []
- oauth: []
tags:
- name: Linode Kubernetes Engine (LKE)
description: Deploy and manage Kubernetes clusters, node pools, and cluster configurations through the Linode Kubernetes Engine.
paths:
/lke/clusters:
get:
operationId: getLKEClusters
summary: List Kubernetes clusters
description: Returns a paginated list of all LKE clusters on your account.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: LKE clusters retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedLKEClusterList'
'401':
description: Unauthorized - invalid or missing authentication
post:
operationId: createLKECluster
summary: Create a Kubernetes cluster
description: Creates a new LKE cluster with the specified configuration, including the Kubernetes version, region, and node pools.
tags:
- Linode Kubernetes Engine (LKE)
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LKEClusterRequest'
responses:
'200':
description: LKE cluster created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LKECluster'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
/lke/clusters/{clusterId}:
get:
operationId: getLKECluster
summary: Get a Kubernetes cluster
description: Returns the details for a single LKE cluster.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
responses:
'200':
description: LKE cluster retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LKECluster'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
put:
operationId: updateLKECluster
summary: Update a Kubernetes cluster
description: Updates the configuration for an LKE cluster.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LKEClusterUpdateRequest'
responses:
'200':
description: LKE cluster updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LKECluster'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
delete:
operationId: deleteLKECluster
summary: Delete a Kubernetes cluster
description: Deletes an LKE cluster and all associated node pools and nodes.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
responses:
'200':
description: LKE cluster deleted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
/lke/clusters/{clusterId}/pools:
get:
operationId: getLKENodePools
summary: List node pools
description: Returns a paginated list of node pools for a given LKE cluster.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Node pools retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNodePoolList'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
post:
operationId: createLKENodePool
summary: Create a node pool
description: Creates a new node pool for the specified LKE cluster.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodePoolRequest'
responses:
'200':
description: Node pool created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/NodePool'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
/lke/clusters/{clusterId}/kubeconfig:
get:
operationId: getLKEClusterKubeconfig
summary: Get kubeconfig
description: Returns the base64-encoded kubeconfig for the specified LKE cluster, which can be used with kubectl to interact with the cluster.
tags:
- Linode Kubernetes Engine (LKE)
parameters:
- $ref: '#/components/parameters/clusterIdParam'
responses:
'200':
description: Kubeconfig retrieved successfully
content:
application/json:
schema:
type: object
properties:
kubeconfig:
type: string
description: The base64-encoded kubeconfig content.
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: LKE cluster not found
/lke/versions:
get:
operationId: getLKEVersions
summary: List Kubernetes versions
description: Returns a list of available Kubernetes versions for LKE clusters.
tags:
- Linode Kubernetes Engine (LKE)
responses:
'200':
description: Kubernetes versions retrieved successfully
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/KubernetesVersion'
components:
schemas:
LKEClusterRequest:
type: object
required:
- label
- region
- k8s_version
- node_pools
properties:
label:
type: string
minLength: 1
maxLength: 32
description: The label for the new cluster.
region:
type: string
description: The region for the cluster.
k8s_version:
type: string
description: The Kubernetes version for the cluster.
tags:
type: array
items:
type: string
description: Tags for the cluster.
node_pools:
type: array
items:
$ref: '#/components/schemas/NodePoolRequest'
description: Node pool configurations for the cluster.
control_plane:
type: object
properties:
high_availability:
type: boolean
description: Whether to enable high availability for the control plane.
LKEClusterUpdateRequest:
type: object
properties:
label:
type: string
minLength: 1
maxLength: 32
description: The label for the cluster.
tags:
type: array
items:
type: string
description: Tags for the cluster.
k8s_version:
type: string
description: The target Kubernetes version.
control_plane:
type: object
properties:
high_availability:
type: boolean
description: Whether to enable high availability.
NodePool:
type: object
properties:
id:
type: integer
description: The unique ID of this node pool.
type:
type: string
description: The Linode type for nodes in this pool.
count:
type: integer
description: The number of nodes in this pool.
nodes:
type: array
items:
type: object
properties:
id:
type: string
description: The unique ID of this node.
instance_id:
type: integer
description: The Linode instance ID for this node.
status:
type: string
enum:
- ready
- not_ready
description: The status of this node.
description: The nodes in this pool.
autoscaler:
type: object
properties:
enabled:
type: boolean
description: Whether the autoscaler is enabled.
min:
type: integer
description: The minimum number of nodes.
max:
type: integer
description: The maximum number of nodes.
description: Autoscaler configuration for this pool.
KubernetesVersion:
type: object
properties:
id:
type: string
description: The Kubernetes version string.
PaginatedLKEClusterList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LKECluster'
LKECluster:
type: object
properties:
id:
type: integer
description: The unique ID of this LKE cluster.
label:
type: string
description: The label for this cluster.
region:
type: string
description: The region where this cluster is located.
k8s_version:
type: string
description: The Kubernetes version for this cluster.
status:
type: string
enum:
- ready
- not_ready
description: The current status of the cluster.
tags:
type: array
items:
type: string
description: Tags for this cluster.
control_plane:
type: object
properties:
high_availability:
type: boolean
description: Whether the control plane is highly available.
description: Control plane configuration for this cluster.
created:
type: string
format: date-time
description: When this cluster was created.
updated:
type: string
format: date-time
description: When this cluster was last updated.
PaginatedNodePoolList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NodePool'
Pagination:
type: object
properties:
page:
type: integer
description: The current page number.
pages:
type: integer
description: The total number of pages.
results:
type: integer
description: The total number of results.
NodePoolRequest:
type: object
required:
- type
- count
properties:
type:
type: string
description: The Linode type for nodes in this pool.
count:
type: integer
minimum: 1
description: The number of nodes in this pool.
autoscaler:
type: object
properties:
enabled:
type: boolean
description: Whether to enable the autoscaler.
min:
type: integer
description: The minimum number of nodes.
max:
type: integer
description: The maximum number of nodes.
parameters:
clusterIdParam:
name: clusterId
in: path
required: true
schema:
type: integer
description: The ID of the LKE cluster.
pageParam:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
description: The page number to return.
pageSizeParam:
name: page_size
in: query
schema:
type: integer
minimum: 25
maximum: 500
default: 100
description: The number of items per page.
securitySchemes:
personalAccessToken:
type: http
scheme: bearer
description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes.
oauth:
type: oauth2
description: OAuth 2.0 authentication for third-party applications.
flows:
authorizationCode:
authorizationUrl: https://login.linode.com/oauth/authorize
tokenUrl: https://login.linode.com/oauth/token
scopes:
account:read_only: Read access to account information
account:read_write: Read and write access to account information
domains:read_only: Read access to domains
domains:read_write: Read and write access to domains
events:read_only: Read access to events
events:read_write: Read and write access to events
firewall:read_only: Read access to firewalls
firewall:read_write: Read and write access to firewalls
images:read_only: Read access to images
images:read_write: Read and write access to images
ips:read_only: Read access to IP addresses
ips:read_write: Read and write access to IP addresses
linodes:read_only: Read access to Linodes
linodes:read_write: Read and write access to Linodes
lke:read_only: Read access to LKE
lke:read_write: Read and write access to LKE
longview:read_only: Read access to Longview
longview:read_write: Read and write access to Longview
nodebalancers:read_only: Read access to NodeBalancers
nodebalancers:read_write: Read and write access to NodeBalancers
object_storage:read_only: Read access to Object Storage
object_storage:read_write: Read and write access to Object Storage
stackscripts:read_only: Read access to StackScripts
stackscripts:read_write: Read and write access to StackScripts
volumes:read_only: Read access to Volumes
volumes:read_write: Read and write access to Volumes
vpc:read_only: Read access to VPCs
vpc:read_write: Read and write access to VPCs
externalDocs:
description: Linode API v4 Documentation
url: https://techdocs.akamai.com/linode-api/reference/api