Client deployment and troubleshooting¶
Use the selected control Odoo 19 to prepare and provision a client. The platform allocates its VM; a manually supplied customer server is not required. For component ownership and readiness stages, see architecture.
Before provisioning¶
- Configure control settings and secrets, the provider plan, region, server size, volume and firewall policy.
- Establish Headscale/Salt connectivity, the trusted master pin, authenticated pillar and the queue runner.
- Select a supported OS or compatible golden image, the client release and IDE installation.
- Check GitHub, DNS, certificate contact and enabled backup/LLM integrations. Missing required inputs must be resolved before provisioning can succeed.
Provision and verify¶
- Create the client and choose Prepare Deployment Plan. Inspect the frozen
resources, revision, quotas, addresses and ingress mode. Preparation may read
GitHub to resolve
main; it does not allocate cloud resources. - Start infrastructure. Follow Operations while the queue reconciles the VM,
volume, attachment, DNS and expected
client-<UUID>identity. - Confirm trusted connectivity. If diagnosing enrollment on the master, use:
- Wait for configuration to finish. It verifies storage, applies the selected client release and checks application health. Check the recorded verified SHA.
- Follow the separate production operation. It guards public ingress, creates and hardens Odoo, then verifies HTTPS and authentication.
- Check activation and any opted-in backup result. Use Access Link for credential handover. Verify a real coding session separately if required.
Find the failing boundary¶
| Symptom | Check next |
|---|---|
| Preparation fails | Required plan settings, selected revision and access to its GitHub metadata |
| VM or volume remains pending | Provider operation and durable dispatch receipt; resource ownership/attachment |
| Salt ping fails | VPN enrollment, expected minion ID, accepted key, master pin and private-network ACLs |
| Configuration fails | Operation details, safe diagnostics, selected release and storage receipt |
| Configuration result is unknown | Reconcile the original request/JID; use the explicit recovery workflow when necessary |
| Applications work locally but production does not | Publication guard, production receipt and HTTPS checks |
| Agent cannot call a model | Agent configuration, gateway key/model policy and inference connectivity |
| Restore check fails | Backup policy, repository and owned mount |
A ping proves transport; infra_state=ready proves VM/disk readiness. Neither
proves a usable production application. Do not infer success from an empty error
message, a completed queue wrapper or a process merely being present.
Apply a correction to the existing VM¶
Deliver the reviewed platform commit containing the client changes, select its full SHA and use Apply Updated Configuration. For customer settings, use Save & Apply. These operations bind the revision and inputs to the durable request. Editing the master's checkout alone does not update a release-aware client.
Use Retry only after a confirmed failure. For an unknown configuration result,
follow Recover.
Preserve the earlier receipt and inspect possible partial changes. Do not replace
the normal queue with an unrecorded direct state.apply to make the UI look ready.
After a repair, verify the affected application checks and preservation of client work. A reboot, missing-volume refusal, restore or provider fault needs its own rehearsal if that behavior is part of the acceptance criteria. Record the target, source/deployed revisions and actual results in a dated deployment report.