mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-01 22:46:38 +08:00
34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
# Release Model
|
|
|
|
OpenFlare publishes complete configuration versions instead of modifying node configuration online.
|
|
|
|
```text
|
|
Edit rules -> Preview / diff -> Publish -> Create full version -> Activate -> Agent pulls -> Agent applies -> Agent reports
|
|
```
|
|
|
|
## Publish Rules
|
|
|
|
Server must:
|
|
|
|
1. Read all enabled `proxy_routes`.
|
|
2. Read the OpenResty main template and structured options.
|
|
3. Render the full OpenResty configuration.
|
|
4. Compute `checksum`.
|
|
5. Write `config_versions`.
|
|
6. Switch the active version.
|
|
7. Let Agents discover and apply it in later heartbeats.
|
|
|
|
Version numbers use `YYYYMMDD-NNN`.
|
|
|
|
## Immutable History
|
|
|
|
Historical versions are immutable. Rollback reactivates an old version.
|
|
|
|
Only one global active version exists at a time. Node-specific version groups are not part of the current model.
|
|
|
|
## Agent Apply Strategy
|
|
|
|
Agent backs up old files, writes the new main config, route config, certificates, and Lua assets, then validates and reloads.
|
|
|
|
If activation fails, Agent attempts to recover. A failed `version + checksum` is blocked locally until the remote active version or checksum changes.
|