Hello Jeff,
Thank you for your answer.
As I stated in my original message, I know this method exists, but my main issue
here is that this will not actually perform the installation of the Operator.
The process is as follows when using "installPlanApproval" set to "Manual":
* You create the Subscription with "installPlanApproval" set to "Manual"
* OLM will create a InstallPlan object with *a random name*
* you need to change the spec of the InstallPlan to modify the field approved
from false to true
* OLM will start installing the Operator
Having a random name here is a pretty big issue for ArgoCD. It will not wait
for the object to be created in the API and it will not be able to get the
object to modify only one field...
As I see it this workflow is made to be used:
* by humans and clicking into a UI (or editing the object using kubectl/oc)
* by other controllers that will be able to watch the creation of InstallPlans
and act on it
But ArgoCD is neither of these.
If I write here the craziest method I can think of:
* create a Subscription
* ignore the InstallPlan created by OLM
* create my own InstallPlan with only the "spec" no "status"
Something like:
apiVersion:
operators.coreos.com/v1alpha1
kind: InstallPlan
metadata:
name: install-rook-ceph-v1-5-7
namespace: rook-ceph
spec:
approval: Manual
approved: true
clusterServiceVersionNames:
- rook-ceph.v1.5.7
But my guess is that everything necessary for OLM to actually do something will
be missing... from the ownerReferences in the metadata, to the status.manifest
field... So I did not even try and asked here if the use-case was
even considered as valid.
Best regards,
Diego Abelenda