ReferenceBlueprint spec
What an apply deploys
After the writes, Ferry starts only the deploys and restarts that the changes need.
A deploy
| Change | Result |
|---|---|
A new service with a repo or an image | A deploy with the trigger blueprint. |
A new service with no repo and no image | No deploy, and a warning: service 'NAME' has no repo or image: deploy it with `ferry up NAME` . |
| A build or deploy setting changed | A blueprint deploy. It also brings the new resource limits. |
| A service that exists has a source but no deploy yet | Its first deploy. |
A restart
| Change | Result |
|---|---|
| Only resource limits changed | A restart (trigger restart) when the service is live or has a deploy in progress. |
| Only variables or links to env groups changed | A restart (trigger env_change) when the service is live and its effective environment changed. |
The startCommand of a cron job changed | A restart. |
No deploy
| Change | Result |
|---|---|
numInstances | Ferry scales the service. |
domains | Ferry refreshes the routes. |
schedule or autoDeploy | Ferry saves the value. |
| The limits of a datastore that exists | Ferry applies them to its container in place, with no restart. |
- the type, the source and the branch
- the runtime, the root directory and the Dockerfile path
- the build command and the start command
- the publish directory, the port, the health check path and the disk
- Ferry applies the limits when instances start. Thus no new build is necessary.
- The runs of a cron job use the command of the live deploy. Thus no new build is necessary.
- A service that is not in the blueprint can have a link to an env group that the apply changed. Ferry restarts it too.
- Ferry does not deploy and does not restart a suspended service. If its build settings or its limits changed, the apply tells you to resume it.
At this step, the writes are complete. Thus Ferry reports a failure as a warning. Examples:
- Ferry cannot put a deploy or a restart in the queue.
- Ferry cannot prepare a new datastore.
- The container of a datastore cannot take its new limits.