-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
4.14.z
-
Important
-
None
-
False
-
Description of problem:
- In a context where the `ImageSetConfiguration` custom resource is updated - i.e. before [1] and after [2] change - and introducing at least one metadata change (like the edge [3] update from 4.14.26 to 4.14.39).. we are failing to see v1 auto-pruning being triggered, ending up with orphaned 4.12 and 4.13 images in the mirror registry:
[1] ~~~ - name: stable-4.14 minVersion: 4.14.19 maxVersion: 4.14.26 <<--- type: ocp - name: eus-4.14 minVersion: 4.14.19 maxVersion: 4.14.26 <<--- - name: stable-4.13 minVersion: 4.13.15 maxVersion: 4.13.37 type: ocp - name: eus-4.12 minVersion: 4.12.18 maxVersion: 4.12.47 - name: stable-4.12 minVersion: 4.12.18 maxVersion: 4.12.47 ~~~ [2] ~~~ - name: stable-4.14 minVersion: 4.14.19 maxVersion: 4.14.39 <<--- type: ocp - name: eus-4.14 minVersion: 4.14.19 maxVersion: 4.14.39 <<<--- ~~~ [3] ~~~ $ CHANNEL_NAME=stable-4.14; for v in 4.14.{26..39}; do CURRENT_VERSION=$v; curl -sH 'Accept:application/json' "https://api.openshift.com/api/upgrades_info/v1/graph?channel=${CHANNEL_NAME}" | jq -r --arg CURRENT_VERSION "${CURRENT_VERSION}" '. as $graph | $graph.nodes | map(.version=='\"$CURRENT_VERSION\"') | index(true) as $orig | $graph.edges | map(select(.[0] == $orig)[1]) | map($graph.nodes[.].version) | sort_by(.) | "'"$CURRENT_VERSION"': \(.)"'; done 4.14.26: ["4.14.27","4.14.28","4.14.31","4.14.32","4.14.33","4.14.35","4.14.36","4.14.37","4.14.38","4.14.39","4.14.41"] ^^^^^^^ [...] ~~~
Actual results:
The images related to the removed stable-4.12, eus-4.12 and stable-4.13 channels remain unpruned from the mirror registry.
Expected results:
For v1 oc-mirror auto-pruning to be triggered in the context of the removed stable-4.12, eus-4.12 and stable-4.13 channels
Additional info:
- RHOCP 4.14 in a disconnected setting.: i.e. https://docs.openshift.com/container-platform/4.14/installing/disconnected_install/installing-mirroring-disconnected.html - Using VMware Harbor with local storage and the relevant `storage.delete.enabled: true` configuration in place. ``` storage: cache: layerinfo: redis filesystem: rootdirectory: /storage maintenance: uploadpurging: enabled: true age: 168h interval: 24h dryrun: false delete: enabled: true ```