v1
Double column
API
CLI
JS Client

Volumes /

Create volume

Creates a volume with the specified payload

Required permission

Project > Volumes > General > Create

Path parameters

    • projectId

      string required
      ID of the project

Request body

  • {object}
    • name

      string required
      The name of the volume.
      min length
      3
      max length
      39
      pattern
      ^[a-zA-Z]((-|\s)?[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*)?$
    • tags

      [array]
      An array of previously defined tags to help identify and group the resource.
      • string
        min length
        1
        max length
        100
        pattern
        ^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$
    • mounts

      [array] required
      Array of mounts, containerMountPaths must be unique
      • {object}
        • volumeMountPath

          string
          Optionally specify the path inside this volume that should be mounted
          pattern
          ^((?!\.\.).)*$
        • containerMountPath

          string required
          Specify the path into which the volume should be mounted
          pattern
          ^((?!:).)*$
    • spec

      (multiple options: oneOf) required
      Information about the desired size and type of the volume. Storage class is only configurable with the relevant feature flag enabled for your account.
    • owningObject

      {object}
      DEPRECATED: The object to attach this volume to.
      • id

        string required
        The id of object to attach this volume to.
        pattern
        ^[A-Za-z0-9-]+$
      • type

        string required
        The type of the object to attach this volume to.
        one of
        service
    • attachedObjects

      [array]
      Array of objects this volume is attached to.
      • {object}
        The object to attach this volume to.
        • id

          string required
          The id of object to attach this volume to.
          pattern
          ^[A-Za-z0-9-]+$
        • type

          string required
          The type of the object to attach this volume to.
          one of
          service

Response body

  • {object}
    Response object.
    • data

      {object} required
      Result data.
      • id

        string required
        Identifier for the volume
      • name

        string required
        Volume name
      • tags

        [array] required
        An array of previously defined tags to help identify and group the resource.
        • string
          min length
          1
          max length
          100
          pattern
          ^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$
      • spec

        (multiple options: oneOf) required
        Information about the desired size and type of the volume. Storage class is only configurable with the relevant feature flag enabled for your account.
      • attachedObjects

        [array]
        List of objects this volume is attached to.
        • {object}
          The object to attach this volume to.
          • id

            string required
            The id of object to attach this volume to.
            pattern
            ^[A-Za-z0-9-]+$
          • type

            string required
            The type of the object to attach this volume to.
            one of
            service
      • status

        string required
        Status the volume is in on the cluster
      • createdAt

        string required
        The timestamp the volume was created at
      • updatedAt

        string required
        The timestamp the volume was last updated at
API
CLI
JS Client

POST /v1/projects/{projectId}/volumes

Example request

Request body
curl
curl --header "Content-Type: application/json" \
  --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
  --request POST \
  --data '{"name":"Example Volume","tags":["my-tag"],"mounts":[{"volumeMountPath":"","containerMountPath":"/container"}],"spec":{"storageClassName":"ssd","storageSize":4096},"attachedObjects":[{"id":"example-service","type":"service"}]}' \
  https://api.northflank.com/v1/projects/{projectId}/volumes

Example response

200 OK

Details about the newly created volume.

JSON

{
  "data": {
    "id": "example-volume",
    "name": "Example Volume",
    "tags": [
      "my-tag"
    ],
    "spec": {
      "storageClassName": "ssd",
      "storageSize": 4096
    },
    "attachedObjects": [
      {
        "id": "example-service",
        "type": "service"
      }
    ],
    "status": "BOUND",
    "createdAt": "2021-01-01 12:00:00.000Z",
    "updatedAt": "2021-01-01 12:00:00.000Z"
  }
}

Example response

409 Conflict

There is already a volume with the same derived identifier

© 2024 Northflank Ltd. All rights reserved.