VolumeConfig#

pydantic model nublado.controller.config.VolumeConfig#

A volume that may be mounted inside a container.

Parameters:

data (Any)

Show JSON schema
{
   "title": "VolumeConfig",
   "description": "A volume that may be mounted inside a container.",
   "type": "object",
   "properties": {
      "name": {
         "description": "Used as the Kubernetes volume name and therefore must be a valid Kubernetes name",
         "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
         "title": "Name of volume",
         "type": "string"
      },
      "source": {
         "anyOf": [
            {
               "$ref": "#/$defs/HostPathVolumeSource"
            },
            {
               "$ref": "#/$defs/NFSVolumeSource"
            },
            {
               "$ref": "#/$defs/PVCVolumeSource"
            }
         ],
         "title": "Source of volume"
      }
   },
   "$defs": {
      "HostPathVolumeSource": {
         "additionalProperties": false,
         "description": "Path on Kubernetes node to mount in the container.",
         "properties": {
            "type": {
               "const": "hostPath",
               "title": "Type",
               "type": "string"
            },
            "path": {
               "description": "Absolute host path to mount in the container",
               "examples": [
                  "/home"
               ],
               "pattern": "^/.*",
               "title": "Host path",
               "type": "string"
            }
         },
         "required": [
            "type",
            "path"
         ],
         "title": "HostPathVolumeSource",
         "type": "object"
      },
      "NFSVolumeSource": {
         "additionalProperties": false,
         "description": "NFS volume to mount in the container.",
         "properties": {
            "type": {
               "const": "nfs",
               "title": "Type",
               "type": "string"
            },
            "server": {
               "description": "Name or IP address of the NFS server for the volume",
               "examples": [
                  "10.13.105.122"
               ],
               "title": "NFS server",
               "type": "string"
            },
            "serverPath": {
               "description": "Absolute path of NFS server export of the volume",
               "examples": [
                  "/share1/home"
               ],
               "pattern": "^/.*",
               "title": "Export path",
               "type": "string"
            },
            "readOnly": {
               "default": false,
               "description": "Whether to mount the NFS volume read-only. If this is true, any mount of this volume will be read-only even if the mount is not marked as such.",
               "title": "Is read-only",
               "type": "boolean"
            }
         },
         "required": [
            "type",
            "server",
            "serverPath"
         ],
         "title": "NFSVolumeSource",
         "type": "object"
      },
      "PVCVolumeResources": {
         "additionalProperties": false,
         "description": "Resources for a persistent volume claim.",
         "properties": {
            "requests": {
               "additionalProperties": {
                  "type": "string"
               },
               "title": "Resource requests",
               "type": "object"
            }
         },
         "required": [
            "requests"
         ],
         "title": "PVCVolumeResources",
         "type": "object"
      },
      "PVCVolumeSource": {
         "additionalProperties": false,
         "description": "A PVC to create to materialize the volume to mount in the container.",
         "properties": {
            "type": {
               "const": "persistentVolumeClaim",
               "title": "Type",
               "type": "string"
            },
            "accessModes": {
               "items": {
                  "$ref": "#/$defs/VolumeAccessMode"
               },
               "title": "Access mode",
               "type": "array"
            },
            "storageClassName": {
               "title": "Storage class",
               "type": "string"
            },
            "resources": {
               "$ref": "#/$defs/PVCVolumeResources",
               "title": "Resources for volume"
            },
            "readOnly": {
               "default": false,
               "description": "Whether to force all mounts of this volume to read-only",
               "title": "Is read-only",
               "type": "boolean"
            }
         },
         "required": [
            "type",
            "accessModes",
            "storageClassName",
            "resources"
         ],
         "title": "PVCVolumeSource",
         "type": "object"
      },
      "VolumeAccessMode": {
         "description": "Access mode for a persistent volume.",
         "enum": [
            "ReadOnlyMany",
            "ReadWriteMany",
            "ReadWriteOnce",
            "ReadWriteOncePod"
         ],
         "title": "VolumeAccessMode",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "source"
   ]
}

Fields:
field name: Annotated[str] [Required]#

Used as the Kubernetes volume name and therefore must be a valid Kubernetes name

Constraints:
  • pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

field source: Annotated[Union[HostPathVolumeSource, NFSVolumeSource, PVCVolumeSource]] [Required]#

This page was last modified on .