Server Plans¶
A server plan is a size: the machine type (LXC container or virtual machine), the vCPU, the RAM and the root disk an App Server is created with, and the size it moves to on a resize. Plans belong to an App Definition — each one carries its own catalogue, and the person creating a server picks from it. The range matters because a customer pays for the whole host and fills it core by core: a catalogue that jumps from 4 vCPU to 8 sells eight cores to someone who needs five, and the three left over are paid for and idle. This page is for the operator who owns App Definitions; if you are choosing a plan for your own App Server, read Choosing an App Definition and Per-Stack Plan Selection instead.
Name and size code¶
Each plan carries two strings:
name— the short label shown in the plan selector. The display name appends the specs to it:M+ - LXC - 5.0 vCPU, 10.0 Gb RAM, 40 Gb Storage.
Every size is GiB: LXD reserves them as such; the form labels write Go and the display
name Gb for the same quantity.
- size_code — the technical key. Manganese and the MCP pass it as plan_code to
create (mgx_create_app_server) and resize (mgx_resize_server) an App Server.
A code designates one set of specs
App Servers and automations look a plan up by its size_code, so a code is never
reused for different specs. It is unique per App Definition — a duplicate is refused
when the App Definition is saved — and default is reserved by the Create Default
Plan button.
Two naming schemes, chosen per App Definition:
| Scheme | name |
size_code |
Rule |
|---|---|---|---|
| Symbolic | M+ |
mplus-lxc |
the label in lower case, + spelled plus, suffix -lxc or -vm |
| Automatic | LXC 5-10-40 |
lxc5-10-40 |
{type}{vCPU}-{RAM GiB}-{disk GiB}, for instance lxc0.5-1-40 |
| Either | Unlimited |
unlimited-lxc |
vCPU, RAM and disk all 0 — LXC only, see The Unlimited plan |
A generation prefix may precede the code: gen-mplus-lxc, gen-lxc5-10-40. It gives
each generated range its own namespace, so an App Definition carries an older hand-made
range (m-lxc = 2 vCPU) and a generated one (gen-m-lxc = 4 vCPU) side by side. App
Servers keep the plan they were created with and move to a new one through Resize, on
the same App Definition and the same machine type.
The plans shipped with the generic templates predate the ladder: there XS is half a core and M two vCPU, which is what Choosing an App Definition describes. A generated range keeps its own labels under its prefix, and the display name carries the specs either way.
The plan form proposes both fields from the specs, following the scheme and the prefix the App Definition's other plans already use. A name somebody typed by hand stays put through every later spec change; a proposed one follows the specs. A row with no spec typed yet gets no name and no code — it is a row being typed, not an Unlimited plan.
Generating a range¶
On the App Definition form, page App. Servers, the Generate Plans… button opens a wizard that builds a whole range in one pass.
| Option | Default | Meaning |
|---|---|---|
| Mode | Range | Range fills the grid from the ladder below; Custom leaves it empty for hand-typed lines |
| Machine Types | LXC and VM | LXC only, VM only, or both — the LXC block first, then the VM one |
| Intermediate Sizes | on | includes the "+" sizes, so a customer needing 5 vCPU takes 5 instead of 8 |
| Unlimited Plan | off | adds one LXC plan with no CPU, RAM or disk cap |
| RAM per vCPU (GiB) | 2 | GiB of RAM per vCPU |
| Disk (GiB) | 40 | root disk applied to every line, editable per line |
| Naming Scheme | detected from the existing plans | symbolic or automatic, see above |
| Code Prefix | gen- |
prefix of every generated size code; use another one (gen2-) for a second generation on the same App Definition, or leave it empty |
Pick the RAM ratio off the target hosts
Real hosts run 2 to 4 GiB per core. Take the ratio of the hosts this range will be provisioned on, so the RAM you pay for is used along with the cores: a 1 GiB-per-core range on 4 GiB-per-core hosts leaves three quarters of the memory unsold.
The ladder — a "+" size sits one step above its anchor, and the step is 1 vCPU below 10, 2 from 10 to 16, and 4 above:
| Label | vCPU | VM | Intermediate |
|---|---|---|---|
| 3XS | 0.25 | no | no |
| 2XS | 0.5 | no | no |
| XS | 1 | yes | no |
| S | 2 | yes | no |
| S+ | 3 | yes | yes |
| M | 4 | yes | no |
| M+ | 5 | yes | yes |
| L | 6 | yes | no |
| L+ | 7 | yes | yes |
| XL | 8 | yes | no |
| XL+ | 9 | yes | yes |
| XL++ | 10 | yes | yes |
| 2XL | 12 | yes | no |
| 2XL+ | 14 | yes | yes |
| 3XL | 16 | yes | no |
| 3XL+ | 20 | yes | yes |
| 4XL | 24 | yes | no |
| 4XL+ | 28 | yes | yes |
| 5XL | 32 | yes | no |
RAM is the vCPU count times the ratio. The 0.25 and 0.5 rows are LXC only: a virtual machine takes whole vCPUs.
The grid¶
Nothing is created until you say so. The grid is editable: change a cell, delete a line, uncheck a line to leave it out, add a line of your own. Generate refills the grid from the options and discards those edits. Create plans creates one plan per checked line, with billing type No billing, and closes the wizard; the new plans are sequenced after the App Definition's existing ones.
In Custom mode the grid starts empty and each plan is typed. Name and code are proposed as soon as the specs are entered, following the wizard's scheme and prefix; a row left untouched is skipped at creation.
Collisions¶
A line whose size code already exists on the App Definition arrives unchecked and highlighted, with the existing plan shown in the Already on this App Definition column. Change the prefix or the code to create it.
A line whose name is already used with other specs stays checked and shows the existing plan in the same column. Both plans coexist — the display name carries the specs, so the selector tells them apart. Archive the older plan once no App Server uses it.
Related¶
- Choosing an App Definition — the plans the shipped templates offer, and what XS and Unlimited mean
- Per-Stack Plan Selection — how much CPU and RAM a workload needs to build and to run