1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/pruning-images.adoc
2025-11-20 11:51:46 +00:00

86 lines
4.4 KiB
Plaintext

// Module included in the following assemblies:
//
// * applications/pruning-objects.adoc
:_mod-docs-content-type: PROCEDURE
[id="pruning-images_{context}"]
= Automatically pruning images
[role="_abstract"]
Images from the {product-registry} that are no longer required by the system because of age, status, or exceed limits being automatically pruned. As a cluster administrator, can configure or suspend the pruning Custom Resource (CR).
.Prerequisites
ifndef::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* You have access to an {product-title} cluster using an account with cluster administrator permissions.
endif::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
ifdef::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* You have access to an {product-title} cluster using an account with `dedicated-admin` permissions.
endif::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* Install the `oc` CLI.
[IMPORTANT]
====
The behavior of the Image Registry Operator for managing the pruner is independent to the `managementState` specified on the `ClusterOperator` object of the Image Registry Operator. If the Image Registry Operator is not in the `Managed` state, the image pruner can still be configured and managed by the Pruning Custom Resource.
However, the `managementState` of the Image Registry Operator alters the behavior of the deployed image pruner job:
* `Managed`: the `--prune-registry` flag for the image pruner is set to `true`.
* `Removed`: the `--prune-registry` flag for the image pruner is set to `false`, meaning it only prunes image metadata in etcd.
====
.Procedure
* Verify that the object named `imagepruners.imageregistry.operator.openshift.io/cluster` contains the following `spec` and `status` fields:
+
[source,yaml]
----
spec:
schedule: 0 0 * * *
suspend: false
keepTagRevisions: 3
keepYoungerThanDuration: 60m
keepYoungerThan: 3600000000000
resources: {}
affinity: {}
nodeSelector: {}
tolerations: []
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
status:
observedGeneration: 2
conditions:
- type: Available
status: "True"
lastTransitionTime: 2019-10-09T03:13:45
reason: Ready
message: "Periodic image pruner has been created."
- type: Scheduled
status: "True"
lastTransitionTime: 2019-10-09T03:13:45
reason: Scheduled
message: "Image pruner job has been scheduled."
- type: Failed
staus: "False"
lastTransitionTime: 2019-10-09T03:13:45
reason: Succeeded
message: "Most recent image pruning job succeeded."
----
* `schedule`: `CronJob` formatted schedule. This is an optional field, default is daily at midnight.
* `suspend`: If set to `true`, the `CronJob` running pruning is suspended. This is an optional field, default is `false`. The initial value on new clusters is `false`.
* `keepTagRevisions`: The number of revisions per tag to keep. This is an optional field, default is `3`. The initial value is `3`.
* `keepYoungerThanDuration`: Retain images younger than this duration. This is an optional field. If a value is not specified, either `keepYoungerThan` or the default value `60m` (60 minutes) is used.
* `keepYoungerThan`: Deprecated. The same as `keepYoungerThanDuration`, but the duration is specified as an integer in nanoseconds. This is an optional field. When `keepYoungerThanDuration` is set, this field is ignored.
* `resources`: Standard pod resource requests and limits. This is an optional field.
* `affinity`: Standard pod affinity. This is an optional field.
* `nodeSelector`: Standard pod node selector. This is an optional field.
* `tolerations`: Standard pod tolerations. This is an optional field.
* `successfulJobsHistoryLimit`: The maximum number of successful jobs to retain. Must be greater than or equal to `1` to ensure metrics are reported. This is an optional field, default is `3`. The initial value is `3`.
* `failedJobsHistoryLimit`: The maximum number of failed jobs to retain. Must be greater than or equal `1` to ensure metrics are reported. This is an optional field, default is `3`. The initial value is `3`.
* `observedGeneration`: The generation observed by the Operator.
* `conditions`: The standard condition objects with the following types:
** `Available`: Indicates if the pruning job has been created. Reasons can be `Ready` or `Error`.
** `Scheduled`: Indicates if the next pruning job has been scheduled. Reasons can be `Scheduled`, `Suspended`, or `Error`.
** `Failed`: Indicates if the most recent pruning job failed.