Configuring CanaryRelease Options
Canary testing involves simultaneous deployment of both old release and new release software into a production network and then splitting the production workload such a way that just a small fraction goes to the new release while the majority of the workload continues to be directed at the old release. The KPIs of the new release software is monitored, and if passes the criteria, then the canary release is removed and the main (old) release is upgraded. If the new release software fails, then it is removed, and developers are alerted.
The CanaryRelease inspects the version (API version) attribute of the NF Service profile published by the NFs (during NF registration/update) and can identify the release as a canary version if the version matches the configured value. The older version is considered the production version and the newer version of the service instance is considered the canary release and the SCP distributes traffic between Production version and the Canary versions based on operator configuration
User can configure CanaryRelease options by following the information provided in the table below. The supported operations are LIST, GET, and PATCH.Table 3-1 provides details about the operations and parameters for CanarayRelease Options. The default values of parameters related to CanaryRelease are mentioned in the following table, however, User can modify the values. These parameters are applicable at POD level.
Table 3-1 Configuring Parameters for CanaryRelease Options
Method | Scheme | Field Name | Type | Authority | Port | Path | Parameters/Command | Description |
---|---|---|---|---|---|---|---|---|
GET | http | - | - | <SCP config service fqdn> | 8081 | /soothsayer/v1/ canaryrelease/ |
[{ "canaryReleaseFlag": false, "serviceName": "nudm-uecm" "apiFullVersion": "1.R15.1.0", "canaryTraffic": 5 } ... ] Example: curl --header 'Content-type: application/json' --header 'accept: application/ json' --request GET http://<SCP config service fqdn>:8081/soothsayer/v1/ canaryrelease/ [{ "canaryReleaseFlag": false, "serviceName": "nudm-uecm", "apiFullVersion": "2.R16.1.0", "canaryTraffic": 5 } ... ] |
- |
LIST | - | - | - | - | - | - |
curl --header 'Content-type: application/json' --header 'accept: application/json' --request GET http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/ [{ "canaryReleaseFlag": false, "serviceName": "nudm-uecm", "apiFullVersion": "2.R16.1.0", "canaryTraffic": 5 } ... ] |
- |
PATCH | - | canaryReleaseFlag | Boolean | - | - | - | Set the value of field canaryReleaseFlag and
mention serviceName for which the configuration is needed in the resource path
of below Curl Command.
canaryReleaseFlag UPDATE
Command
curl --header "Content-Type: application/json" --request PATCH --data '{ "canaryReleaseFlag": true }' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName> |
Enable/Disable canary release support. Default Value: null |
apiFullVersion | String | - | - | - | Set the value of field apiFullVersion and
mention serviceName for which the configuration is needed in the resource path
of below Curl Command.
apiFullVersion
UPDATE Command
curl --header "Content-Type: application/json" --request PATCH --data '{ "apiFullVersion": "2.R16.1.0" }' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName> |
The API full version of the canary service. Default Value: null | ||
canaryTraffic | Integer | - | - | - | Set the value of field canaryTraffic and
mention serviceName for which the configuration is needed in the resource path
of below Curl Command.
canaryTraffic UPDATE Command curl --header "Content-Type: application/json" --request PATCH --data '{ "canaryTraffic": 10 }' http://<SCP config service fqdn>:8081/soothsayer/v1/canaryrelease/<serviceName> |
The traffic that should be distributed to Canary release. Default Value: null |