Skip to content

Commit 2fb8437

Browse files
committed
more acrolinx suggested changes
1 parent e1c92cd commit 2fb8437

File tree

1 file changed

+46
-36
lines changed

1 file changed

+46
-36
lines changed

articles/operator-nexus/howto-run-instance-readiness-testing.md

Lines changed: 46 additions & 36 deletions
Original file line numberDiff line numberDiff 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+
---
111
# Azure Operator Nexus Instance Readiness Test (IRT)
212

313
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.
414

515
## Key benefits
616

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
1022
- IRT provides generic functionality that all operators can use.
1123
- It enables validation of new Nexus deployments and post-upgrade states.
1224
- 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
5870
- Validate IPV4 routes are configured correctly.
5971
- Validate IPV6 routes are configured correctly.
6072
- 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.
6274
- Validate dpdk-testpmd on L2 interface within NAKS cluster for vlan.
6375
- Validate dpdk-testpmd on L2 interface within NAKS cluster, data captured for vlan.
6476
- 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
111123
## Environment Requirements
112124

113125
- 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.
115127
- Any machine that has the required packages installed should be able to use the scripts.
116128
- Knowledge of networks to use for the test.
117129
* 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.
119131
- The ability to create a service principal with the correct roles.
120132
- The ability to read secrets from the KeyVault, see [Service Principal] (#create-service-principal-and-security-group) section for more details.
121133
- The ability to create security groups in your Active Directory tenant.
122134

123135
## Input Configuration
124136

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.
126138

127139
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:
128140

@@ -136,7 +148,7 @@ You can provide the network information in a `networks-blueprint.yml` file, simi
136148

137149
### Download IRT
138150
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.
140152
1. Extract the tarball to the local file system: `mkdir -p irt && tar xf nexus-irt.tar.gz --directory ./irt`.
141153
1. Switch to the new directory `cd irt`.
142154
1. See RELEASE-CHANGELOG.md for any notable updates or changes.
@@ -214,7 +226,7 @@ SERVICE_PRINCIPAL:
214226

215227
> **_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.
216228

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.
218230
See [Input Configuration](#input-configuration).
219231

220232
```yml
@@ -229,22 +241,24 @@ KV_ID: "<provided-key-valut-secret>" # If SP already exists please fill it in to
229241

230242
#### Creating a Custom Role for Execution
231243
<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>
233245

234246
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.
235247

236248
##### Prerequisites
237249

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
240254

241255
##### Steps
242256

243-
1. Prepare Your Environment:
257+
1. Prepare Your Environment
244258
- Open a Bash Shell:
245259
- You can use any terminal that supports Bash
246260

247-
1. Sign in to Azure:
261+
1. Sign in to Azure
248262
- Execute the following command to sign in to your Azure account:
249263

250264
```bash
@@ -255,7 +269,7 @@ If you have an existing service principal and would like the convenience of only
255269
az account set --subscription "<your-subscription-id>"
256270
```
257271

258-
1. Deploy the Template:
272+
1. Deploy the Template
259273

260274
Deploy your ARM template by running the following command. Replacing the example variable values with your actual values:
261275

@@ -274,9 +288,9 @@ If you have an existing service principal and would like the convenience of only
274288
--parameters roleName="$roleName"
275289
```
276290

277-
1. Assign Role to Application Service Principal used for testing:
291+
1. Assign Role to Application Service Principal used for testing
278292

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.
280294

281295
```bash
282296
# 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
301315
<details>
302316
<summary>Expand to see how to create l3 isolation. </summary>
303317
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.
305319

306320
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.
307321

@@ -348,17 +362,15 @@ executed, different prerequisite test commands, so totals may not always be the
348362

349363
![irt summary header success](./media/irt/irt-header-success.png)
350364

351-
If there is any failures in the tests, the values represent accordingly.
365+
If there's any failures in the tests, the values represent accordingly.
352366

353367
![irt summary header failure](./media/irt/irt-header-failure.png)
354368

355369
### Test Results
356370

357371
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.
362374

363375
### Display of Test Results
364376

@@ -378,7 +390,7 @@ description of it under standard log.
378390
An example of an Asserter:
379391

380392
*Asserters \[It\] res-test-dpdk-naks-84f5b - network: \'l3network-704\'
381-
(**PMD) average of Rx-pps \[17668558\] should be greater than 8000000*.
393+
(*_PMD) average of Rx-pps \[17668558\] should be greater than 8000000_.
382394

383395
The above example of an assert reads as the Rx (receive)-pps (packets
384396
per seconds) for l3network-704 is 17668558, which is greater than the
@@ -400,39 +412,37 @@ consists of the suite relevant tests that expand to provide details.
400412
Failures of any specific tests are highlighted in red.
401413

402414
- Setup Suite:
403-
- Sets up test execution and deploys Nexus Resources as defined in
415+
- Sets up test execution and deploys Nexus Resources as defined in
404416
the ARM Template required for the framework and tests.
405417

406418
- Inject Suite:
407-
- Injects the required environment variables and test
419+
- Injects the required environment variables and test
408420
data to support the testing of NAKS resources
409421

410422
- Collect Suite:
411-
- The collect suite collects the data published by
423+
- The collect suite collects the data published by
412424
the Setup Suite.
413425

414426
- Cleanup Suite:
415-
- Deletes the Nexus resources created for the tests
427+
- Deletes the Nexus resources created for the tests
416428
after the data is collected.
417429

418430
![irt debug section](./media/irt/irt-debug-section.png)
419431

420432
## Extras Section
421433

422-
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.
427437

428438
The Extras section consists of results displayed by running two different
429439
script files separately.
430440

431441
- 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.
433443

434444
- 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.
436446

437447
## Troubleshooting
438448

@@ -442,4 +452,4 @@ methods to address failures and technical problems.
442452
If you still have questions, [contact
443453
support](https://portal.azure.com/?#blade/Microsoft_Azure_Support/HelpAndSupportBlade).
444454
For more information about Support plans, see [Azure Support
445-
plans](https://azure.microsoft.com/support/plans/response/)
455+
plans](https://azure.microsoft.com/support/plans/response/).

0 commit comments

Comments
 (0)