Function Processing Stages ​
From the moment you create a Function (Function CR) until the time it is ready, it goes through three processing stages that are defined as these condition types:
ConfigurationReady(PrinterColumnCONFIGURED)Running(PrinterColumnRUNNING)
For a Function to be considered ready, the status of all three conditions must be True:
NAME CONFIGURED RUNNING RUNTIME VERSION AGE
test-function True True nodejs20 1 96sWhen you update an existing Function, conditions change asynchronously depending on the change type.
The diagrams illustrate all three core status changes in the Function processing circle that the Function Controller handles. They also list all custom resources involved in this process and specify in which cases their update is required.
NOTE
Before you start reading, see the Function CR document for the custom resource detailed definition, the list of all Function's condition types, and reasons for their success or failure.
Configured ​
This initial phase starts when you create a Function CR with configuration specifying the Function's setup.
Running ​
This stage revolves around creating a Deployment and Service or updating them when configuration changes were made in the Function CR.
In general, the Deployment is considered updated when its configuration is up to date. Service is considered updated when proper labels are set and the configuration is up to date.
Thanks to the implemented reconciliation loop, the Function Controller constantly observes all newly created or updated resources. If it detects changes, it fetches the appropriate resource's status and only then updates the Function's status.
The Function Controller observes the status of the underlying Deployment. If the minimum availability condition for the replicas is not satisfied, the Function Controller sets the Running status to Unknown with reason MinimumReplicasUnavailable. Such a Function should be considered unhealthy and the runtime profile or number of Replicas must be adjusted.