Previously users can use OpenFunction to build function or application source code into container images and then deploy the built image directly to the underlying sync/async Serverless runtime without user intervention.
But OpenFunction can neither rebuild the image and then redeploy it whenever the function or application source code changes nor redeploy the image whenever this image changes (When the image is built and pushed manually or in another function)
Starting from v1.0.0, OpenFunction adds the ability to detect source code or image changes and then rebuilt and/or redeploy the new built image in a new component called
Revision Controller. The Revision Controller is able to:
- Detect source code changes in github, gitlab or gitee, then rebuild and redeploy the new built image whenever the source code changes.
- Detect the bundle container image (image containing the source code) changes, then rebuild and redeploy the new built image whenever the bundle image changes.
- Detect the function or application image changes, then redeploy the new image whenever the function or application image changes.
You can enable
Revision Controller when installing OpenFunction by simply adding the following flag to the helm command.
You can also enable
Revision Controller after
OpenFunction is installed:
kubectl apply -f https://raw.githubusercontent.com/OpenFunction/revision-controller/release-1.0/deploy/bundle.yaml
Revision Controllerwill be installed to the
openfunctionnamespace by default. You can download
bundle.yamland change the namespace manually if you want to install it to another namespace.
Detect source code or image changes
To detect source code or image changes, you’ll need to add revision controller switch and params like below to a function’s annotation.
apiVersion: core.openfunction.io/v1beta1 kind: Function metadata: annotations: openfunction.io/revision-controller: enable openfunction.io/revision-controller-params: | type: source repo-type: github polling-interval: 1m name: function-http-java namespace: default spec: build: ... serving: ...
|openfunction.io/revision-controller||Whether to enable revision controller to detect source code or image changes for this function, can be set to either |
|openfunction.io/revision-controller-params||Parameters for revision controller.|
|type||The change type to detect including |
|polling-interval||The interval to polling the image digest or source code head.|
|repo-type||The type of the git repo including |
|base-url||The base url of the gitlab server.|
|auth-type||The auth type of the gitlab server.|
|project-id||The project id of a gitlab repo.|
|insecure-registry||If the image registy is insecure, you should set this to true.|
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.