Skip to content

Commit 5c4dacb

Browse files
bfjeldsCopilotBritel
authored
docs: Performing-an-ABUpdate (#224)
* update * Update docs/Tutorials/Performing-an-ABUpdate.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * host-config-update.yaml * fix up * rename * missed update paths * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update step description from 'Get' to 'Build' Trident RPMs * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Brian Telfer <britel@microsoft.com> * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Brian Telfer <britel@microsoft.com> * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Brian Telfer <britel@microsoft.com> * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Brian Telfer <britel@microsoft.com> * Update docs/Tutorials/Performing-an-AB-Update.md Co-authored-by: Brian Telfer <britel@microsoft.com> * align other docs * align * align * Host Configuration * Update docs/Tutorials/Building-AB-Update-Images-for-Install-and-Update.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * line length * Revise headings for steps in AB update tutorial Updated section headings to improve consistency and clarity. * Update heading format in tutorial on COSI configuration * Fix heading formatting for Update COSI Configuration --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Brian Telfer <britel@microsoft.com>
1 parent a3e3f79 commit 5c4dacb

15 files changed

Lines changed: 358 additions & 59 deletions

docs/How-To-Guides/Configure-an-AB-Update-Ready-Host.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ pair comprised of two RAID arrays, `root-a` and `root-b`, would have an ID
7070

7171
### Step 2: Add `abUpdate` configuration
7272

73-
1. Add a `storage.abUpdate` configuration to the host configuration. The
73+
1. Add a `storage.abUpdate` configuration to the Host Configuration. The
7474
[`abUpdate`](../Reference/Host-Configuration/API-Reference/AbUpdate.md)
7575
configuration carries information about the [A/B volume
7676
pairs](../Reference/Glossary.md#ab-volume-pair) that are used to perform A/B
@@ -155,7 +155,7 @@ will:
155155
- Link each pair of device copies into a logical A/B volume pair.
156156

157157
1. Run A/B updates with Trident by following [this
158-
tutorial](../Tutorials/Performing-an-ABUpdate.md). On an A/B update, Trident
158+
tutorial](../Tutorials/Performing-an-AB-Update.md). On an A/B update, Trident
159159
will:
160160

161161
- Update the OS image on the inactive partitions, so that it becomes active

docs/How-To-Guides/Creating-Azure-Linux-Images-with-Image-Customizer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ oras pull mcr.microsoft.com/azurelinux/3.0/image/minimal-os:latest --platform li
2929
popd
3030
```
3131

32-
### Step 2: Get Trident RPMs
32+
### Step 2: Build Trident RPMs
3333

3434
Build the Trident RPMs by running:
3535

@@ -56,7 +56,7 @@ Copy RPMs to staging folder:
5656
cp -r bin/RPMS $HOME/staging
5757
```
5858

59-
### Step 3: Create Image Customizer Configuration
59+
### Step 3: Define COSI Configuration
6060

6161
Follow the Image Customizer
6262
[documentation](https://microsoft.github.io/azure-linux-image-tools/imagecustomizer/README.html)

docs/How-To-Guides/Set-Up-Root-Verity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ oras pull mcr.microsoft.com/azurelinux/3.0/image/minimal-os:latest --platform li
4040
popd
4141
```
4242

43-
### Step 2: Get Trident RPMs
43+
### Step 2: Build Trident RPMs
4444

4545
Build the Trident RPMs by running:
4646

@@ -67,7 +67,7 @@ Copy RPMs to staging folder:
6767
cp -r bin/RPMS $HOME/staging
6868
```
6969

70-
### Step 3: Create Image Customizer Configuration
70+
### Step 3: Define COSI Configuration
7171

7272
To create a root-verity volume, there are a few Image Customizer configuration
7373
sections that are important.

docs/How-To-Guides/Set-Up-Usr-Verity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ oras pull mcr.microsoft.com/azurelinux/3.0/image/minimal-os:latest --platform li
3232
popd
3333
```
3434

35-
### Step 2: Get Trident RPMs
35+
### Step 2: Build Trident RPMs
3636

3737
Build the Trident RPMs by running:
3838

@@ -59,7 +59,7 @@ Copy RPMs to staging folder:
5959
cp -r bin/RPMS $HOME/staging
6060
```
6161

62-
### Step 3: Create Image Customizer Configuration
62+
### Step 3: Define COSI Configuration
6363

6464
To create a usr-verity volume, there are a few Image Customizer configuration
6565
sections that are important.

docs/Reference/Host-Configuration/API-Reference/EncryptedVolume.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ This parameter is required. It must be a valid file name and unique among all en
3939

4040
The ID of the LUKS-encrypted volume to create.
4141

42-
This parameter is required. It must be non-empty and unique among the IDs of all block devices in the host configuration. This includes the IDs of all disk partitions, encrypted volumes, software RAID arrays, and A/B volume pairs.
42+
This parameter is required. It must be non-empty and unique among the IDs of all block devices in the Host Configuration. This includes the IDs of all disk partitions, encrypted volumes, software RAID arrays, and A/B volume pairs.
4343

4444
| Characteristic | Value |
4545
| -------------- | ----------------- |

docs/Reference/Host-Configuration/API-Reference/SoftwareRaidArray.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
Software RAID configuration.
66

7-
The RAID array will be created using the `mdadm` package. During a clean install, all the existing RAID arrays that are on disks defined in the host configuration will be unmounted, and then stopped.
7+
The RAID array will be created using the `mdadm` package. During a clean install, all the existing RAID arrays that are on disks defined in the Host Configuration will be unmounted, and then stopped.
88

9-
The RAID arrays that are defined in the host configuration will be created, and mounted if requested in the `storage.filesystems` config.
9+
The RAID arrays that are defined in the Host Configuration will be created, and mounted if requested in the `storage.filesystems` config.
1010

1111
To learn more about RAID, please refer to the [RAID wiki](https://wiki.archlinux.org/title/RAID).
1212

@@ -39,7 +39,7 @@ See the reference links for picking the right number of devices. Devices are par
3939

4040
A unique identifier for the RAID array.
4141

42-
This is a user-defined string that links the RAID array to the `filesystems` config in the configuration. The identifier must be unique across devices of all types in the host configuration.
42+
This is a user-defined string that links the RAID array to the `filesystems` config in the configuration. The identifier must be unique across devices of all types in the Host Configuration.
4343

4444
| Characteristic | Value |
4545
| -------------- | ----------------- |

docs/Trident/How-Do-I-Interact-With-Trident.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ installation and servicing operations. The CLI supports the following commands:
2121
- [`offline-initialize`](Tutorials/Onboard-a-VM-to-Trident.md): Prepares the
2222
Trident datastore for a VM image, enabling future in-place servicing. This is
2323
typically performed during VM image creation.
24-
- [`update`](Tutorials/Performing-an-ABUpdate.md): Executes an OS update in
24+
- [`update`](Tutorials/Performing-an-AB-Update.md): Executes an OS update in
2525
accordance with the supplied Host Configuration.
2626
- `commit`: Certifies the current OS deployment as successful.
2727
- [`rebuild-raid`](How-To-Guides/Rebuild-RAID-Array.md): Reconstructs a degraded

docs/Trident/Trident.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ Trident](Tutorials/Onboard-a-VM-to-Trident.md) tutorial.
8888
#### Do you want to update a bare-metal host or a virtual machine?
8989

9090
You can start with the [Performing an A/B
91-
update](Tutorials/Performing-an-ABUpdate.md) tutorial.
91+
update](Tutorials/Performing-an-AB-Update.md) tutorial.
9292

9393
<!-- #### Do you want to orchestrate Trident servicing operations across your fleet?
9494

docs/Tutorials/Building-AB-Update-Images-for-Install-and-Update.md

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ both install and update.
1515
2. Ensure [Image Customizer
1616
container](https://microsoft.github.io/azure-linux-image-tools/imagecustomizer/quick-start/quick-start.html)
1717
is accessible.
18-
3. Ensure SSH Key Pair Exists (assumed in this tutorial to be
18+
3. Ensure SSH key pair exists (assumed in this tutorial to be
1919
`$HOME/.ssh/id_rsa.pub`)
2020

2121
## Instructions
@@ -32,7 +32,7 @@ oras pull mcr.microsoft.com/azurelinux/3.0/image/minimal-os:latest --platform li
3232
popd
3333
```
3434

35-
### Step 2: Get Trident RPMs
35+
### Step 2: Build Trident RPMs
3636

3737
Build the Trident RPMs by running:
3838

@@ -59,7 +59,7 @@ Copy RPMs to staging folder:
5959
cp -r bin/RPMS $HOME/staging
6060
```
6161

62-
### Step 3: Create Image Customizer Configuration for Install
62+
### Step 3: Define Install COSI Configuration
6363

6464
Follow the Image Customizer
6565
[documentation](https://microsoft.github.io/azure-linux-image-tools/imagecustomizer/README.html)
@@ -117,11 +117,10 @@ be defined like this:
117117
```
118118

119119
In addition to partition and filesystem definition, Trident must be added to the
120-
image. As the final step in install, [trident
121-
commit](../Reference/Trident-CLI.md#commit) must be invoked to validate and
122-
ensure the machine's boot order is correct. To enable commit, Trident needs the
123-
`trident-service` package to be installed and the `trident` service to be
124-
enabled:
120+
image. The final step for install is [trident commit](../Reference/Trident-CLI.md#commit).
121+
This will validate and ensure the machine's boot order is correct. To enable
122+
`trident commit` in the install image, the `trident-service` package must be
123+
installed and the `trident` service needs to be enabled:
125124

126125
``` yaml
127126
packages:
@@ -206,7 +205,7 @@ os:
206205
EOF
207206
```
208207

209-
### Step 4: Invoke Image Customizer to Create an Install COSI File
208+
### Step 4: Create an Install COSI
210209

211210
From previous steps, the Trident RPMs, a base image (`image.vhdx`) and Image
212211
Customizer configuration file (`ic-config-install.yaml`) are all found in
@@ -336,7 +335,7 @@ os:
336335
EOF
337336
```
338337

339-
### Step 6: Create Servicing ISO and Install the A OS
338+
### Step 6: Create Servicing ISO and Install OS on Target Machine
340339

341340
To install the COSI we created in step 4, we need to create a servicing ISO.
342341
Follow the [Building a Servicing ISO tutorial](./Building-a-Servicing-ISO.md),
@@ -350,16 +349,21 @@ operating system.
350349
Alternatively, to simulate an installation, you can create a virtual machine
351350
with an empty disk and mount the ISO directly as a CD.
352351

353-
### Step 7: Create Image Customizer Configuration for Update
352+
### Step 7: Define Update COSI Configuration
354353

355354
The process for creating an update COSI file is similar to what we did for
356355
Install.
357356

358-
For an update COSI, we only need to provide an esp and the updated partitions.
357+
For an update COSI, we need to provide only an esp and the updated partitions.
358+
The `trident` partition does not have an [A/B volume pair](../Reference/Glossary.md#ab-volume-pair)
359+
and does not need to be serviced, so it is not included. The same would go for
360+
any data or other non-serviced partition.
359361

360-
> Note that `root` is specified for Image Customizer unlike the `root-a` or
361-
> `root-b` found in the Trident Host Configuration. Also that there is no
362-
> `trident` partition.
362+
Image Customizer reflects the update OS image, which will be laid out onto a
363+
single partition at a time: either A _or_ B. So, the
364+
[A/B volume pairs](../Reference/Glossary.md#ab-volume-pair) will not be reflected
365+
in the Image Customizer config. This is why `root` is specified here unlike the
366+
`root-a` or `root-b` found in the Trident Host Configuration.
363367

364368
``` yaml
365369
disks:
@@ -387,11 +391,10 @@ filesystems:
387391
type: ext4
388392
```
389393

390-
As for the install COSI, Trident must be added. The final step for update is
391-
[trident commit](../Reference/Trident-CLI.md#commit), which must be invoked to
392-
validate and ensure the machine's boot order is correct. To enable commit,
393-
Trident needs the `trident-service` package to be installed and the `trident`
394-
service to be enabled:
394+
The final step for A/B Update is [trident commit](../Reference/Trident-CLI.md#commit).
395+
This will validate and ensure the machine's boot order is correct after an
396+
update. To enable `trident commit` in the update image, the `trident-service`
397+
package must be installed and the `trident` service needs to be enabled:
395398

396399
``` yaml
397400
packages:
@@ -465,7 +468,7 @@ os:
465468
EOF
466469
```
467470

468-
### Step 8: Invoke Image Customizer to Create an Update COSI File
471+
### Step 8: Create an Update COSI
469472

470473
From previous steps, the Trident RPMs, a base image (`image.vhdx`) and Image
471474
Customizer configuration file (`ic-config-update.yaml`) are all found in
@@ -505,7 +508,7 @@ cp $HOME/staging/host-config.yaml $HOME/staging/host-config-update.yaml
505508
sed -i 's|url: /images/azure-linux.cosi|url: /tmp/osimage-update.cosi|' $HOME/staging/host-config-update.yaml
506509
```
507510

508-
### Step 10: Copy COSI and Host Configuration to OS
511+
### Step 10: Copy COSI and Host Configuration to the Servicing OS
509512

510513
While Trident can download COSI files from an OCI or http server, in this
511514
tutorial, we will just copy the COSI to a known location. This is based on
@@ -520,7 +523,7 @@ scp -i $HOME/.ssh/id_rsa $HOME/staging/host-config-update.yaml tutorial-user@$TA
520523
scp -i $HOME/.ssh/id_rsa $HOME/staging/osimage-update.cosi tutorial-user@$TARGET_MACHINE_IP:/tmp/osimage-update.cosi
521524
```
522525

523-
### Step 11: Update Target Machine to B OS
526+
### Step 11: Update OS on the Target Machine to B
524527

525528
To update the target machine, we will invoke [`trident
526529
update`](../Reference/Trident-CLI.md#update).

docs/Tutorials/Building-a-Servicing-ISO.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ oras pull mcr.microsoft.com/azurelinux/3.0/image/minimal-os:latest --platform li
3535
popd
3636
```
3737

38-
### Step 2: Get Trident RPMs
38+
### Step 2: Build Trident RPMs
3939

4040
Build the Trident RPMs by running:
4141

@@ -133,7 +133,7 @@ iso:
133133
destination: /images/azure-linux.cosi
134134
```
135135
136-
### Step 4: Invoke Image Customizer to Create Installation ISO
136+
### Step 4: Create Installation ISO
137137
138138
Assuming locations for the base image file (`$HOME/staging/image.vhdx`) and the
139139
Image Customizer configuration file (`$HOME/staging/ic-config.yaml`), follow the

0 commit comments

Comments
 (0)