OpenWhisk supports several languages and runtimes that can be made available for usage in an OpenWhisk deployment. This is done via the runtimes manifest.
Over time, you may need to do one or more of the following:
While adding and updating languages and runtimes is pretty straightforward, removing or renaming languages and runtimes requires some caution to prevent problems with preexisting actions.
Follow these steps to update a particular runtime kind:
image
property in the runtimes manifest to use the new container image.Already existing actions of the changed runtime kind will immediately use the new container image when the invoker creates a new action container.
Obviously, this approach should only be used if existing actions do not break with the new container image. If a new container image may break existing actions, consider introducing a new runtime kind instead.
Follow these steps to remove a particular runtime kind under the assumption that actions with the runtime kind exist in the system. Clearly, the steps below should be spaced out in time to give action owners time to react.
"deprecated": true
in the runtimes manifest. This setting prevents new actions from being created with the deprecated action kind. In addition, existing actions cannot be changed to the deprecated action kind any more.ActionExec
object of the controller API's Swagger definition.If you remove a runtime kind from the runtimes manifest, all actions that still use the removed runtime kind can no longer be read, updated, deleted or invoked.
If the system's action artifact store does not contain any action with the runtime kind to be removed, there is no need for the deprecation and migration steps.
Renaming a runtime kind actually means removing the runtime kind and adding a different runtime kind. Follow the steps for Removing runtimes and Updating runtimes.
You need to follow the steps described in Removing runtimes for all runtime kinds in the language family.
Renaming a language family actually means removing the language family and adding a different family. Follow the steps for Removing languages and Updating languages.