KubeVirt StorageProfiles API

Operations for managing StorageProfile resources. StorageProfiles describe the capabilities of a StorageClass and provide default clone and access mode strategies.

OpenAPI Specification

kubevirt-storageprofiles-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: KubeVirt Containerized Data Importer DataSources StorageProfiles API
  description: The KubeVirt Containerized Data Importer (CDI) API provides Kubernetes CRD endpoints for managing virtual machine disk image import and cloning pipelines. CDI introduces DataVolume, DataSource, and StorageProfile resources that automate importing VM disk images from HTTP, S3, OCI registries, and other sources into PersistentVolumeClaims ready for use as KubeVirt VM disks.
  version: 1.59.0
  contact:
    name: KubeVirt Community
    url: https://kubevirt.io/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{kubernetes-api-server}
  description: Kubernetes API server
  variables:
    kubernetes-api-server:
      default: localhost:6443
      description: Address of the Kubernetes API server
tags:
- name: StorageProfiles
  description: Operations for managing StorageProfile resources. StorageProfiles describe the capabilities of a StorageClass and provide default clone and access mode strategies.
paths:
  /apis/cdi.kubevirt.io/v1beta1/storageprofiles:
    get:
      operationId: listStorageProfiles
      summary: KubeVirt List StorageProfiles
      description: Returns all StorageProfile resources in the cluster. StorageProfiles are automatically created by CDI for each StorageClass and describe its supported access modes and recommended clone strategies.
      tags:
      - StorageProfiles
      parameters:
      - $ref: '#/components/parameters/labelSelector'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of StorageProfiles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageProfileList'
        '401':
          description: Unauthorized
  /apis/cdi.kubevirt.io/v1beta1/storageprofiles/{name}:
    get:
      operationId: readStorageProfile
      summary: KubeVirt Get a StorageProfile
      description: Returns the specified StorageProfile including its claimed PVC properties, data import cron source format, and clone strategy.
      tags:
      - StorageProfiles
      parameters:
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: StorageProfile details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageProfile'
        '401':
          description: Unauthorized
        '404':
          description: StorageProfile not found
    patch:
      operationId: patchStorageProfile
      summary: KubeVirt Update a StorageProfile
      description: Partially updates a StorageProfile to configure custom clone strategies or override default access modes for this StorageClass.
      tags:
      - StorageProfiles
      parameters:
      - $ref: '#/components/parameters/name'
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              type: object
      responses:
        '200':
          description: StorageProfile updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageProfile'
        '401':
          description: Unauthorized
        '404':
          description: StorageProfile not found
components:
  schemas:
    ObjectMeta:
      type: object
      description: Standard Kubernetes object metadata.
      required:
      - name
      properties:
        name:
          type: string
          description: Name of the resource.
        namespace:
          type: string
          description: Namespace the resource belongs to.
        labels:
          type: object
          additionalProperties:
            type: string
        annotations:
          type: object
          additionalProperties:
            type: string
        resourceVersion:
          type: string
        uid:
          type: string
        creationTimestamp:
          type: string
          format: date-time
    StorageProfileList:
      type: object
      description: List of StorageProfile resources.
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/StorageProfile'
    StorageProfile:
      type: object
      description: A CDI StorageProfile describing the capabilities and recommended configuration for a specific Kubernetes StorageClass.
      properties:
        apiVersion:
          type: string
          enum:
          - cdi.kubevirt.io/v1beta1
        kind:
          type: string
          enum:
          - StorageProfile
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          type: object
          description: StorageProfile specification with user-overridable settings.
          properties:
            claimPropertySets:
              type: array
              description: Access mode and volume mode combinations to use when creating PVCs from this StorageClass.
              items:
                type: object
                properties:
                  accessModes:
                    type: array
                    items:
                      type: string
                  volumeMode:
                    type: string
                    enum:
                    - Block
                    - Filesystem
            cloneStrategy:
              type: string
              description: Preferred clone strategy for this StorageClass. 'copy' uses pod-based copy, 'snapshot' uses VolumeSnapshot, 'csi-clone' uses CSI clone.
              enum:
              - copy
              - snapshot
              - csi-clone
            dataImportCronSourceFormat:
              type: string
              description: Source format used by DataImportCron.
              enum:
              - pvc
              - snapshot
        status:
          type: object
          description: Observed StorageProfile status.
          properties:
            storageClass:
              type: string
              description: Name of the associated StorageClass.
            provisioner:
              type: string
              description: CSI provisioner name.
            claimPropertySets:
              type: array
              description: Detected PVC property sets.
              items:
                type: object
            cloneStrategy:
              type: string
              description: Detected clone strategy.
            dataImportCronSourceFormat:
              type: string
  parameters:
    labelSelector:
      name: labelSelector
      in: query
      required: false
      description: Label selector to filter resources.
      schema:
        type: string
    limit:
      name: limit
      in: query
      required: false
      description: Maximum number of results per page.
      schema:
        type: integer
        minimum: 1
    name:
      name: name
      in: path
      required: true
      description: The name of the resource.
      schema:
        type: string
externalDocs:
  description: CDI Documentation
  url: https://kubevirt.io/user-guide/storage/containerized_data_importer/