k3s/api/doc/manifest-schema.json

127 lines
4.7 KiB
JSON
Raw Normal View History

2014-07-02 06:32:59 +00:00
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"description": "Manifest describing group of [Docker containers](http://docker.io); also used by [Google Cloud Platform's container-vm images](https://developers.google.com/compute/docs/containers).",
"properties": {
"version": {
"type": "string",
"description": "The version of the manifest.",
"enum": [
"v1beta1"
]
},
"containers": {
"type": "array",
"description": "The list of containers to launch.",
"items": {
"type": "object",
"required": [
"image"
],
"properties": {
"name": {
"type": "string",
"description" : "A symbolic name used to create and track the container. Must be an RFC1035 compatible value (a single segment of a DNS name). All containers must have unique names."
},
"image": {
"type": "string",
"description" : "The container image to run."
},
"command": {
"type": "array",
"description" : "The command line to run. If this is omitted, the container is assumed to have a command embedded in it.",
"items": {
"type": "string"
}
},
"workingDir": {
"type": "string",
"description" : "The initial working directory for the command. Default is the containers embedded working directory or else the Docker default."
},
"volumeMounts": {
"type": "array",
"description" : "Data volumes to expose into the container.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description" : "The name of the volume to mount. This must match the name of a volume defined in volumes[]."
},
"mountPath": {
"type": "string",
"description" : "The path at which to mount the volume inside the container. This must be an absolute path and no longer than 512 characters."
},
"readOnly": {
"type": "boolean",
"description" : "Whether this volume should be read-only. Default is false (read-write)."
}
}
}
},
"ports": {
"type": "array",
"description" : "Ports to expose from the container. All of these are exposed out through the public interface of the VM.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description" : "A symbolic name used to create and track the port. Must be an RFC1035 compatible value (a single segment of a DNS name)."
},
"containerPort": {
"type": "integer",
"description" : "The port on which the container is listening."
},
"hostPort": {
"type": "integer",
"description" : "The port on the host which maps to the containerPort. Default is auto-allocated."
},
"protocol": {
"type": "string",
"description" : "The protocol for this port. Valid options are TCP and UDP. Default is TCP."
}
}
}
},
"env": {
"type": "array",
"description" : "Environment variables to set before the container runs.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description" : "The name of the environment variable."
},
"value": {
"type": "string",
"description" : "The value of the environment variable."
}
}
}
}
}
}
},
"volumes": {
"type": "array",
"description" : "A list of volumes to share between containers.",
"uniqueItems": true,
"items": {
"type": "object",
"required": [
"name"
],
2014-07-02 06:32:59 +00:00
"properties": {
"name": {
"type": "string",
"description" : "The name of the volume. Must be an RFC1035 compatible value (a single segment of a DNS name). All volumes must have unique names. These are referenced by `containers[].volumeMounts[].name`.",
"pattern": "^[a-z]([-a-z0-9]*[a-z0-9])*"
}
}
2014-07-02 06:32:59 +00:00
}
}
}
}