oc-adm-prune-images man page

oc adm prune images — Remove unreferenced images

Synopsis

oc adm prune images [Options]

Description

Remove image stream tags, images, and image layers by age or usage

This command removes historical image stream tags, unused images, and unreferenced image layers from the integrated registry. By default, all images are considered as candidates. The command can be instructed to consider only images that have been directly pushed to the registry by supplying --all=false flag.

By default, the prune operation performs a dry run making no changes to internal registry. A --confirm flag is needed for changes to be effective. The flag requires a valid route to the integrated Docker registry. If this command is run outside of the cluster network, the route needs to be provided using --registry-url.

Only a user with a cluster role system:image-pruner or higher who is logged-in will be able to actually delete the images.

If the registry is secured with a certificate signed by a self-signed root certificate authority other than the one present in current user's config, you may need to specify it using --certificate-authority flag.

Insecure connection is allowed in the following cases unless certificate-authority is specified:

Options

--all=true

Include images that were imported from external registries as candidates for pruning.  If pruned, all the mirrored objects associated with them will also be removed from the integrated registry.

--confirm=false

If true, specify that image pruning should proceed. Defaults to false, displaying what would be deleted but not actually deleting anything. Requires a valid route to the integrated Docker registry (see --registry-url).

--force-insecure=false

If true, allow an insecure connection to the docker registry that is hosted via HTTP or has an invalid HTTPS certificate. Whenever possible, use --certificate-authority instead of this dangerous option.

--ignore-invalid-refs=false

If true, the pruning process will ignore all errors while parsing image references. This means that the pruning process will ignore the intended connection between the object and the referenced image. As a result an image may be incorrectly deleted as unused.

--keep-tag-revisions=3

Specify the number of image revisions for a tag in an image stream that will be preserved.

--keep-younger-than=0

Specify the minimum age of an image and its referrers for it to be considered a candidate for pruning.

--prune-over-size-limit=false

Specify if images which are exceeding LimitRanges (see 'openshift.io/Image'), specified in the same namespace, should be considered for pruning. This flag cannot be combined with --keep-younger-than nor --keep-tag-revisions.

--prune-registry=true

If false, the prune operation will clean up image API objects, but the none of the associated content in the registry is removed.  Note, if only image API objects are cleaned up through use of this flag, the only means for subsequently cleaning up registry data corresponding to those image API objects is to employ the 'hard prune' administrative task.

--registry-url=""

The address to use when contacting the registry, instead of using the default value. This is useful if you can't resolve or reach the registry (e.g.; the default is a cluster-internal URL) but you do have an alternative route that works. Particular transport protocol can be enforced using '<scheme>://' prefix.

Options Inherited from Parent Commands

--allow_verification_with_non_compliant_keys=false

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

--alsologtostderr=false

log to standard error as well as files

--application_metrics_count_limit=100

Max number of application metrics to store (per container)

--as=""

Username to impersonate for the operation

--as-group=[]

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

--azure-container-registry-config=""

Path to the file containing Azure container registry configuration information.

--boot_id_file="/proc/sys/kernel/random/boot_id"

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

--cache-dir="/builddir/.kube/http-cache"

Default HTTP 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

--cloud-provider-gce-lb-src-cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16

CIDRs opened in GCE firewall for LB traffic proxy health checks

--cluster=""

The name of the kubeconfig cluster to use

--container_hints="/etc/cadvisor/container_hints.json"

location of the container hints file

--containerd="unix:///var/run/containerd.sock"

containerd endpoint

--context=""

The name of the kubeconfig context to use

--default-not-ready-toleration-seconds=300

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.

--default-unreachable-toleration-seconds=300

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="unix:///var/run/docker.sock"

docker endpoint

--docker-tls=false

use TLS to connect to docker

--docker-tls-ca="ca.pem"

path to trusted CA

--docker-tls-cert="cert.pem"

path to client certificate

--docker-tls-key="key.pem"

path to private key

--docker_env_metadata_whitelist=""

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

--docker_only=false

Only report docker containers in addition to root stats

--docker_root="/var/lib/docker"

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

--enable_load_reader=false

Whether to enable cpu load reader

--event_storage_age_limit="default=24h"

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

--event_storage_event_limit="default=100000"

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

--global_housekeeping_interval=0

Interval between global housekeepings

--housekeeping_interval=0

Interval between container housekeepings

--httptest.serve=""

if non-empty, httptest.NewServer serves on this address and blocks

--insecure-skip-tls-verify=false

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

--kubeconfig=""

Path to the kubeconfig file to use for CLI requests.

--log-flush-frequency=0

Maximum number of seconds between log flushes

--log_backtrace_at=:0

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

--log_cadvisor_usage=false

Whether to log the usage of the cAdvisor container

--log_dir=""

If non-empty, write log files in this directory

--logtostderr=true

log to standard error instead of files

--machine_id_file="/etc/machine-id,/var/lib/dbus/machine-id"

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

--match-server-version=false

Require server version to match client version

-n, --namespace=""

If present, the namespace scope for this CLI request

--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

--stderrthreshold=2

logs at or above this threshold go to stderr

--storage_driver_buffer_duration=0

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

--storage_driver_db="cadvisor"

database name

--storage_driver_host="localhost:8086"

database host:port

--storage_driver_password="root"

database password

--storage_driver_secure=false

use secure connection with database

--storage_driver_table="stats"

table name

--storage_driver_user="root"

database username

--token=""

Bearer token for authentication to the API server

--user=""

The name of the kubeconfig user to use

-v, --v=0

log level for V logs

--version=false

Print version information and quit

--vmodule=

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

Example

  # See, what the prune command would delete if only images and their referrers were more than an hour old
  # and obsoleted by 3 newer revisions under the same tag were considered.
  oc adm prune images --keep-tag-revisions=3 --keep-younger-than=60m
  
  # To actually perform the prune operation, the confirm flag must be appended
  oc adm prune images --keep-tag-revisions=3 --keep-younger-than=60m --confirm
  
  # See, what the prune command would delete if we're interested in removing images
  # exceeding currently set limit ranges ('openshift.io/Image')
  oc adm prune images --prune-over-size-limit
  
  # To actually perform the prune operation, the confirm flag must be appended
  oc adm prune images --prune-over-size-limit --confirm
  
  # Force the insecure http protocol with the particular registry host name
  oc adm prune images --registry-url=http://registry.example.org --confirm
  
  # Force a secure connection with a custom certificate authority to the particular registry host name
  oc adm prune images --registry-url=registry.example.org --certificate-authority=/path/to/custom/ca.crt --confirm

See Also

oc-adm-prune(1),

History

June 2016, Ported from the Kubernetes man-doc generator

Referenced By

oc-adm-prune(1).

Openshift CLI User Manuals June 2016