ReferenceBlueprint spec
How an apply works
An apply has four steps. Ferry writes nothing before the full file is valid.
Parse. Ferry reads the YAML into services, datastores and env groups. It reads each plan into limits.
1 / 4
An apply can fail only in the first two steps. Then the server stays as it was.
Parse
An error in the structure stops the apply with a 400 error. The error gives the name of the entry:
service 'a': envVars[0] (A): needs a value, generateValue: true, fromDatabase, fromService or sync: falseA key that Ferry does not support and a plan that Ferry does not know only add warnings.
Plan
The validation of each entry comes before each write. If one entry is not valid, the full apply fails and Ferry writes nothing.
Then each resource gets a action. An update has a list of changes.
Write and deploy
Ferry writes in the order of the dependencies. Then it starts the deploys and restarts: see What an apply deploys.
- an entry with no
name - an unknown service
type - a variable with no source for its value
- a
memoryLimitthat is not a size
- the names
- the settings of each service, with the same rules as
ferry create - the resource limits
- the custom domains
- the references
- the size limits of each environment
- The env groups.
- The datastores. Ferry creates and prepares the new ones. The ones that exist get their new limits.
- The services, with their variables and their links to env groups.