OC-SET-VOLUMES(1)
π oc set volumes β like, the whole manual, bestie
okay so this is OC SET(1), from back in June 2016 (yes, she's a vintage icon) β and it's the page for oc set volumes. Welcome, come sit with me, we're gonna learn how to wrangle volumes on a pod template together and it's gonna be so good. π
β¨ NAME β¨
oc set volumes β update volumes on a pod template, periodt.
β¨ SYNOPSIS β¨
oc set volumes [OPTIONS]
β¨ DESCRIPTION β¨
Update volumes on a pod template. That's the whole vibe.
This command can add, update or remove volumes from containers for any object that has a pod template β so deployment configs, replication controllers, or pods, all of them are fair game π«Ά. You can list volumes in a pod or in any object that has a pod template. You can give it one single object or several, and you can alter volumes on all the containers or only the ones that match a name you give.
Now the important tea: 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 β sorry bestie β you literally cannot change a pod's volumes once it has been created. It's giving "created and sealed", iykyk. π
Volume types include:
emptydir(empty directory) default: a directory allocated when the pod is created on a local host, removed when the pod is deleted, and not copied across servers.hostdir(host directory): a directory with a specific path on any host β this one requires elevated privileges, so, like, handle with care π.persistentvolumeclaimorpvc(persistent volume claim): links the volume directory in the container to a persistent volume claim you've allocated by name. A persistent volume claim is a request to allocate storage. Heads up though β if your claim hasn't been bound, your pods will not start. Not a drill. π¨secret(mounted secret): secret volumes mount a named secret to the provided directory. Secrets! Iconic.
For descriptions on other volume types, see <https://docs.openshift.com> β she's got range, go look.
β¨ OPTIONS β¨
okay this is the long part, but every single one matters, so no skipping, we don't do that here π
--add=falseβ iftrue, add volume and/or volume mounts for containers.--all=falseβ iftrue, select all resources in the namespace of the specified resource types.--allow-missing-template-keys=trueβ iftrue, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats, fyi.--claim-class=""β the StorageClass to use for the persistent volume claim.--claim-mode="ReadWriteOnce"β set the access mode of the claim to be created. Valid values areReadWriteOnce(rwo),ReadWriteMany(rwm), orReadOnlyMany(rom).--claim-name=""β persistent volume claim name. Must be provided forpersistentVolumeClaimvolume type. non-negotiable β--claim-size=""β if specified along with a persistent volume type, create a new claim with the given size in bytes. Accepts SI notation:10,10G,10Gi.--configmap-name=""β name of the persisted config map. Must be provided forconfigmapvolume type.--confirm=falseβ iftrue, confirm that you really want to remove multiple volumes. yes, she asks first, consent is cute π-c,--containers="*"β the names of containers in the selected pod templates to change β may use wildcards.--default-mode=""β the default mode bits to create files with. Can be between0000and0777. Defaults to0644.--dry-run="none"β must be"none","server", or"client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource. practice run, no commitment β¨--field-manager="kubectl-set"β name of the manager used to track field ownership.-f,--filename=[]β filename, directory, or URL to files to use to edit the resource.-k,--kustomize=""β process the kustomization directory. This flag can't be used together with-for-R. pick a lane, bestie.--local=falseβ iftrue, set image will NOT contact api-server but run locally.-m,--mount-path=""β mount path inside the container. Optional param for--addor--remove.--name=""β name of the volume. If empty, auto generated for add operation. she'll name herself, main character energy π-o,--output=""β output format. One of: (json,yaml,kyaml,name,go-template,go-template-file,template,templatefile,jsonpath,jsonpath-as-json,jsonpath-file).--overwrite=falseβ iftrue, replace existing volume source with the provided name and/or volume mount for the given resource.--path=""β host path. Must be provided forhostPathvolume type.--read-only=falseβ mount volume as ReadOnly. Optional param for--addor--remove.-R,--recursive=falseβ process the directory used in-f,--filenamerecursively. Useful when you want to manage related manifests organized within the same directory. tidy queen π§--remove=falseβ iftrue, remove volume and/or volume mounts for containers.--secret-name=""β name of the persisted secret. Must be provided forsecretvolume type.-l,--selector=""β selector (label query) to filter on.--show-managed-fields=falseβ iftrue, keep themanagedFieldswhen printing objects in JSON or YAML format.--source=""β details of volume source as json string. This can be used if the required volume type is not supported by--typeoption. (e.g.:'{"nfs": {"path": "/tmp","server":"172.17.0.2"}}')--sub-path=""β path within the local volume from which the container's volume should be mounted. Optional param for--addor--remove.--template=""β 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 π
these are the family heirlooms, she got them from her parent command, and we're showing them the respect they deserve π«Ά
--as=""β username to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group=[]β group to impersonate for the operation; this flag can be repeated to specify multiple groups.--as-uid=""β UID to impersonate for the operation.--as-user-extra=[]β user extras to impersonate for the operation; this flag can be repeated to specify multiple values for the same key.--cache-dir="/homeless-shelter/.kube/cache"β default cache directory.--certificate-authority=""β path to a cert file for the certificate authority.--client-certificate=""β path to a client certificate file for TLS.--client-key=""β path to a client key file for TLS.--cluster=""β the name of the kubeconfig cluster to use.--context=""β the name of the kubeconfig context to use.--disable-compression=falseβ iftrue, opt out of response compression for all requests to the server.--insecure-skip-tls-verify=falseβ iftrue, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure β like, genuinely, be careful, that's the whole warning π.--kubeconfig=""β path to the kubeconfig file to use for CLI requests.--kuberc=""β path to the kuberc file to use for preferences. This can be disabled by exportingKUBECTL_KUBERC=falsefeature gate or turning off the featureKUBERC=off.--match-server-version=falseβ require server version to match client version.-n,--namespace=""β if present, the namespace scope for this CLI request.--profile="none"β name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex).--profile-output="profile.pprof"β name of the file to write the profile to.--request-timeout="0"β 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.--tls-server-name=""β server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used.--token=""β bearer token for authentication to the API server.--user=""β the name of the kubeconfig user to use.--warnings-as-errors=falseβ treat warnings received from the server as errors and exit with a non-zero exit code.
πΈ EXAMPLE πΈ
these examples are, like, actually so useful, please read them, I'm begging π₯Ί
# 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) 'myapp' mounted under
# /var/lib/myapp
oc set volume dc/myapp --add --mount-path=/var/lib/myapp
# Use an existing persistent volume claim (PVC) to overwrite an existing volume 'v1'
oc set volume dc/myapp --add --name=v1 -t pvc --claim-name=pvc1 --overwrite
# Remove volume 'v1' from deployment config 'myapp'
oc set volume dc/myapp --remove --name=v1
# Create a new persistent volume claim that overwrites an existing volume 'v1'
oc set volume dc/myapp --add --name=v1 -t pvc --claim-size=1G --overwrite
# Change the mount point for volume 'v1' to /data
oc set volume dc/myapp --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/myapp --remove --name=v1 --containers=c1
# Add new volume based on a more complex volume source (AWS EBS, GCE PD,
# Ceph, Gluster, NFS, ISCSI, ...)
oc set volume dc/myapp --add -m /data --source=<json-string>
π¦ SEE ALSO π¦
oc-set(1) β go give her a visit too, she's lovely π
π HISTORY π
June 2016, Ported from the Kubernetes man-doc generator.
and that's the whole page, bestie!! π you ate that π β¨
little sign-off from the footer: this beauty comes to you courtesy of Openshift β the Openshift CLI User Manuals β and she's dated June 2016. vintage but still slaying, no cap ππ«Ά
π¦ where this page comes from
- nixpkgs unstable: openshift 4.22.0-202605222050
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms