Zededa ZKSClusterInstances API
APIs for managing ZKS (ZEDEDA Kubernetes Service) cluster instances including creation, management, node operations, and status monitoring
APIs for managing ZKS (ZEDEDA Kubernetes Service) cluster instances including creation, management, node operations, and status monitoring
swagger: '2.0'
info:
title: ZEDEDA App Profiles Service AppProfileService ZKSClusterInstances API
description: The ZEDEDA App Profiles Service is part of ZEDEDA Edge Orchestration Platform. This service enables customers to define their app profiles on ZEDEDA platform and to manage them remotely.
termsOfService: https://www.zededa.com/terms
version: '1.0'
contact:
name: ZEDEDA API Support
url: https://www.zededa.com/support
email: support@zededa.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
basePath: /api
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- BearerToken: []
tags:
- name: ZKSClusterInstances
description: APIs for managing ZKS (ZEDEDA Kubernetes Service) cluster instances including creation, management, node operations, and status monitoring
paths:
/v1/zks/instances:
get:
summary: List all ZKS instances
description: "Retrieve a list of all ZKS instances with their basic information and metadata.\n\n**Query Parameters:**\n- Pagination parameters supported via cursor\n\n**Example Request:**\n```\nGET /v1/zks/instances\n```\n\n**Example Response:**\n```json\n{\n \"list\": [\n {\n \"id\": \"zks-instance-abc123\",\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster\",\n \"title\": \"Production Kubernetes Cluster\",\n \"description\": \"Main production cluster for edge applications\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\"\n },\n \"nOfNodes\": 3\n },\n {\n \"id\": \"zks-instance-def456\",\n \"projectId\": \"project-456\",\n \"name\": \"development-cluster\",\n \"title\": \"Development Kubernetes Cluster\",\n \"description\": \"Development cluster for testing\",\n \"tags\": {\n \"environment\": \"development\",\n \"region\": \"us-east\"\n },\n \"nOfNodes\": 1\n }\n ],\n \"next\": {\n \"pageToken\": \"next-page-token\"\n }\n}\n```"
operationId: ZKSClusterInstances_ListZKSInstances
responses:
'200':
description: Successfully retrieved ZKS instances list
schema:
$ref: '#/definitions/ZksInstancesList'
'400':
description: Bad Request. The API gateway did not process the request because of invalid value of filter parameters.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to list ZKS instances.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to retrieve ZKS instances list due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
tags:
- ZKSClusterInstances
parameters:
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
post:
summary: Create a new ZKS instance
description: "Create a new ZKS (ZEDEDA Kubernetes Service) cluster instance with specified nodes and configuration.\n\n**Example Request:**\n```json\n{\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster\",\n \"title\": \"Production Kubernetes Cluster\",\n \"description\": \"Main production cluster for edge applications\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\",\n \"purpose\": \"edge-computing\"\n },\n \"nodes\": [\n {\n \"id\": \"node-001\",\n \"clusterInterface\": \"eth0\"\n },\n {\n \"id\": \"node-002\",\n \"clusterInterface\": \"eth0\"\n }\n ],\n \"isImported\": false\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-abc123\",\n \"objectName\": \"production-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 201,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"\"\n }\n ]\n}\n```"
operationId: ZKSClusterInstances_CreateZKSInstance
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/ZsrvResponse'
'201':
description: Successfully created ZKS instance
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid ZKS instance configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to create ZKS instances.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. ZKS instance with the same name already exists.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to create ZKS instance due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/ZksInstance'
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
put:
summary: Bulk update ZKS instances
description: "Update multiple ZKS instances at once with new tags or other common properties. This operation is useful for applying changes to multiple clusters simultaneously.\n\n**Example Request:**\n```json\n{\n \"ids\": [\n \"zks-instance-abc123\",\n \"zks-instance-def456\",\n \"zks-instance-ghi789\"\n ],\n \"data\": {\n \"tags\": {\n \"environment\": \"production\",\n \"version\": \"v2\",\n \"managed-by\": \"platform-team\"\n }\n }\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"\",\n \"objectName\": \"\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 200,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"Successfully updated 3 ZKS instances\"\n }\n ]\n}\n```"
operationId: ZKSClusterInstances_BulkUpdateZKSInstances
responses:
'200':
description: Successfully updated ZKS instances
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid bulk update configuration or empty instance IDs list.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to update ZKS instances.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. One or more ZKS instances with the specified IDs do not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to update ZKS instances due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/ZksInstanceBulkUpdate'
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{id}:
put:
summary: Update ZKS instance
description: "Update an existing ZKS instance configuration including name, title, description, and tags.\n\n**Example Request:**\n```json\n{\n \"id\": \"zks-instance-abc123\",\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster\",\n \"title\": \"Updated Production Kubernetes Cluster\",\n \"description\": \"Updated main production cluster for edge applications\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\",\n \"version\": \"v2\"\n },\n \"nodes\": [\n {\n \"id\": \"node-001\",\n \"clusterInterface\": \"eth0\"\n },\n {\n \"id\": \"node-002\",\n \"clusterInterface\": \"eth0\"\n }\n ],\n \"isImported\": false\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-abc123\",\n \"objectName\": \"production-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 200,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"\"\n }\n ]\n}\n```"
operationId: ZKSClusterInstances_UpdateZKSInstance
responses:
'200':
description: Successfully updated ZKS instance
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid ZKS instance configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to update this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Update conflicts with current instance state.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to update ZKS instance due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: System defined universally unique Id of the zks instance
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
type: object
properties:
projectId:
type: string
description: Foreign key to the project
pattern: '[0-9A-Za-z-]+'
name:
type: string
description: User defined name of the zks instance, unique across the enterprise. Once zks instance is created, name can’t be changed
title:
type: string
description: User defined title of the zks instance. Title can be changed at any time
description:
type: string
description: Detailed description of the zks instance
tags:
type: object
additionalProperties:
type: string
description: Tags are name/value pairs that enable you to categorize resources. Tag names are case insensitive with max_length 512 and min_length 3. Tag values are case sensitive with max_length 256 and min_length 3.
maxLength: 32
pattern: ^[^<%&?/\>]+$
nodes:
type: array
items:
$ref: '#/definitions/ZksInstanceNode'
description: A list of nodes in the zks instance
isImported:
type: boolean
description: Indicates if the ZKS instance is imported from an external source
clusterPrefix:
type: string
description: Cluster prefix for the ZKS instance
description: ZKS Instance details
title: ZKS Instance details
required:
- projectId
- name
- nodes
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{zksId}:
get:
summary: Get ZKS instance by ID
description: "Retrieve detailed information about a specific ZKS instance including its configuration, nodes, and metadata.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123\n```\n\n**Example Response:**\n```json\n{\n \"id\": \"zks-instance-abc123\",\n \"projectId\": \"project-123\",\n \"name\": \"production-cluster\",\n \"title\": \"Production Kubernetes Cluster\",\n \"description\": \"Main production cluster for edge applications\",\n \"tags\": {\n \"environment\": \"production\",\n \"region\": \"us-west\",\n \"purpose\": \"edge-computing\"\n },\n \"nodes\": [\n {\n \"id\": \"node-001\",\n \"clusterInterface\": \"eth0\"\n },\n {\n \"id\": \"node-002\",\n \"clusterInterface\": \"eth0\"\n }\n ],\n \"isImported\": false\n}\n```"
operationId: ZKSClusterInstances_GetZKSInstance
responses:
'200':
description: Successfully retrieved ZKS instance information
schema:
$ref: '#/definitions/ZksInstance'
'400':
description: Bad Request. Invalid ZKS instance ID format.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to view this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to retrieve ZKS instance due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
delete:
summary: Delete ZKS instance
description: "Delete a ZKS instance and all its associated resources. This operation is irreversible and will terminate all running workloads.\n\n**Example Request:**\n```\nDELETE /v1/zks/instances/id/zks-instance-abc123\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-abc123\",\n \"objectName\": \"production-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 200,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"\"\n }\n ]\n}\n```\n\n**Warning:** This operation will permanently delete the ZKS instance and all its data. Ensure all important data is backed up before deletion."
operationId: ZKSClusterInstances_DeleteZKSInstance
responses:
'200':
description: Successfully deleted ZKS instance
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid ZKS instance ID format.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to delete this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Cannot delete ZKS instance due to active workloads or dependencies.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to delete ZKS instance due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{zksId}/metrics:
get:
summary: Get ZKS instance metrics by ID
description: "Retrieve detailed metrics for a specific ZKS instance including resource utilization and capacity information.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123/metrics\n```\n\n**Example Response:**\n```json\n{\n \"id\": \"zks-instance-abc123\",\n \"name\": \"production-cluster\",\n \"provider\": \"k3s\",\n \"kubeVersion\": \"v1.28.2+k3s1\",\n \"architecture\": \"amd64\",\n \"created\": \"2024-01-15T10:00:00Z\",\n \"totalResources\": 100,\n \"nOfNodes\": 3,\n \"deployments\": 15,\n \"capacity\": {\n \"pods\": {\n \"used\": 25,\n \"total\": 110\n },\n \"cpus\": {\n \"reserved\": {\n \"current\": 2.5,\n \"total\": 8.0\n },\n \"used\": {\n \"current\": 1.8,\n \"total\": 8.0\n }\n },\n \"memory\": {\n \"reserved\": {\n \"current\": 4.0,\n \"total\": 16.0\n },\n \"used\": {\n \"current\": 3.2,\n \"total\": 16.0\n }\n }\n }\n}\n```"
operationId: ZKSClusterInstances_GetZKSInstanceMetrics
responses:
'200':
description: Successfully retrieved ZKS instance metrics
schema:
$ref: '#/definitions/ZksInstanceMetrics'
'400':
description: Bad Request. Invalid ZKS instance ID format.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to view metrics for this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to retrieve metrics due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{zksId}/nodes:
put:
summary: Update ZKS instance nodes
description: "Add or remove nodes from a ZKS instance. This operation allows scaling the cluster up or down by managing individual nodes.\n\n**Example Request (Add Nodes):**\n```json\n{\n \"action\": \"NODE_ACTION_ADD_NODES\",\n \"nodes\": [\n {\n \"id\": \"node-003\",\n \"clusterInterface\": \"eth0\"\n },\n {\n \"id\": \"node-004\",\n \"clusterInterface\": \"eth0\"\n }\n ]\n}\n```\n\n**Example Request (Remove Nodes):**\n```json\n{\n \"action\": \"NODE_ACTION_REMOVE_NODES\",\n \"nodes\": [\n {\n \"id\": \"node-002\",\n \"clusterInterface\": \"eth0\"\n }\n ]\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-abc123\",\n \"objectName\": \"production-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 200,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"\"\n }\n ]\n}\n```"
operationId: ZKSClusterInstances_UpdateZKSInstanceNodes
responses:
'200':
description: Successfully updated ZKS instance nodes
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid node update configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to update this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Cannot update nodes due to cluster state or resource constraints.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to update nodes due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: ZKS instance ID for the node update operation
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
type: object
properties:
action:
$ref: '#/definitions/NodeAction'
description: Action to be performed on the nodes
nodes:
type: array
items:
$ref: '#/definitions/ZksInstanceNode'
description: List of nodes to be added or removed
title: ZksNodeUpdate for node update operations
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{zksId}/registration-commands:
get:
summary: Get registration commands by ID
description: "Retrieve registration commands for adding nodes to a ZKS instance. These commands can be executed on edge devices to join them to the cluster.\n\n**Example Request:**\n```\nGET /v1/zks/instances/id/zks-instance-abc123/registration-commands\n```\n\n**Example Response:**\n```json\n{\n \"created\": \"2024-01-15T10:30:00Z\",\n \"manifestUrl\": \"https://api.zededa.com/manifests/zks-instance-abc123\",\n \"commands\": {\n \"command\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef sh -\",\n \"insecureCommand\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef INSTALL_K3S_SKIP_VERIFY=true sh -\",\n \"nodeCommand\": \"curl -sfL https://get.k3s.io | K3S_URL=https://cluster.example.com:6443 K3S_TOKEN=K1234567890abcdef::server:1234567890abcdef sh -s - agent\",\n \"windowsNodeCommand\": \"Invoke-WebRequest -Uri https://github.com/k3s-io/k3s/releases/download/v1.28.2%2Bk3s1/k3s-windows-amd64.exe -OutFile k3s.exe\"\n }\n}\n```"
operationId: ZKSClusterInstances_GetZKSInstanceRegistrationCommands
responses:
'200':
description: Successfully retrieved registration commands
schema:
$ref: '#/definitions/ZksInstanceRegistrationInfo'
'400':
description: Bad Request. Invalid ZKS instance ID format.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to view registration commands.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to retrieve registration commands due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: Unique identifier of the ZKS instance. This field is required and must be a valid ZKS instance ID.
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/id/{zksId}/upgrade:
put:
summary: Upgrade ZKS instance
description: "Upgrade a ZKS instance to a new base OS image or Kubernetes version. This operation will update the underlying infrastructure.\n\n**Example Request:**\n```json\n{\n \"baseOSImage\": {\n \"name\": \"ubuntu-22.04-lts\",\n \"version\": \"22.04.3\",\n \"digest\": \"sha256:abcd1234...\"\n }\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-abc123\",\n \"objectName\": \"production-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 200,\n \"httpStatusMsg\": \"\",\n \"jobId\": \"upgrade-job-123\",\n \"error\": [\n {\n \"ec\": \"zMsgSucess\",\n \"location\": \"\",\n \"details\": \"\"\n }\n ]\n}\n```\n\n**Note:** Upgrade operations may take significant time to complete and will be processed asynchronously."
operationId: ZKSClusterInstances_UpgradeZKSInstance
responses:
'200':
description: Successfully initiated ZKS instance upgrade
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. Invalid upgrade configuration or missing required fields.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. Authentication credentials are missing or invalid.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. User does not have permission to upgrade this ZKS instance.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. ZKS instance with the specified ID does not exist.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. Cannot upgrade due to cluster state or ongoing operations.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. Failed to initiate upgrade due to server error.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: zksId
description: ZKS instance ID for the upgrade operation
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
type: object
properties:
baseOSImage:
$ref: '#/definitions/BaseOSImage'
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- ZKSClusterInstances
/v1/zks/instances/import:
post:
summary: Import an existing ZKS instance
description: "Import an existing Kubernetes cluster as a ZKS instance into the ZEDEDA platform. This allows managing externally created clusters through ZEDEDA.\n\n**Example Request:**\n```json\n{\n \"projectId\": \"project-123\",\n \"name\": \"imported-cluster\",\n \"title\": \"Imported Production Cluster\",\n \"description\": \"Externally created cluster imported into ZEDEDA\",\n \"tags\": {\n \"environment\": \"production\",\n \"source\": \"external\"\n },\n \"nodes\": [\n {\n \"id\": \"node-001\",\n \"clusterInterface\": \"eth0\"\n }\n ],\n \"isImported\": true\n}\n```\n\n**Example Response:**\n```json\n{\n \"operationType\": \"OPS_TYPE_UNSPECIFIED\",\n \"operationStatus\": \"OPS_STATUS_UNSPECIFIED\",\n \"objectKind\": \"\",\n \"objectId\": \"zks-instance-def456\",\n \"objectName\": \"imported-cluster\",\n \"objectRevision\": \"\",\n \"objectType\": \"OBJECT_TYPE_UNSPECIFIED\",\n \"operationTime\": \"\",\n \"startTime\": \"\",\n \"endTime\": \"\",\n \"user\": \"\",\n \"httpStatusCode\": 2
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zededa/refs/heads/main/openapi/zededa-zksclusterinstances-api-openapi.yml