-
Notifications
You must be signed in to change notification settings - Fork 278
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
Node Stages and Dependency Manager #1759
Conversation
db53d3a
to
e5ab524
Compare
CAREFULL, the structure of the topo file has changed to what is documented in the top. |
3dd92d7
to
5eb47aa
Compare
c858646
to
27f01e3
Compare
e51081c
to
f705f48
Compare
ca67f0e
to
583d3b6
Compare
Yes that is alright. Would be a natural change in the upcoming change, we discussed. But it's fine to do it right now. |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #1759 +/- ##
==========================================
+ Coverage 53.43% 53.66% +0.23%
==========================================
Files 152 154 +2
Lines 11070 11236 +166
==========================================
+ Hits 5915 6030 +115
- Misses 4314 4346 +32
- Partials 841 860 +19
|
Implementing #1700
This change will first of all execute the Post-Deploy phase as another step in the scheduleNode func.
This will allow for a wider variety of dependencies. e.g. just deploying a node when another is already healthy.
Further the new struct for WaitFor allows to wait for specific states of other nodes, before certain deployment stages are started.
Multiple dependencies for different or the same phase are also possible.
So the structure of the
WaitFor
field changes as follows:These phases are used in two means.
Means 1 defines what needs needs to happen before the node enters the Means 1 phase / stage.
Means 2 on the other hand defined which phase / stage node xyz must have finished for the enclosing node to start the Means 1 phase / stage.
The available phases are:
Taking a look at this example:
Node
l1
starts without any dependency. Forl2
to enter the configure/post-deploy stage,l1
is required to have finished the create phase.Further
l3
will start its creation as soon as nodel2
finished its configure/post-deploy stage.l4
will get created as soon asl3
turned healthy (make sure healthchecks are enabled*) and nodel1
is done with its configure phase.*We have the healthcheck PR still pending, that enables you to define healthchecks as part of the topology or you rely on healthcheck defined already via the Dockerfile -> Healthcheck