-
Bug
-
Resolution: Won't Do
-
Critical
-
None
-
4.14.z
-
Quality / Stability / Reliability
-
False
-
-
None
-
Important
-
None
-
None
-
None
-
None
-
CLID Sprint 267
-
1
-
None
-
None
-
None
-
None
-
None
-
None
-
None
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
```