Closed taylormgeorge91 closed 3 years ago
@taylormgeorge91
Could I get more details about the operator panic? Will the panic appear when the operator bootstrap or try to get/create ODLM resources?
If panic happens when getting/creating resources, could we use a function like https://github.com/IBM/ibm-common-service-operator/blob/master/controllers/bootstrap/init.go#L382 to catch the panic?
I believe we can't use customresourcedefinitions.required
to explicitly claim the dependency since OLM will deploy an ODLM in the namespace of the operator, which is not expected.
Do you know if there is any mechanism from OLM to handle the operator in the pending
status until the required CRD exists instead of just creating it?
@horis233 That is a good point but not something I think OLM supports
Do you know if there is any mechanism from OLM to handle the operator in the pending status until the required CRD exists instead of just creating it?
I can ask the OLM guild and see if that is of any consideration.
We could create an init container to validate, but we would really like to use the OLM dependency management for required APIs as that is the accepted norm.
I will get a log of the error.
@taylormgeorge91
Please check if the nativeAPI field in the CSV can fulfill the requirement. https://olm.operatorframework.io/docs/tasks/creating-operator-manifests/#nativeapis-recommended
Thanks @horis233 ! I'll give it a go, looks like what we want.
Works well, thanks again.
Summary
Today the
ibm-common-service-operator
bootstraps theoperand-lifecycle-operator-manager
as well as a supportingnamespacescope
operator, among other bootstrapping tasks.It is told that the users of ODLM must include
ibm-common-service-operator
and must not include ODLM in their definitions.This request is to allow the users of ODLM to declare their API and package requirements through OLM.
Details
There are at least two other operators who have adopted ODLM for their deployment architecture:
These operators include the ODLM golang library and directly interface with the ODLM APIs in kubernetes. The deployment architecture for the operands of these operators is based on ODLM as a fundamental component. If the ODLM APIs do not exist, or are not within the supported range, the operators will panic.
Further, these operators are not yet offered through a
bundle
format in OLM. What this means is that they are only specifying required APIs in the CSV and are not utilizing the bundledependencies.yaml
for GVK and package type specifications.