|
| 1 | +--- |
| 2 | +title: Configuration Group Best Practices for Azure Operator Service Manager |
| 3 | +description: Learn about configuration group best practices when using Azure Operator Service Manager. |
| 4 | +author: msftadam |
| 5 | +ms.author: adamdor |
| 6 | +ms.date: 06/24/2025 |
| 7 | +ms.topic: best-practice |
| 8 | +ms.service: azure-operator-service-manager |
| 9 | +--- |
| 10 | + |
| 11 | +# Azure Operator Service Manager best practices for configuration groups |
| 12 | +This article provides guidelines that NF vendors, telco operators, and their partners can follow to optimize the design of configuration group schemes and the operation of configuration group values. Keep these practices in mind when you onboard and deploy your NFs. |
| 13 | + |
| 14 | +## Configuration Group Schema considerations |
| 15 | +We recommend that you always start with a single CGS for the entire NF. If there are site-specific or instance-specific parameters, we still recommend that you keep them in a single CGS. We recommend splitting into multiple CGSs when there are multiple components (rarely NFs, more commonly, infrastructure) or configurations that are shared across multiple NFs. The number of CGSs defines the number of CGVs. |
| 16 | + |
| 17 | +### Scenario |
| 18 | + |
| 19 | +- FluentD, Kibana, and Splunk (common third-party components) are always deployed for all NFs within an NSD. We recommend grouping these components into a single NFDG. |
| 20 | +- NSD has multiple NFs that all share a few configurations (deployment location, publisher name, and a few chart configurations). |
| 21 | + |
| 22 | +In this scenario, we recommend that you use a single global CGS to expose the common NF and third-party component configurations. You can define NF-specific CGS as needed. |
| 23 | + |
| 24 | +### Choose parameters to expose |
| 25 | + |
| 26 | +- CGS should only have parameters that are used by NFs (day 0/N configuration) or shared components. |
| 27 | +- Parameters that are rarely configured should have default values defined. |
| 28 | +- If multiple CGSs are used, we recommend little to no overlap between the parameters. If overlap is required, make sure the parameter names are clearly distinguishable between the CGSs. |
| 29 | +- What can be defined via API (Azure Operator Nexus, Azure Operator Service Manager) should be considered for CGS. As opposed to, for example, defining those configuration values via CloudInit files. |
| 30 | +- When unsure, a good starting point is to expose the parameter and have a reasonable default specified in the CGS. The following example shows the sample CGS and corresponding CGV payloads. |
| 31 | +- A single user-assigned managed identity should be used in all the NF ARM templates and should be exposed via CGS. |
| 32 | + |
| 33 | +CGS payload: |
| 34 | + |
| 35 | +<pre> |
| 36 | +{ |
| 37 | + "type": "object", |
| 38 | + "properties": { |
| 39 | + "abc": { |
| 40 | + "type": "integer", |
| 41 | + <b>"default": 30</b> |
| 42 | + }, |
| 43 | + "xyz": { |
| 44 | + "type": "integer", |
| 45 | + <b>"default": 40</b> |
| 46 | + }, |
| 47 | + "qwe": { |
| 48 | + "type": "integer" //doesn't have defaults |
| 49 | + } |
| 50 | + } |
| 51 | + "required": "qwe" |
| 52 | +} |
| 53 | +</pre> |
| 54 | + |
| 55 | +Corresponding CGV payload passed by the operator: |
| 56 | + |
| 57 | +<pre> |
| 58 | +{ |
| 59 | +"qwe": 20 |
| 60 | +} |
| 61 | +</pre> |
| 62 | + |
| 63 | +Resulting CGV payload generated by Azure Operator Service Manager: |
| 64 | + |
| 65 | +<pre> |
| 66 | +{ |
| 67 | +"abc": 30, |
| 68 | +"xyz": 40, |
| 69 | +"qwe": 20 |
| 70 | +} |
| 71 | +</pre> |
| 72 | + |
| 73 | +## Configuration Group Values considerations |
| 74 | + |
| 75 | +Before you submit the CGV resource creation, you can validate that the schema and values of the underlying YAML or JSON file match what the corresponding CGS expects. To accomplish that, one option is to use the YAML extension for Visual Studio Code. |
0 commit comments