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