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
Copy file name to clipboardExpand all lines: articles/operator-nexus/howto-run-instance-readiness-testing.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ ms.date: 07/13/2023
9
9
ms.custom: template-how-to
10
10
---
11
11
12
-
# Instance readiness testing
12
+
# Instance Readiness Testing
13
13
14
14
Instance Readiness Testing (IRT) is a framework built to orchestrate real-world workloads for testing of the Azure Operator Nexus Platform.
15
15
@@ -32,12 +32,12 @@ The network information is provided in either a `networks-blueprint.yml` file, s
32
32
* Two of them with MTU 1500
33
33
* One of them with MTU 9000 and shouldn't have a fabric_asn attribute
34
34
* One (1) Trunked Network
35
-
* All vlans should be greater than 500
35
+
* All VLANs should be greater than 500
36
36
37
37
## One Time Setup
38
38
39
39
### Download IRT
40
-
IRT is distributed via tarball, download it, extract it, and navigate to the `irt` directory
40
+
IRT is distributed via tarball, download it, extract it, and navigate to the `irt` directory.
41
41
1. From your Linux environment, download nexus-irt.tar.gz from aka.ms/nexus-irt `curl -Lo nexus-irt.tar.gz aka.ms/nexus-irt`
42
42
1. Extract the tarball to the local file system: `mkdir -p irt && tar xf nexus-irt.tar.gz --directory ./irt`
43
43
1. Switch to the new directory `cd irt`
@@ -49,10 +49,10 @@ There are multiple dependencies expected to be available during execution. Revie
49
49
*`jq` version 1.6 or greater
50
50
*`yq` version 4.33 or greater
51
51
*`azcopy` version 10 or greater
52
-
*`az` Azure CLI stay up to date, minimum expected 2.11.0
52
+
*`az` Azure CLI, stay up to date. Minimum expected version: 2.11.0(supports self upgrade)
53
53
*`elinks` - for viewing html files on the command line
54
54
*`tree` - for viewing directory structures
55
-
*`moreutils` - for viewing progress from the Azure Containter Instance(ACI) container
55
+
*`moreutils` - for viewing progress from the Azure Container Instance(ACI) container
56
56
57
57
The `setup.sh` script is provided to aid with installing the listed dependencies. It installs any dependencies that aren't available in PATH. It doesn't upgrade any dependencies that don't meet the minimum required versions.
58
58
@@ -62,36 +62,35 @@ The `setup.sh` script is provided to aid with installing the listed dependencies
62
62
### All in one setup
63
63
64
64
`all-in-one-setup.sh` is provided to create all of the Azure resources required to run IRT. This process includes creating a managed identity, a service principal, a security group, isolation domains, and a storage account to archive the test results. These resources can be created during the all in one script, or they can be created step by step per the instructions in this document. Each of the script, individually and via the all in one script, writes updates to your `irt-input.yml` file with the key value pairs needed to utilize the resources you created. Review the `irt-input.example.yml` file for the required inputs needed for one or more of the scripts, regardless of the methodology you pursue. All of the scripts are idempotent, and also allow you to use existing resources if desired.
65
-
66
65
### Step-by-Step setup
67
66
68
67
> [NOTE]
69
68
> Only use this section if you're NOT using `all-in-one.sh`
70
69
71
70
If your workflow is incompatible with `all-in-one.sh`, each resource needed for IRT can be created manually with each supplemental script. Like `all-in-one.sh`, running these scripts writes key/value pairs to your `irt-input.yml` for you to use during your run. These four scripts make up the `all-in-one.sh`.
72
71
73
-
IRT makes commands against your resources, and needs permission to do so. IRT requires a Managed Identity and a Service Principal to execute. It also requires that the service principal is a member of the Azure AD Security Group that is also provided as input.
72
+
IRT makes commands against your resources, and needs permission to do so. IRT requires a managed identity and a service principal to execute. It also requires that the service principal is a member of the Azure AD Security Group that is also provided as input.
74
73
75
74
#### Create managed identity
76
75
<details>
77
-
<summary>expand to see how to create managed identity</summary>
76
+
<summary>Expand to see how to create managed identity.</summary>
78
77
79
78
A managed identity with the following role assignments is needed to execute tests. The supplemental script, `create-managed-identity.sh` creates a managed identity with these role assignments.
80
79
*`Contributor` - For creating and manipulating resources
81
80
*`Storage Blob Data Contributor` - For reading from and writing to the storage blob container
82
81
*`Log Analytics Reader` - For reading metadata about the LAW
83
82
*`Kubernetes Connected Cluster Role` - For read/write operations on connected cluster
84
83
85
-
Executing `create-managed-identity.sh` requires the input yaml to have the following properties, all of them can be overriden by the corrosponding environment variables:
84
+
Executing `create-managed-identity.sh` requires the input yaml to have the following properties, all of them can be overridden by the corresponding environment variables:
<summary>expand to see how to create service principal and security group</summary>
115
+
<summary>Expand to see how to create service principal and security group.</summary>
117
116
118
117
A service principal with the following role assignments. The supplemental script, `create-service-principal.sh` creates a service principal with these role assignments, or add role assignments to an existing service principal.
119
118
@@ -123,7 +122,7 @@ A service principal with the following role assignments. The supplemental script
123
122
124
123
Additionally, the script creates the necessary security group, and adds the service principal to the security group. If the security group exists, it adds the service principal to the existing security group.
125
124
126
-
Executing `create-service-principal.sh` requires the input yaml to have the following properties, all of them can be overriden by the corrosponding environment variables:
125
+
Executing `create-service-principal.sh` requires the input yaml to have the following properties, all of them can be overridden by the corresponding environment variables:
<summary>expand to see how to create l3 isolation domains</summary>
157
+
<summary>Expand to see how to create l3 isolation.</summary>
159
158
160
-
The testing framework doesn't create, destroy, or manipulate isolation domains. Therefore, existing Isolation Domains can be used. Each Isolation Domain requires at least one external network. The supplemental script, `create-l3-isolation-domains.sh`. Internal networks are created, manipulated, and destroyed through the course of testing.
159
+
The testing framework doesn't create, destroy, or manipulate isolation domains. Therefore, existing isolation domains can be used. Each isolation domain requires at least one external network. The supplemental script, `create-l3-isolation-domains.sh`. Internal networks are created, manipulated, and destroyed through the course of testing.
161
160
162
-
Executing `create-l3-isolation-domains.sh` requires one **parameter**, a path to the input file, You can choose either of the standalone network-blueprint.yml or the input.yml that contains the same information as input to this script.
161
+
Executing `create-l3-isolation-domains.sh` requires one **parameter**, a path to a file containing the networks requirements. You can choose either the standalone network-blueprint.yml or the input.yml based on your workflow, both should contain the information needed.
163
162
164
163
```bash
165
164
# Example of the script being invoked using networks-blueprint.yml:
@@ -168,17 +167,18 @@ Executing `create-l3-isolation-domains.sh` requires one **parameter**, a path to
168
167
169
168
```bash
170
169
# Example of the script being invoked using irt-input.yml:
170
+
# the network-blueprint should exist under NETWORK_BLUEPRINT node.
171
171
./create-l3-isolation-domains.sh irt-input.yml
172
172
```
173
173
</details>
174
174
175
175
#### Create archive storage
176
176
<details>
177
-
<summary>expand to see how to create archive storage</summary>
177
+
<summary>Expand to see how to create archive storage.</summary>
178
178
179
-
IRT creates an html test report after running a test scenario. These reports can optionally be uploaded to a blob storage container. the supplementary script `create-archive-storage.sh` to create a storage container, storage account, and resource group if they don't already exist.
179
+
IRT creates an html test report after running a test scenario. These reports can optionally be uploaded to a blob storage container. The supplementary script `create-archive-storage.sh` to create a storage container, storage account, and resource group if they don't already exist.
180
180
181
-
Executing `create-archive-storage.sh` requires the input yaml to have the following properties, all of them can be overriden by the corrosponding environment variables:
181
+
Executing `create-archive-storage.sh` requires the input yaml to have the following properties, all of them can be overridden by the corresponding environment variables:
0 commit comments