> ## Documentation Index
> Fetch the complete documentation index at: https://team.k0labs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update cluster configuration

> **Visibility:** `internal` · `public` ( OpenAPI Custom Extension: x-visibility )

"Cluster CRUD API"; Update cluster configuration to scale resources, upgrade versions, or modify settings.




## OpenAPI

````yaml api-docs/k0rdent-api.json patch /v1/regions/{region}/projects/{project}/compute/clusters/{id}
openapi: 3.1.0
info:
  title: K0rdent AI API
  version: 0.2.0-draft
  description: >
    OpenAPI specification for the K0rdent AI GPU-as-a-Service platform.

    **Custom Extensions:**

    - `x-visibility`: Endpoint visibility — `internal` (Atlas only), `public`
    (Arc only), `[internal, public]` (common)

    - `x-status`: Implementation status — `mvp`, `tbd`, `blocked`, `stretch`

    - `x-source`: Source document reference or `TBD` for fields pending
    confirmation

    **Error Model:** Standard `{ error: { code, message, details[] } }`
    envelope.

    **Pagination:** All list endpoints support two modes:

    - **Cursor** (`pageToken` + `pageSize`): Use for frequently updated
    resources. Prevents skipped or duplicated items across pages.
    `nextPageToken` is returned; `total` is not.

    - **Offset** (`offset` + `pageSize`): Use for stable resources. Returns
    `total` for page-count UIs. `nextPageToken` is not returned.

    `pageToken` and `offset` are mutually exclusive. Default `pageSize` is 50,
    maximum is 500.
servers:
  - url: https://api.k0rdent.ai
    description: K0rdent AI API Gateway
security:
  - bearerAuth: []
tags:
  - name: clusters
    description: Kubernetes cluster management
  - name: kubeconfigs
    description: Kubeconfig issuance and management
  - name: instances
    description: VM and baremetal instance lifecycle
  - name: networks
    description: Network configuration and topology
  - name: addresses
    description: IP address management
  - name: servers
    description: Bare metal server lifecycle management
  - name: organizations
    description: Organization (tenant) management
  - name: projects
    description: Project resource grouping
  - name: authentication
    description: Authentication and session management
  - name: users
    description: User management
  - name: groups
    description: User group management
  - name: roles
    description: RBAC role definitions
  - name: policies
    description: IAM policy bindings
  - name: providers
    description: Identity provider configuration
  - name: token
    description: >
      Generate access token via multiple grant types (authorization_code,
      api_key, client_credentials).
  - name: check
    description: >
      Evaluate permissions for a principal against actions and resources.
      Supports single and bulk checks (up to 100).
  - name: introspect
    description: >
      Token introspection per RFC 7662. Validate token activity and retrieve
      full decoded claims.
  - name: revoke
    description: >
      Token revocation per RFC 7009. Explicitly invalidate access tokens before
      natural expiration.
  - name: sessions
    description: >
      Manage user browser sessions. Supports listing active sessions, creating a
      new session (login), and ending the current session (logout).
  - name: apikeys
    description: >
      Manage API keys for programmatic access. API keys are bound to a user and
      inherit a dynamic subset of the user's privileges, evaluated at token-mint
      time.

      Keys are scoped to a level in the resource hierarchy (organization, or
      project).
  - name: serviceaccounts
    description: |
      Manage service accounts for machine-to-machine and infrastructure
      access. Service accounts are independent principals with their own
      identity, role bindings, and credentials. They survive user
      off-boarding and are managed exclusively by tenant administrators.
