You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Revise configuration guide for clarity and accuracy
Updated the configuration guide to clarify CGS/CGV terminology and improve readability. Adjusted examples and recommendations regarding secrets and parameter organization.
Copy file name to clipboardExpand all lines: articles/operator-service-manager/configuration-guide.md
+23-18Lines changed: 23 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,38 +18,38 @@ Consider the following meta-schema guidelines when you're designing configuratio
18
18
19
19
* First, choose which parameters to expose to the operator.
20
20
* A rule of thumb is to expose parameters backed by direct operation, such as a helm value.
21
-
* Suppress parameters backed by another agent, such as `cloudinit``userdata`.
21
+
* Suppress parameters backed by another agent, such as `cloudinituserdata`.
22
22
* Sort the parameters into site-specific, instance-specific, and security-specific sets.
23
-
* Ensure that parameters don't overlap between CGS resources.
23
+
* Ensure that parameters don't overlap between sets.
24
24
* Define required versus optional parameters.
25
25
* For optional parameters, define a reasonable default value.
26
26
27
27
## One-CGS approach
28
28
29
-
The original recommendation was to use only a single CGSfor the entire NF. This approach consolidated site-specific, instance-specific, and security-specific parameters into a single set of configuration group resources. This approach avoided multiple resource sets, except for rare cases where a service had multiple components. Many partners successfully onboarded services using this approach, and it remains supported. However, this approach doesn't obscure secrets. All configuration values are stored in resources as plain-text.
29
+
The original recommendation was to use only a single CGS/CGV set for the entire NF. This approach consolidated site-specific, instance-specific, and security-specific parameters together. Only in rare cases, where a service had multiple nfs, were multiple sets used. Many partners successfully onboarded using this approach, and it remains supported. However, this approach doesn't obscure secrets. All configuration values are stored in plain-text and are displayable via most Azure methods.
30
30
31
31
## Three-CGS approach
32
32
33
-
We now recommend that you use at least three CGSs for the entire NF, by organizing parameters into these sets of configuration resource groups:
33
+
We now recommend that you use at least three CGS/CGV sets, organizing parameters as follows:
34
34
35
35
* Site-specific parameters
36
36
* Examples include IP addresses and unique names.
37
-
* Uses CGS without secrets.
37
+
* Uses CGS/CGV without secrets.
38
38
* Stores values in plain-text during deployments.
39
39
40
40
* Instance-specific parameters
41
41
* Examples include timeouts and debug levels.
42
-
* Uses CGS without secrets.
42
+
* Uses CGS/CGV without secrets.
43
43
* Stores values in plain-text during deployment.
44
44
45
45
* Security-specific parameters
46
46
* Examples include passwords and certificates.
47
-
* Uses CGS with secrets.
47
+
* Uses CGS/CGV with secrets.
48
48
* Store values in Azure Key Vault to obscure during deployments.
49
49
50
50
## CGS without secrets
51
51
52
-
This example shows a sample CGS payload defining `abc`, `xyz`, and `qwe`as exposed parameters. Two of the parameters have default values and one is required.
52
+
This example shows a CGS exposing `abc`, `xyz`, and `qwe` parameters. Two of the parameters have default values and one is marked required.
53
53
54
54
```json
55
55
{
@@ -73,15 +73,15 @@ This example shows a sample CGS payload defining `abc`, `xyz`, and `qwe` as expo
73
73
74
74
## CGV without secrets
75
75
76
-
This example shows a corresponding CGV input that an operator uses with the prior CGS:
76
+
This example shows the CGV input provided by the operator during CGV deployment to satisfy the prior CGS.
77
77
78
78
```json
79
79
{
80
80
"qwe": 20
81
81
}
82
82
```
83
83
84
-
This example shows the resulting CGV resource that Azure Operator Service Manager generates:
84
+
This example shows the rendered CGV resource created after the CGV deployment completes.
85
85
86
86
```json
87
87
{
@@ -92,16 +92,21 @@ This example shows the resulting CGV resource that Azure Operator Service Manage
92
92
```
93
93
94
94
## CGS with secrets
95
-
Other then seperating secrets into a unique CGS, no special CGS requirements exist for secret support.
95
+
Other then seperating secrets into a unique CGS, no special requirements exist for CGS secret support.
96
96
97
97
## CGV with secrets
98
-
Considering the following configuration reqiurements to properly obscure secret values:
99
-
* Use `configurationType: 'Secret'` in the resource properties.
100
-
* Once a CGV is deployed, this prevents the display of the resource in most Azure methods.
101
-
* Use a reference to Azure Key Vault (AKV) in place of the plain-text secret.
102
-
* This obscures the display of the secret in the CGV deployment template.
98
+
Consider the following Azure Resource Manager (ARM) template reqiurements to properly obscure secret values throughout the entire CGV resource lifecycle.
99
+
100
+
* Use `configurationType: 'Secret'` in the template resource properties.
101
+
* Once a CGV is deployed, this prevents displaying the secret data via most Azure methods.
102
+
* Use a template reference to Azure Key Vault (AKV) in place of the plain-text secret.
103
+
* This obscures the display of the secret in the CGV deployment template.
104
+
105
+
> [!NOTE]
106
+
> * Only Azure Key Vault is supported by ARM for secret reference substition.
107
+
108
+
This example shows how to include an AKV reference to a secret named `secretName` in an ARM template.
103
109
104
-
The following example shows how to include an AKF reference in an ARM template:
105
110
```json
106
111
"password": {
107
112
"reference": {
@@ -112,7 +117,7 @@ The following example shows how to include an AKF reference in an ARM template:
112
117
}
113
118
```
114
119
115
-
To further secure resources restrict access to the following RBAC scope: `Microsoft.Resources/deployments/exportTemplate/action`
120
+
To further secure resources, consinder restricting access to the RBAC scope `Microsoft.Resources/deployments/exportTemplate/action` to only roles which absolutely need to this access.
0 commit comments