-
Notifications
You must be signed in to change notification settings - Fork 560
Feature Request: Support additional resources in ClusterServiceVersion, like StatefulSet and DaemonSet #1022
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Looking for some information on the requirements: when your Operator get's installed, it's controller, CRDs and required RBAC will be put in place. It's then ready to provide it's services via it's API (the CRDs). |
@dmesser
What's your suggestion to deploy this DaemonSet? with my Operator or by my Operator? |
With what's possible now you'd deploy the DaemonSet via your Operator. It could do this on start-up using an init-container or as part of a Configuration CR that "configures" your Operator. The Operator could also creates this CR on start up - this would have the benefit, that your Operator will lifecycle it, in case it get's deleted or modified. |
@dmesser Yes, I can deploy it during the controller start-up, but it is just a workaround. I don't think "Configuration CR" is a good idea because it is part of the operator, and should be managed by the olm in openshift, not the operator itself. |
I think we would need to look at the consequences of supporting what you ask for. If all the other stuff would become part of OLM we would also need to support configuring those - e.g. could you just instantiate the DaemonSet or would it need some configuration from the user/admin?. Normally this would come via the CR. Since the CRDs are not yet reconciled at install time, OLM becomes responsible for providing a user interface. Also, could you reliably create the DaemonSet if the Operator Deployment is not active yet? I.e. do you need ordering? Whereas with the definition now, the boundaries of responsibilities is very clear: OLM deploys your Operator and your RBAC, an operator being one or more controllers in pods owning CRDs. |
@dmesser , thank you for your explanation. I totally agree that the olm should not become a general-purpose deploy-my-bag-of-YAML controller. Now I understand why I should use a "Configuration CR" to deploy it. Thank you. |
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Before this patch we deployed the bpf daemon manually via kustomize... However this method couldn't be packaged into a bundle via the operator SDK (see operator-framework/operator-lifecycle-manager#1022 (comment)) This commit changes the way its deployed to have the bpfd-operator itself reconcile/deploy the bpfd daemon. Mainly it now ensures the daemon is configured correctly via the bpfd configmap and deployed. Signed-off-by: Andrew Stoycos <[email protected]>
Hello @dmesser, is this still valid today? Operators have to deploy its DaemonSets if needed? Or has something change since then?... Just to confirm and thank you!. |
Currently in the csv, only deployment, role/rolebinding and clusterrole/clusterrolebinding are supported to describe an operator installation.
However, to gain more control of the application or for other perpose, the operator needs not only a deployment (the controller), but also a StatefulSet (for stateful thing) or a DaemonSet (something like a node agent).
We have an operator which is composed by one deployment and one daemonset, which can not be installed by a csv. It will be great if csv can support it, thanks.
The text was updated successfully, but these errors were encountered: