Initially when i read the docs  i assumed that image registry operator's role is similar to what we used to have in 3.x - a simple registry should the user want to use it for images built with 
The registry in 3.x and the registry in 4.x serve the same purpose. The registry itself is the same. The difference is that in 3.x the registry was deployed/managed by the ansible installer + the admin making direct edits to the registry deploymentconfig and using the "oc adm registry" command.
In 4.x, the registry is deployed/managed by the registry operator and the admin asserts desired config by editing the registry operator's config resource.
In your case the registry was not initially available because on vsphere there is no valid storage available, so the operator cannot default the storage configuration. Thus is reports unavailable until the admin takes action to configure the storage properly.
While i was playing with 4.1 i've followed the steps mentioned in  because w/o it the openshift-installer will not report as installation complete. Also the CVO will not be in a healthy state ready to pick up new updates.
As such it seems that the image registry scope is different (and not documented yet, happy to follow up on docs repo once i figure out with your help ;) ) than i thought and so my questions are:
- are all the operator images bundled inside the release payload being stored on the image registry storage?
- if not then is it only CVO which needs to store its own release image ?
The registry doesn't store any images needed by the openshift. The reason the CVO is complaining is because one of the operators (in this case the registry operator) is not reporting available. You'd experience the same thing if any other platform operator was reporting unavailable, it's not specific to a dependency on the registry.
- any particular reason why there is no option to customize the size and so it must be 100GB size (as per the docs and the code base) ?
The docs are a bit unclear but what it is saying is that you must define a 100gig PV because that is the size of volume that the PVC created by the registry operator will require. So if you don't have a 100gig PV, the PVC will not be able to find a matching volume. (Adam/Oleg we should probably clarify and or explain that prereq)
That is simply a default that we chose for the PVC the registry operator automatically creates. If you want to use a different sized volume, then you simply need to create your own PVC (and PV) and point the registry operator to the PVC you want to use, instead of letting the registry operator create its own PVC.
dev mailing list
dev lists openshift redhat com