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-09-03 21:16:48 +00:00

85 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
Images from the {product-registry} that are no longer required by the system due to age, status, or exceed limits are automatically pruned. Cluster administrators can configure the Pruning Custom Resource, or suspend it.
.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.
.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 * * * <1>
suspend: false <2>
keepTagRevisions: 3 <3>
keepYoungerThanDuration: 60m <4>
keepYoungerThan: 3600000000000 <5>
resources: {} <6>
affinity: {} <7>
nodeSelector: {} <8>
tolerations: [] <9>
successfulJobsHistoryLimit: 3 <10>
failedJobsHistoryLimit: 3 <11>
status:
observedGeneration: 2 <12>
conditions: <13>
- 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."
----
<1> `schedule`: `CronJob` formatted schedule. This is an optional field, default is daily at midnight.
<2> `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`.
<3> `keepTagRevisions`: The number of revisions per tag to keep. This is an optional field, default is `3`. The initial value is `3`.
<4> `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.
<5> `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.
<6> `resources`: Standard pod resource requests and limits. This is an optional field.
<7> `affinity`: Standard pod affinity. This is an optional field.
<8> `nodeSelector`: Standard pod node selector. This is an optional field.
<9> `tolerations`: Standard pod tolerations. This is an optional field.
<10> `successfulJobsHistoryLimit`: The maximum number of successful jobs to retain. Must be `>= 1` to ensure metrics are reported. This is an optional field, default is `3`. The initial value is `3`.
<11> `failedJobsHistoryLimit`: The maximum number of failed jobs to retain. Must be `>= 1` to ensure metrics are reported. This is an optional field, default is `3`. The initial value is `3`.
<12> `observedGeneration`: The generation observed by the Operator.
<13> `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.
[IMPORTANT]
====
The Image Registry Operator's behavior for managing the pruner is orthogonal to the `managementState` specified on the Image Registry Operator's `ClusterOperator` object. 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.
====