oc-set-volumes - Man Page

Update volumes on a pod template


oc set volumes [Options]


Update volumes on a pod template

This command can add, update or remove volumes from containers for any object that has a pod template (deployment configs, replication controllers, or pods). You can list volumes in pod or any object that has a pod template. You can specify a single object or multiple, and alter volumes on all containers or just those that match a given name.

If you alter a volume setting on a deployment config, a deployment will be triggered. Changing a replication controller will not affect running pods, and you cannot change a pod's volumes once it has been created.

Volume types include:

· emptydir (empty directory) default : A directory allocated when the pod is created on a local host, is removed when the pod is deleted and is not copied across servers

· hostdir (host directory): A directory with specific path on any host (requires elevated privileges)

· persistentvolumeclaim or pvc (persistent volume claim): Link the volume directory in the container to a persistent volume claim you have allocated by name - a persistent volume claim is a request to allocate storage. Note that if your claim hasn't been bound, your pods will not start.

· secret (mounted secret): Secret volumes mount a named secret to the provided directory.

For descriptions on other volume types, see  ⟨https://docs.openshift.com



If true, add volume and/or volume mounts for containers


If true, select all resources in the namespace of the specified resource types


If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.


StorageClass to use for the persistent volume claim


Set the access mode of the claim to be created. Valid values are ReadWriteOnce (rwo), ReadWriteMany (rwm), or ReadOnlyMany (rom)


Persistent volume claim name. Must be provided for persistentVolumeClaim volume type


If specified along with a persistent volume type, create a new claim with the given size in bytes. Accepts SI notation: 10, 10G, 10Gi


Name of the persisted config map. Must be provided for configmap volume type


If true, confirm that you really want to remove multiple volumes

-c,  --containers="*"

The names of containers in the selected pod templates to change - may use wildcards


The default mode bits to create files with. Can be between 0000 and 0777. Defaults to 0644.


If true, only print the object that would be sent, without sending it.

-f,  --filename=[]

Filename, directory, or URL to files to use to edit the resource


If true, set image will NOT contact api-server but run locally.

-m,  --mount-path=""

Mount path inside the container. Optional param for --add or --remove


Name of the volume. If empty, auto generated for add operation

-o,  --output=""

Output format. One of: json|yaml|name|template|go-template|go-template-file|templatefile|jsonpath|jsonpath-file.


If true, replace existing volume source with the provided name and/or volume mount for the given resource


Host path. Must be provided for hostPath volume type


Mount volume as ReadOnly. Optional param for --add or --remove

-R,  --recursive=false

Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory.


If true, remove volume and/or volume mounts for containers


Name of the persisted secret. Must be provided for secret volume type

-l,  --selector=""

Selector (label query) to filter on


Details of volume source as json string. This can be used if the required volume type is not supported by --type option. (e.g.: '{"gitRepo": {"repository": <git-url>, "revision": <commit-hash>}}')


Path within the local volume from which the container's volume should be mounted. Optional param for --add or --remove


Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [ ⟨http://golang.org/pkg/text/template/#pkg-overview⟩].

-t,  --type=""

Type of the volume source for add operation. Supported options: emptyDir, hostPath, secret, configmap, persistentVolumeClaim

Options Inherited from Parent Commands


Allow a SignatureVerifier to use keys which are technically non-compliant with RFC6962.


log to standard error as well as files


Max number of application metrics to store (per container)


Username to impersonate for the operation


Group to impersonate for the operation, this flag can be repeated to specify multiple groups.


Path to the file containing Azure container registry configuration information.


Comma-separated list of files to check for boot-id. Use the first one that exists.


Default HTTP cache directory


Path to a cert file for the certificate authority


Path to a client certificate file for TLS


Path to a client key file for TLS


CIDRs opened in GCE firewall for LB traffic proxy health checks


The name of the kubeconfig cluster to use


location of the container hints file


containerd endpoint


The name of the kubeconfig context to use


Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.


Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.


docker endpoint


use TLS to connect to docker


path to trusted CA


path to client certificate


path to private key


a comma-separated list of environment variable keys that needs to be collected for docker containers


Only report docker containers in addition to root stats


DEPRECATED: docker root is read from docker info (this is a fallback, default: /var/lib/docker)


Whether to enable cpu load reader


Max length of time for which to store events (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is a duration. Default is applied to all non-specified event types


Max number of events to store (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is an integer. Default is applied to all non-specified event types


Interval between global housekeepings


Interval between container housekeepings


If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure


Path to the kubeconfig file to use for CLI requests.


Maximum number of seconds between log flushes


when logging hits line file:N, emit a stack trace


Whether to log the usage of the cAdvisor container


If non-empty, write log files in this directory


log to standard error instead of files


Comma-separated list of files to check for machine-id. Use the first one that exists.


Require server version to match client version

-n,  --namespace=""

If present, the namespace scope for this CLI request


The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.

-s,  --server=""

The address and port of the Kubernetes API server


logs at or above this threshold go to stderr


Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction


database name


database host:port


database password


use secure connection with database


table name


database username


Bearer token for authentication to the API server


The name of the kubeconfig user to use

-v,  --v=0

log level for V logs


Print version information and quit


comma-separated list of pattern=N settings for file-filtered logging


  # List volumes defined on all deployment configs in the current project
  oc set volume dc --all
  # Add a new empty dir volume to deployment config (dc) 'registry' mounted under
  # /var/lib/registry
  oc set volume dc/registry --add --mount-path=/var/lib/registry
  # Use an existing persistent volume claim (pvc) to overwrite an existing volume 'v1'
  oc set volume dc/registry --add --name=v1 -t pvc --claim-name=pvc1 --overwrite
  # Remove volume 'v1' from deployment config 'registry'
  oc set volume dc/registry --remove --name=v1
  # Create a new persistent volume claim that overwrites an existing volume 'v1'
  oc set volume dc/registry --add --name=v1 -t pvc --claim-size=1G --overwrite
  # Change the mount point for volume 'v1' to /data
  oc set volume dc/registry --add --name=v1 -m /data --overwrite
  # Modify the deployment config by removing volume mount "v1" from container "c1"
  # (and by removing the volume "v1" if no other containers have volume mounts that reference it)
  oc set volume dc/registry --remove --name=v1 --containers=c1
  # Add new volume based on a more complex volume source (Git repo, AWS EBS, GCE PD,
  # Ceph, Gluster, NFS, ISCSI, ...)
  oc set volume dc/registry --add -m /repo --source=<json-string>

See Also



June 2016, Ported from the Kubernetes man-doc generator

Referenced By


Openshift CLI User Manuals June 2016