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
+46-36Lines changed: 46 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,24 @@
1
+
---
2
+
title: "Azure Operator Nexus: How to run Instance Readiness Testing"
3
+
description: Learn how to run instance readiness testing.
4
+
author: lesage-oded
5
+
ms.author: odedlesage
6
+
ms.service: azure-operator-nexus
7
+
ms.topic: how-to
8
+
ms.date: 02/29/2024
9
+
ms.custom: template-how-to
10
+
---
1
11
# Azure Operator Nexus Instance Readiness Test (IRT)
2
12
3
13
The Instance Readiness Test (IRT) framework is an optional/add-on tool for the Nexus platform. It enables operators to verify the successful deployment and readiness of the Azure Operator Nexus instance for workload deployment. This verification applies to both initial deployment and subsequent upgrades of the Nexus. It runs a series of tests and provides the test results as an html report.
4
14
5
15
## Key benefits
6
16
7
-
- Self-Service: IRT enables users to independently initiate and execute tests.
8
-
- Repeatable: Users can execute IRT on the Nexus instance multiple times to verify the reliability and consistency of test results.
9
-
- Abilities:
17
+
- Self-Service
18
+
- IRT enables users to independently initiate and execute tests.
19
+
- Repeatable
20
+
- Users can execute IRT on the Nexus instance multiple times to verify the reliability and consistency of test results.
21
+
- Abilities
10
22
- IRT provides generic functionality that all operators can use.
11
23
- It enables validation of new Nexus deployments and post-upgrade states.
12
24
- It allows testing of Network Function infrastructure components.
@@ -58,7 +70,7 @@ The Instance Readiness Test (IRT) framework is an optional/add-on tool for the N
58
70
- Validate IPV4 routes are configured correctly.
59
71
- Validate IPV6 routes are configured correctly.
60
72
- Validate that network interfaces are configured as expected.
61
-
- Validate DNS ability to resolve Azure Portal endpoint with nslookup.
73
+
- Validate DNS ability to resolve Azure portal endpoint with nslookup.
62
74
- Validate dpdk-testpmd on L2 interface within NAKS cluster for vlan.
63
75
- Validate dpdk-testpmd on L2 interface within NAKS cluster, data captured for vlan.
64
76
- Validate dpdk-testpmd on trunk interface within NAKS cluster, data captured for trunk.
@@ -111,18 +123,18 @@ For access to the nexus-samples GitHub repository
111
123
## Environment Requirements
112
124
113
125
- A Linux environment (Ubuntu suggested) capable of calling Azure APIs.
114
-
- Support for other Linux distros for example, RedHat, Mariner, etc. depends on being able to install the necessary tooling. See [Install Dependencies](#install-dependencies) section.
126
+
- Support for other Linux distros, for example, RedHat, Mariner, etc. depends on being able to install the necessary tooling. See [Install Dependencies](#install-dependencies) section.
115
127
- Any machine that has the required packages installed should be able to use the scripts.
116
128
- Knowledge of networks to use for the test.
117
129
* Networks to use for the test are specified in a "networks-blueprint.yml" file, see [Input Configuration](#input-configuration).
118
-
- A way to download the IRT release package for example, curl, wget, etc.
130
+
- A way to download the IRT release package, for example, curl, wget, etc.
119
131
- The ability to create a service principal with the correct roles.
120
132
- The ability to read secrets from the KeyVault, see [Service Principal] (#create-service-principal-and-security-group) section for more details.
121
133
- The ability to create security groups in your Active Directory tenant.
122
134
123
135
## Input Configuration
124
136
125
-
Start by building your input file. The IRT tarball provides `irt-input.example.yml` as an example. Download the tarball by following the [instructions](#download-irt). Note that these values **will not work for your instances**. You need to manually change them and rename the file to `irt-input.yml`. We provide the example input file as a stub to help you configure new input files. The example outlines overridable values and their usage. The **[One Time Setup](#one-time-setup)** assists you in setting input values by writing key/value pairs to the config file as they execute.
137
+
Start by building your input file. The IRT tarball provides `irt-input.example.yml` as an example. Download the tarball by following the [instructions](#download-irt). The example values **will not work for your instances**. You need to manually change them and rename the file to `irt-input.yml`. We provide the example input file as a stub to help you configure new input files. The example outlines overridable values and their usage. The **[One Time Setup](#one-time-setup)** assists you in setting input values by writing key/value pairs to the config file as they execute.
126
138
127
139
You can provide the network information in a `networks-blueprint.yml` file, similar to the `networks-blueprint.example.yml` that we provide, or append it to the `irt-input.yml` file. The `networks-blueprint.example.yml` defines the schema for IRT. The test creates the networks, so provide network details that aren't in use. Currently, IRT has the following network requirements:
128
140
@@ -136,7 +148,7 @@ You can provide the network information in a `networks-blueprint.yml` file, simi
136
148
137
149
### Download IRT
138
150
IRT is distributed via tarball from the release section of the [nexus-samples](https://aka.ms/nexus-irt) GitHub repo.
139
-
1. Find the release package marked with 'Latest'. Download it, extract it, and navigate to the `irt` directory.
151
+
1. Find the release package marked with 'Latest', download it, extract it, and navigate to the `irt` directory.
140
152
1. Extract the tarball to the local file system: `mkdir -p irt && tar xf nexus-irt.tar.gz --directory ./irt`.
141
153
1. Switch to the new directory `cd irt`.
142
154
1. See RELEASE-CHANGELOG.md for any notable updates or changes.
@@ -214,7 +226,7 @@ SERVICE_PRINCIPAL:
214
226
215
227
> **_NOTE:_** if all `SP_ID`,`SP_OBJECT_ID`,`SP_TENANT_ID`,`ADMIN_GROUP_OBJECT_ID`,`KV_NAME`,`KV_ID` are set in the yaml or as an environment variable the script skips creating them.
216
228
217
-
**RESULT:** This script prints values for `ADMIN_GROUP_OBJECT_ID`, `SP_ID`, `SP_OBJECT_ID`, `SP_TENANT`, `KV_NAME` and `KV_ID`; and sets the values back to the input yaml.
229
+
**RESULT:** This script prints values for `ADMIN_GROUP_OBJECT_ID`, `SP_ID`, `SP_OBJECT_ID`, `SP_TENANT`, `KV_NAME`, and `KV_ID`. The script sets the values back to the input yaml.
218
230
See [Input Configuration](#input-configuration).
219
231
220
232
```yml
@@ -229,22 +241,24 @@ KV_ID: "<provided-key-valut-secret>" # If SP already exists please fill it in to
229
241
230
242
#### Creating a Custom Role for Execution
231
243
<details>
232
-
<summary>Expand to see details for using a custom role </summary>
244
+
<summary>Expand to see details for using a custom role. </summary>
233
245
234
246
If you have an existing service principal and would like the convenience of only having to assign one role for IRT execution, you can follow the directions in this section.
235
247
236
248
##### Prerequisites
237
249
238
-
- **Azure Subscription:** Ensure you have access to an Azure subscription.
239
-
- **Azure CLI:** Ensure Azure CLI exists on your local machine
250
+
1. Azure Subscription
251
+
- Ensure you have access to an Azure subscription.
252
+
1. Azure CLI
253
+
- Ensure Azure CLI exists on your local machine
240
254
241
255
##### Steps
242
256
243
-
1. Prepare Your Environment:
257
+
1. Prepare Your Environment
244
258
- Open a Bash Shell:
245
259
- You can use any terminal that supports Bash
246
260
247
-
1. Sign in to Azure:
261
+
1. Sign in to Azure
248
262
- Execute the following command to sign in to your Azure account:
249
263
250
264
```bash
@@ -255,7 +269,7 @@ If you have an existing service principal and would like the convenience of only
255
269
az account set --subscription "<your-subscription-id>"
256
270
```
257
271
258
-
1. Deploy the Template:
272
+
1. Deploy the Template
259
273
260
274
Deploy your ARM template by running the following command. Replacing the example variable values with your actual values:
261
275
@@ -274,9 +288,9 @@ If you have an existing service principal and would like the convenience of only
274
288
--parameters roleName="$roleName"
275
289
```
276
290
277
-
1. Assign Role to Application Service Principal used for testing:
291
+
1. Assign Role to Application Service Principal used for testing
278
292
279
-
Weather created via the all-in-one setup or using your own, assign the newly created role to your identity. This single role provides all the necessary authorizations to run Instance Readiness Testing.
293
+
Weather created via the all-in-one setup, or using your own, assign the newly created role to your identity. This single role provides all the necessary authorizations to run Instance Readiness Testing.
280
294
281
295
```bash
282
296
# The Application ID of your Service Principal for your application
@@ -301,7 +315,7 @@ If you have an existing service principal and would like the convenience of only
301
315
<details>
302
316
<summary>Expand to see how to create l3 isolation. </summary>
303
317
304
-
The testing framework does't create, destroy, or manipulate isolation domains. Therefore, existing isolation domains can be used for execution. Each isolation domain requires at least one external network. The supplemental script, `create-l3-isolation-domains.sh`. Internal networks for example, L3, trunked, etc. are created, manipulated, and destroyed through the course of testing.
318
+
The testing framework doesn't create, destroy, or manipulate isolation domains. Therefore, existing isolation domains can be used for execution. Each isolation domain requires at least one external network. The supplemental script, `create-l3-isolation-domains.sh`. Internal networks, for example, L3, trunked, etc. are created, manipulated, and destroyed through the course of testing.
305
319
306
320
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, either can contain the information needed.
307
321
@@ -348,17 +362,15 @@ executed, different prerequisite test commands, so totals may not always be the
The Test Results section provides all the tests (assertions) that IRT
358
-
executes. The Asserters section expands to view the list of tests
359
-
(assertions) that are run and available. Each asserter can be further expanded
360
-
that loads an accordion pane, which provides more details of the asserter,
361
-
including the description of the test and any thresholds to be measured and asserted against.
372
+
executes. The Asserters section expands to view the list of tests (assertions) that are run and available.
373
+
Each asserter can be further expanded that loads an accordion pane, which provides more details of the asserter, including the description of the test and any thresholds to be measured and asserted against.
362
374
363
375
### Display of Test Results
364
376
@@ -378,7 +390,7 @@ description of it under standard log.
This section is an informational only, that provides additional details about
423
-
the Nexus instance. There are no assertions/tests that represent this
424
-
section. It helps operators to check the status of underlying cluster
425
-
resources and tenant resources running on the cluster after IRT is
426
-
executed.
434
+
This section is an informational only, that provides extra details about the Nexus instance.
435
+
There are no assertions/tests that represent this section.
436
+
It is intended to help users check the status of underlying cluster resources and tenant resources running on the cluster after IRT is executed.
427
437
428
438
The Extras section consists of results displayed by running two different
429
439
script files separately.
430
440
431
441
- Platform Validation Results:
432
-
- Displays the Nexus under cloud deployed resources details and their current statuses, including Cluster Manager details and its extensions, Fabric related details, Nexus cluster and its extensions, BareMetal Machines, Arc related, and Storage appliances.
442
+
- Displays the Nexus under cloud deployed resources details and their current statuses, including Cluster Manager details and its extensions, Fabric related details, Nexus cluster and its extensions, BareMetal Machines, Arc related, and Storage appliances.
433
443
434
444
- Tenant workloads Validation Results:
435
-
- Displays the Nexus tenant resources details and their current statuses running on the Nexus cluster, including displaying of L2 and L3 Isolation Domains, Cloud Service networks, default cni networks, L2 and L3 networks, trunked networks, available list of VMs…
445
+
- Displays the Nexus tenant resources details and their current statuses running on the Nexus cluster, including displaying of L2 and L3 Isolation Domains, Cloud Service networks, default cni networks, L2 and L3 networks, trunked networks, available list of VMs.
436
446
437
447
## Troubleshooting
438
448
@@ -442,4 +452,4 @@ methods to address failures and technical problems.
0 commit comments