✨(playbook) introduce static services#427
Conversation
bb1f765 to
b128520
Compare
b760d3a to
5d958b0
Compare
|
FYI I've not removed the forum route. I propose to do that later to ease the migration process. |
8285c50 to
43fc5e8
Compare
43fc5e8 to
b655429
Compare
b655429 to
03adc8a
Compare
jmaupetit
left a comment
There was a problem hiding this comment.
I would have preferred substituting existing SVCs by static ones without introducing a new semantic / object. Do you think we must keep B/G SVCs?
29a4d0d to
9c0c93f
Compare
@sampaccoud I described static services and their purpose inside. |
2bdf11b to
fc61811
Compare
|
I just added an |
007db8d to
5e90464
Compare
|
@lunika I patched |
5e90464 to
2499802
Compare
|
I changed the base branch of this PR to target Maybe I should remove the Upgrade.md file because it's not relevant anymore. |
2499802 to
4b34082
Compare
Add support for static services, with fixed name, in addition to the services deployed with a deployment stamp in their name. It allows applications inside the cluster to use the services exposed by other applications, with a consistent fqdn. BREAKING CHANGE : blue/green related tasks are now updating static services instead of routes
Add a static service for the forum elasticsearch, to be used easily by other applications.
4b34082 to
2d9d1eb
Compare
|
@sampaccoud Thanks for your feedback, I just pushed all your suggestions! |
sampaccoud
left a comment
There was a problem hiding this comment.
Looks GTM. Just to make sure, mailcatcher and flower are not handled in this PR although they have routes. I suppose they have no B/G.
@sampaccoud 🎉 🙏 About |
Purpose
As explained in #417 , the current blue/green deployment mechanism adds a suffix (deployment stamp) to the name of the services exposed by applications.
This has raised several issues because it is not possible to use service names in the settings of another app because the name will change as soon as the service is redeployed.
Proposal
Services with suffixes are helpful because they allow components of a deployed application to communicate with each other while also ensuring that the application stack is consistent within the same version.
I propose to keep them, otherwise each component of an application must be aware of their current state (green or blue) to communicate with other components. And it's hard to do that without any reconfiguration during a switch between blue/green version. We don't want that.
In addition to the current mechanism, I propose to introduce "static services".
Each static service is declined in 3 versions (service-previous, service-current and service-next) that points to the right version of a deployment.
It can be used by another application because its name doesn't change.
The switch (or any deployment related task) is now patching static services instead of routes.
Routes are now pointing to the corresponding service (e.g., route A-previous points to service A-previous).
A static service can of course exist without any route.
There is a new playbook
init_services.ymlthat initialize static services.Static services are defined in files matching
static-svc*.ymlTODO
Per application :