-
Epic
-
Resolution: Done
-
Major
-
None
-
None
-
None
-
Catalogd Unpacking
-
Upstream
-
False
-
None
-
False
-
Not Selected
-
Done
-
OCPSTRAT-429 - [Phase 2 MVP/Tech Preview] OLM 1.0 - Extension Catalogs (F1)
-
OCPSTRAT-429[Phase 2 MVP/Tech Preview] OLM 1.0 - Extension Catalogs (F1)
-
0% To Do, 0% In Progress, 100% Done
Epic Goal
- Satisfy this piece of the Extension Catalogs feature [1]:
“Changes or updates to the catalog source images should be reconciled and made available on the catalog representation on the cluster.”
[1] OCPSTRAT-429 [Phase 2 MVP/Tech Preview] OLM 1.0 - Extension Catalogs (F1)
Why is this important?
- This will enable catalog changes to be automatically made available on the cluster without needing any manual intervention.
Currently Catalogd uses a Pod for unpacking catalog image contents and reads the unpacked contents from said Pod’s logs. There are a few problems associated with this:
- As mentioned by the Kubernetes documentation on working with Pods, Pods are designed as disposable entities. Pods that have exited successfully can be garbage collected at any time and thus there is no guarantee that it will still exist by the time we attempt to read the logs or that the logs that are present are lossless.
- It is not recommended to manage Pod resources yourself and instead use something like a Deployment, Job, or StatefulSet.
- When thinking about polling, we will likely be checking if the SHA of an image is different from the last time the image was unpacked. The general approach to doing this with a Pod based unpacking process is to create another pod to pull the same image and check the Pod status to determine if there is a difference in the SHA.
Directly communicating with an image registry allows us to avoid running into these issues altogether.
RFC: https://docs.google.com/document/d/1VHlUAVewIckVMLccNsoNptRsrQ19KcWzQ2HZetYK2h0/edit?usp=sharing
Relevant Links
Upstream epic issue: https://github.com/operator-framework/catalogd/issues/179
Done Checklist
- CI - CI is running, tests are automated and merged.
- DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>