Skip to content
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

Support Seldon Core v1 in Operator Framework Community Operator #1477

Closed
ukclivecox opened this issue Feb 23, 2020 · 7 comments · Fixed by #1519
Closed

Support Seldon Core v1 in Operator Framework Community Operator #1477

ukclivecox opened this issue Feb 23, 2020 · 7 comments · Fixed by #1519
Assignees
Milestone

Comments

@ukclivecox
Copy link
Contributor

Our Operator is built using Kubebuilder v2 which is presently incompatible with Operator Lifecycle Manager needed for Operator Framework Community Operators

@ukclivecox ukclivecox added the triage Needs to be triaged and prioritised accordingly label Feb 23, 2020
@ukclivecox ukclivecox changed the title Updates for Operator Framework Community Operator Support Seldon Core v1 in Operator Framework Community Operator Feb 23, 2020
@ryandawsonuk
Copy link
Contributor

Related #1482

@ukclivecox ukclivecox removed the triage Needs to be triaged and prioritised accordingly label Feb 27, 2020
@ukclivecox ukclivecox self-assigned this Feb 27, 2020
@ukclivecox ukclivecox added this to the 1.2 milestone Feb 27, 2020
@dmesser
Copy link

dmesser commented Feb 27, 2020

For the benefit of the curious reader:

  • Configmaps are not supported by CSV

This is true as of today. OLM will support bundles in the future that allow you to ship any Kubernetes manifest, including ConfigMaps. In the meantime alternatives are to have that ConfigMap be lifecycled by your Operator (create on startup) and populate it with the defaults you are encouraging.

  • Webhook configuration not supported by CSV

This is also true as of today. In the next 3 months we are looking to release support to reference mutating and admission webhooks in your CSV. OLM would then lifecycle them as first-class objects, including configuration for cert-rotation.

  • Need to support WATCH_NAMESPACE

This should be fairly easy to achieve since it's actually natively supported by controller-runtime.

@tmckayus
Copy link

@cliveseldon if I understand correctly what you're wanting to do, one potential approach to the configmap limitation is to mount a known configmap as an optional volume in the deployment listed in the CSV. The operator image can either store defaults, or if no sane defaults are viable it can loop with a message "create config map x and restart the operator pod". Subsequently, if a user creates the configmap and kills the operator pod, the operator will restart and mount the configmap volume.

Additionally, if the name of the configmap needs to be flexible, it can be defaulted and then overridden by an env var added to the subscription object when the operator is installed.

Does this sound like a viable workaround?

@ukclivecox
Copy link
Contributor Author

@tmckayus I think creating the configmap if it does not exist on operator startup is best solution RBAC permitting.

@dmesser If we also create the webhooks in the operator how can be ensure certs are correctly applied?

Under the vanilla installation we assume either a) cert-manager is available and we can create the cert-manager resources to get them injected or b) we create a self-signed cert for non-production use case or 3) the user can update the Kustomize/helm to add their own cert. None of these sound like the openshift way thus the question if we try to do this work before webhooks are handled by OLM natively.

@dmesser
Copy link

dmesser commented Feb 28, 2020

@cliveseldon OpenShift has it's own cert rotation Operator, so that would be an option but asks for an OpenShift-specific version of your Operator for the time being. We are aiming to release support for cert rotation on webhooks in June this year.

@ukclivecox
Copy link
Contributor Author

@dmesser Thanks. Any links to the docs if I want to create a webhook configuration from operator and get certs correctly figured and setup in a manner that community-operators would accept?

@ukclivecox
Copy link
Contributor Author

Further info from operator-sdk : operator-framework/operator-sdk#1217

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants