-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨(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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.yml
that initialize static services.Static services are defined in files matching
static-svc*.yml
TODO
Per application :