paths:
  /v1/regions/{region}/projects/{project}/compute/clusters/{id}:
    parameters:
      - $ref: '#/components/parameters/RegionPathParam'
      - $ref: '#/components/parameters/ProjectPathParam'
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Unique cluster identifier
    patch:
      tags:
        - clusters
      summary: Update cluster configuration
      description: >
        **Visibility:** `internal` · `public` ( OpenAPI Custom Extension:
        x-visibility )


        "Cluster CRUD API"; Update cluster configuration to scale resources,
        upgrade versions, or modify settings.
      operationId: updateCluster
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterUpdateRequest'
      responses:
        '200':
          description: Cluster updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cluster'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    RegionPathParam:
      name: region
      in: path
      required: true
      schema:
        type: string
      description: Region identifier
    ProjectPathParam:
      name: project
      in: path
      required: true
      schema:
        type: string
      description: Project identifier
  schemas:
    ClusterUpdateRequest:
      type: object
      description: |
        Request to update cluster configuration.
      properties:
        displayName:
          type: string
          description: Updated human-friendly display name for the cluster.
        description:
          type: string
          description: Updated description of this resource.
        kubernetesVersion:
          type: string
          description: Upgrade to Kubernetes version
        nodePools:
          type: array
          description: Node pools belonging to this cluster.
          items:
            role:
              type: string
              enum:
                - worker
                - control-plane
              description: Role of the node pool.
            network:
              type: string
              format: uri
              description: |
                URL of the network this node pool is attached to.
              example: >-
                /v1/regions/us-texas-1/projects/project-x9y8z7/compute/networks/network-g7h8i9
            subnet:
              type: string
              format: uri
              description: |
                URL of the subnet this node pool uses.
            nodeCount:
              type: integer
              description: Number of nodes in pool
            instanceType:
              type: string
              description: Instance type for nodes
    Cluster:
      type: object
      description: |
        Kubernetes cluster resource.
      properties:
        selfLink:
          type: string
          format: uri
          description: Server-defined URL for this resource.
          readOnly: true
          example: >-
            /v1/regions/us-texas-1/projects/project-x9y8z7/compute/clusters/cluster-a1b2c3
        uid:
          type: string
          description: Server-generated UUID.
          format: uuid
          readOnly: true
        id:
          type: string
          description: >-
            Name of the resource. Provided by the client when the resource is
            created, or generated by the server if not specified. Must be 1-63
            characters long and match the pattern [a-z]([\-a-z0-9]*[a-z0-9])? —
            the first character must be a lowercase letter, and all following
            characters must be lowercase letters, digits, or hyphens, with the
            last character being a letter or digit. Cannot be changed after the
            resource is created.
          pattern: ^[a-z]([-a-z0-9]*[a-z0-9])?$
          minLength: 1
          maxLength: 63
          example: cluster-a1b2c3
        displayName:
          type: string
          description: Optional human-friendly display name for the cluster.
        description:
          type: string
          description: An optional description of this resource.
        nodePools:
          type: array
          description: Node pools belonging to this cluster.
          items:
            role:
              type: string
              enum:
                - worker
                - control-plane
              description: Role of the node pool.
            network:
              type: string
              format: uri
              description: |
                URL of the network this node pool is attached to.
              example: >-
                /v1/regions/us-texas-1/projects/project-x9y8z7/compute/networks/network-g7h8i9
            subnet:
              type: string
              format: uri
              description: |
                URL of the subnet this node pool uses.
            nodeCount:
              type: integer
              description: Number of nodes in pool
            instanceType:
              type: string
              description: Instance type for nodes
        status:
          type: object
          description: Cluster health and readiness state.
          properties:
            phase:
              type: string
              description: Lifecycle phase (e.g., Provisioning, Running, Deleting)
            conditions:
              type: array
              items:
                type: object
                description: Cluster conditions
        nodeCount:
          type: integer
          description: Number of nodes in cluster.
        kubernetesVersion:
          type: string
          description: Kubernetes version.
        endpoint:
          type: object
          description: Cluster endpoint details.
          properties:
            url:
              type: string
              description: Cluster API endpoint URL
            caCertificate:
              type: string
              description: CA certificate for endpoint
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    Error:
      type: object
      description: Standard error response
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP status code
            message:
              type: string
              description: Error message
            details:
              type: array
              items:
                type: object
              description: Additional error details
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token authentication using OAuth2/OIDC tokens

````