|
6 | 6 | 4. [Offline Upgrade (Version < 5.18.0)](#offline-upgrade-version--5180)
|
7 | 7 | 1. [Offline Upgrade steps](#offline-upgrade-steps)
|
8 | 8 | 5. [Online Upgrade (Version >= 5.18.0)](#online-upgrade-version--5180)
|
9 |
| - |
| 9 | + 1. [Online Upgrade Goals](#online-upgrade-goals) |
| 10 | + 2. [Online Upgrade Algorithm](#online-upgrade-algorithm) |
| 11 | + 3. [Additional Upgrade Properties of `system.json`](#additional-upgrade-properties-of-systemjson) |
| 12 | + 4. [Upgrade Helpers](#upgrade-helpers) |
| 13 | + 5. [Config Directory Upgrade - 5.18.0](#config-directory-upgrade---5180) |
10 | 14 |
|
11 | 15 | ## Introduction
|
12 | 16 | This document provides step-by-step instructions to help you successfully upgrade your current Upstream NooBaa RPM version to a newer version.
|
@@ -101,7 +105,7 @@ Online Upgrade Algorithm commands examples -
|
101 | 105 | 4. Restart NooBaa service - `systemctl restart noobaa`
|
102 | 106 | 5. `noobaa-cli upgrade start --expected_version=5.18.0 --expected_hosts=hostname1,hostname2,hostname3`
|
103 | 107 |
|
104 |
| -### Additional Upgrade Properties of `system.json`- |
| 108 | +### Additional Upgrade Properties of `system.json` |
105 | 109 |
|
106 | 110 | 1. New per host property -
|
107 | 111 | - config_dir_version
|
@@ -229,3 +233,34 @@ Online Upgrade Algorithm commands examples -
|
229 | 233 | 1. NooBaa Health CLI - will report on the config directory status, upgrade failures and hosts that are blocked for config directory updates.
|
230 | 234 | 2. NooBaa CLI upgrade status - will print the upgrade status per the information written in system.json.
|
231 | 235 |
|
| 236 | +## Config Directory Upgrade - 5.18.0 |
| 237 | +During the upgrade to NooBaa NC 5.18.0, NooBaa will execute an upgrade script that will convert NooBaa's config directory structure to have identities directory for storing accounts config files. The motivation for this change is to transition from an account name-based structure to an ID-based structure, which allows for greater scalability and the inclusion of additional identity types in the future. </br> |
| 238 | +For more details about the new config directory structure and components, See - |
| 239 | +1. [Config Directory Structure](./Configuration.md#configuration-directory-structure). |
| 240 | +2. [Config Directory Components](./Configuration.md#configuration-directory-components). |
| 241 | +
|
| 242 | +### Config Directory Upgrade Steps |
| 243 | +**1. Creation of `identities/` Directory - </br>** |
| 244 | +The identities/ directory will serve as the primary storage location for account configuration files. Each account will have a dedicated subdirectory named after its unique identifier and identity.json file that will contain the account's configuration content. |
| 245 | +
|
| 246 | +**2. Creation of `accounts_by_name/` directory - </br>** |
| 247 | +On some S3/CLI flows, NooBaa will search for an account by name, therefore, the accounts_by_name/ directory will be created. It will contain symbolic links that map each account name to the corresponding identity.json file under the ID-based subdirectory within identities/. |
| 248 | +
|
| 249 | +**3. Upgrade configuration files of all the existing accounts - </br>** |
| 250 | +Each account config file in the old `accounts/` directory will be migrated to the new structure: |
| 251 | +
|
| 252 | +- **Identity creation - </br>** |
| 253 | +An ID-based subdirectory will be created under `identities/`, and an `identity.json` file will contain the original account config file content. The ID is the original account's id taken from the account's config file. </br> |
| 254 | +Example of identity path - `/etc/noobaa.conf.d/identities/123456789/identity.json` |
| 255 | +
|
| 256 | +- **Account name symlink creation - </br>** |
| 257 | +A symbolic link will be created in the `accounts_by_name/` directory, mapping the account name to the newly created `identity.json` file under the ID-based subdirectory. </br> |
| 258 | +Example of the new account name symlink path - `/etc/noobaa.conf.d/accounts_by_name/alice.symlink -> ../../identities/123456789/identity.json` |
| 259 | +
|
| 260 | +- **Account access Key symlink update - </br>** |
| 261 | +Any symbolic links related to access keys will be updated to point to the new ID-based `identity.json` file. </br> |
| 262 | +Example of old (NooBaa 5.17.z or lower) access_key symlink path - `/etc/noobaa.conf.d/access_keys/AKIAIOSFODNN7EXAMPLE.symlink -> ../accounts/alice.json`. </br> |
| 263 | +Example of new (NooBaa 5.18 and higher) access_key symlink path - `/etc/noobaa.conf.d/access_keys/AKIAIOSFODNN7EXAMPLE.symlink -> ../../identities/123456789/identity.json`. |
| 264 | +
|
| 265 | +**4. Backup and deletion of `accounts/` directory - </br>** |
| 266 | +Once all account configurations have been migrated and verified, the `accounts/` directory will be backed-up and removed to finalize the upgrade process. A backup of the old account config files can be found under `.backup_accounts_dir_${from_version}/` while from_version is the version upgraded from. |
0 commit comments