9.6 KiB
Documentation changes for ha-optimizations (Azure HA deployment)
Instructions for the Claude working on the docs repo
/home/sergio/Escritorio/openvidu/openvidu.io (branch next, already up to date).
These instructions derive from the changes applied in
openvidu-deployment/pro/ha/azure/cf-openvidu-ha.bicep,
openvidu-deployment/pro/ha/azure/cf-openvidu-ha.json (recompiled) and
openvidu-deployment/pro/ha/azure/createUiDefinition.json on the ha-optimizations
branch. Functional summary of what changed in the deployment:
- The 4 master VMs are now created in parallel (the
dependsOnchain MasterNode2→1, 3→2, 4→3 was removed; coordination stays data-driven via Key Vault). - Media Nodes now install (Docker + image pulls) in parallel with the masters, instead of waiting idle until all masters finished before starting to install.
- The master-node-4 single point of failure was removed: readiness
(
FINISH-MASTER-NODE) is now published by the first healthy master, right after its own health check, and a fixedsleep 150was removed. - Wait timeouts hardened (Key Vault availability and the blob-storage config retry
raised from 100s to 300s; the previously unbounded polls are now bounded to 30 min),
and the installer download is now retried and validated (
curl --retry 8 ... -o file- non-empty check) instead of the fragile
sh <(curl ...).
- non-empty check) instead of the fragile
- Bug fix in
createUiDefinition.json: the portal now maps the "Container Name" field to the correct template parameter (appDataContainerName) — see section (b).
SUMMARY: the ONLY content change required in the docs is the two deployment time
figures in Azure HA's install.md. Everything else (public parameters, screenshots,
the "Container Name" field description, other clouds, other deployment types) stays the
same. Read this file in full before touching anything.
(a) Time figures to update — MANDATORY
File: docs/docs/self-hosting/ha/azure/install.md
There are TWO deployment-time figures in this file. Locate each by its literal text (line numbers below are approximate and may have shifted). The deployment is now faster (masters run in parallel and the media install overlaps with the masters' install, plus the fixed 150s sleep is gone), so both figures must be re-measured.
Occurrence 1 (section "## Deploying the stack", ~line 97)
Current literal text:
Whenever you are satisfied with your Template parameters, just click on _"Next"_ to trigger the validation process. If correct, click on _"Create"_ to start the deployment process (which will take about 10 to 15 minutes).
Proposed text (fill in X/Y with the measurement from ov-cloud-tester):
Whenever you are satisfied with your Template parameters, just click on _"Next"_ to trigger the validation process. If correct, click on _"Create"_ to start the deployment process (which will take about X to Y minutes).
Occurrence 2 (section "## Configuration and administration", ~line 181)
Current literal text:
When your Azure stack reaches the **`Succeeded`** status, it means that all resources have been created. You will need to wait about 5 to 10 minutes for the instance to install OpenVidu. After this time, try connecting to the deployment URL. If it doesn't work, we recommend checking the previous section. Once everything is ready, you can check the [Administration](./admin.md) section to learn how to manage your deployment.
Proposed text (fill in X/Y with the measurement from ov-cloud-tester):
When your Azure stack reaches the **`Succeeded`** status, it means that all resources have been created. You will need to wait about X to Y minutes for the instance to install OpenVidu. After this time, try connecting to the deployment URL. If it doesn't work, we recommend checking the previous section. Once everything is ready, you can check the [Administration](./admin.md) section to learn how to manage your deployment.
Placeholder to fill in:
X to Y minutes — fill in with the measurement from ov-cloud-tester. The two figures are independent (occurrence 1 = full stack creation time; occurrence 2 = extra wait afterSucceededfor OpenVidu to install). Measure and fill each on its own.
Do NOT touch the same figures in other files
"10 to 15 minutes"appears ONLY indocs/docs/self-hosting/ha/azure/install.md, so there is no ambiguity for occurrence 1."5 to 10 minutes"also appears in OTHER documents that are OUT OF SCOPE here (they belong to other deployment types / clouds). Do NOT modify them:docs/docs/self-hosting/single-node-pro/azure/install.mddocs/docs/self-hosting/single-node/azure/install.mddocs/docs/self-hosting/single-node-pro/gcp/install.mddocs/docs/self-hosting/single-node/gcp/install.mdshared/self-hosting/gcp/deploying-stack.mdOnly change the occurrence insidedocs/docs/self-hosting/ha/azure/install.md.
(b) "Container Name" field fix — NO doc change needed
The bug: in createUiDefinition.json the portal emitted the output key containerName,
but the ARM/Bicep template parameter is appDataContainerName. Because the key did not
match, the value typed by the user in the "Container Name" field never reached the
template — a custom container name was silently ignored and the deployment always fell
back to the default openvidu-appdata. The fix renames only that output key to
appDataContainerName (the value still comes from the same UI field
steps('parameters STORAGE').containerName).
Impact on the docs: NONE. Explicit reasoning so you can confirm and move on:
- The visible UI element name and its label are unchanged — the form still shows a field labeled "Container Name". Only a hidden output-mapping key changed.
- The shared snippet
shared/self-hosting/azure/storage-account.md(included by the Azure HAinstall.mdvia--8<--) describes that field as: "Container Name is the name that you desire for the container ... If you leave it blank it will create the container with nameopenvidu-appdata." That description now matches reality in BOTH cases (blank →openvidu-appdata, as before; non-blank → the value is finally honored). The text was already written as if the field worked, so no wording needs to change. - The screenshot
assets/images/platform/self-hosting/shared/azure/storageaccount.png(referenced only fromshared/self-hosting/azure/storage-account.md) shows the same unchanged form, so it does NOT need to be regenerated.
Action: leave shared/self-hosting/azure/storage-account.md and its screenshot as they
are.
(c) Public template parameters / outputs: NO CHANGES — confirmation
Do not touch parameter tables or screenshots in the parameters section.
Reason: no public parameter was added, removed or renamed. appDataContainerName and
storageAccountName already existed as template parameters; the createUiDefinition fix
only corrects an existing field mapping. The Bicep template has no outputs section, and
none was added. Therefore:
- Any "Parameters" tables/screenshots in
docs/docs/self-hosting/ha/azure/install.mdand in the shared Azure snippets stay the same. - There are no new fields the user must fill in the Azure portal form.
- The parameter form screenshots do not change.
(d) Other statements in the Azure HA docs that may become outdated
The Azure HA documentation (docs/docs/self-hosting/ha/azure/*.md) and the shared Azure
includes (shared/self-hosting/azure/*.md) were reviewed against the internal changes.
Conclusions:
d.1 — Master node ordering / parallelization: not documented
The docs never state that master nodes are created sequentially or "one by one", nor do
they describe the dependsOn chain. Removing it changes nothing user-facing. No text to
update.
d.2 — FINISH-MASTER-NODE / master-4 SPOF / scale-in lock (lock.txt): not documented
The internal readiness handshake (FINISH-MASTER-NODE), the fact that it used to be
written only by master-4, and the automation-locks/lock.txt scale-in lock blob are
NOT mentioned anywhere in the docs. The scale-in behavior described in
shared/self-hosting/azure/scale-in-config.md (the graceful drain and its "up to 5
minutes" / Azure "15 minutes" figures) is about Azure's termination timing and is
UNCHANGED by this work — do not touch it.
d.3 — Internal coordination (ALL-SECRETS-GENERATED, Key Vault polling): not documented
The master-1-as-leader secrets generation, the Key Vault polling, and the new bounded timeouts are internal and not publicly documented. Nothing user-facing changes. No text to update.
d.4 — admin.md, upgrade.md, index.md (Azure HA): DO NOT TOUCH
Reviewed; none of them reference the internals that changed. No changes required.
Implementation checklist
- In
docs/docs/self-hosting/ha/azure/install.md, replace"10 to 15 minutes"(~line 97) and"5 to 10 minutes"(~line 181) with the re-measured"X to Y minutes"figures, located by their literal text. - Measure the actual deployment times with
ov-cloud-testeronha-optimizationsand fill inX/Yfor each occurrence independently. - Confirm NO parameter tables or screenshots were touched (section c).
- Confirm
shared/self-hosting/azure/storage-account.mdandstorageaccount.pngwere left unchanged (section b). - Confirm the
"5 to 10 minutes"figures in single-node / single-node-pro / GCP docs andshared/self-hosting/gcp/deploying-stack.mdwere NOT touched (section a). - Confirm
scale-in-config.md,admin.md,upgrade.md,index.mdwere NOT touched (section d).