Functions CRD and Operator #2088
Replies: 2 comments
-
I think it would be much easier for developers to handle one CRD over the required other 4. So in my head a solution could look like this:
that said, you are completely right, that currently a function can already be handled via CRDs, I am just throwing in the point that maintaining one CRD is easier than having to maintain 4, which could be maintained by software. What do you think? |
Beta Was this translation helpful? Give feedback.
-
Thanks for the comment @khusseini Yes, I agree that we would create an operator which handles a simple Functions CRD. The operator would be the one running You are also right that it is our goal with Functions to provide a single point of management where developers can define their Function as a Service, even though when it is actually deployed to the cluster it will be comprised of several components: Service, Routes, Domain Mappings, Certificates, Event Subscriptions, etc. etc. Of course, we know that it will never be able to handle 100% of all situations, so one can always decide to just build the container with |
Beta Was this translation helpful? Give feedback.
-
Functions CRD and Operator
This is a discussion intended to help define the validity and scope of a Functions CRD and Operator.
Overview
Developers familiar with Kubernetes are accustomed to
kubectl apply -f
. Providing a simple CRD which defines enough about a function for the cluster to perform a build and deploy internally would both adhere to this paradigm but also be nearly frictionless from a developer's perspective given a properly configured cluster, with no required local dependencies other than kubectl and a cluster connection.Scope
There are no features on our roadmap which require a CRD. Everything can be accomplished (and probably should be accomplished) with the existing Serving and Eventing structures. Even auto-update is likely better mediated via CI/CD than as an internal operator. Therefore the scope of this CRD and Operator is likely quite narrow: just enough to trigger an in-cluster build and deploy using a CRD which is essentially a pointer to a repository.
Considerations
One key consideration is the necessity of a properly configured cluster, with extensive user feedback to ensure this is the case.
Beta Was this translation helpful? Give feedback.
All reactions