Comments (10)
It's possible that for the initial set of functionality we're targetting, each node will only need to know its own current configuration and the desired new configuration. That is, we may not need to aggregate all of this and publish the result to all nodes. Nodes may get by just producing and consuming this information locally.
from flocker.
We decided two-pass is necessary for volume management. So we do need this tool, as part of two phase deploy.
The command line tool would run flocker.node.Deployer().discover_node_configuration()
and serialize it to YAML utilizing approximately the same structure as the application and deployment configs. Initially some information will not be included (e.g. #207 is necessary for images), but that's OK for now.
from flocker.
Note that Tom had a proposed alternative to this (nodes wait until all handoffs are done, then create whatever is still non-existent) so we should consider that before proceeding with this.
from flocker.
I think that approach requires more direct node-to-node communication. Without such, nodes don't have any way to know when all the handoffs are done. I think it will be easier not to have to introduce that communication.
from flocker.
At least a start of this can be made even without #271.
from flocker.
Taking a stab at this.
from flocker.
I've started something here; still not a full sketch:
https://github.com/ClusterHQ/flocker/compare/reportstate-11
flocker-reportstate
(or maybe flocker-node reportstate
, see below) would create a Deployer
instance, calculate the local node state and use the new function to serialize that to YAML.
The assumption is that we can reuse (with a tweak or two) the application configuration parser to read this format; the semantic meaning is different (application that can be enabled vs applications on a particular node) but the contents should be the same.
Open question: New command line program, or turn flocker-changestate
into flocker-node changestate
?
from flocker.
@dwgebler and I updated your sketch including some details of how we intend to hook up the new configuration function to a flocker-reportstate
script.
We also added some proposed tests for the configuration function and for the script.
We decided that it'll be easier (for now) to create a flocker-reportstate
script rather than subcommand of flocker-node
. We can arrange it that way in the future if necessary.
Not sure if we need to write any functional tests for the new script.
Also not sure if it's worth writing some end-to-end tests ie configuration_to_yaml
> _applications_from_configuration
and asserting that the resulting applications are the same as those we supplied.
If you approve we'll continue along these lines this afternoon.
from flocker.
Thanks. Some minor points:
main
needs to write the yaml to stdout, not just return aDeferred
that fires with itsafe_dump
instead ofdump
(because why make safety the default ...)- It won't be possible to make all of the sketched tests pass. Specifically, without
Deployer
actually being able to discover mountpoint information, I don't thinktest_application_with_volume_includes_mountpoint
can work.
Otherwise seems fine. Please proceed.
from flocker.
Not sure if we need to write any functional tests for the new script.
To demonstrate setup.py
has defined it correctly, at least, yes.
Also not sure if it's worth writing some end-to-end tests ie configuration_to_yaml > _applications_from_configuration
Eh. This might not hurt but it also doesn't seem strictly necessary. Use your judgement as your proceed with the implementation, I'd say.
from flocker.
Related Issues (20)
- Can't start flocker-control - CentOS 7 HOT 1
- Error looking up volume plugin flocker: legacy plugin: plugin not found HOT 1
- Flocker tests are failing HOT 1
- How to use flocker with docker swarm mode HOT 1
- pkg_resources.DistributionNotFound: The 'eliot' distribution was not found and is required by Flocker HOT 1
- Linux mint 18.1 Install Flocker Node Service Error
- Error: flocker: plugin not found
- Flocker: Control service is not getting up
- Issue with Cloudformation Template HOT 2
- Cannnot install Flocker node on Centos7 HOT 3
- Download page is not reachable HOT 1
- HTTP Error 404: Not Found for URL https://clusterhq-archive.s3.amazonaws.com/python/Flocker-1.15.0-py2-none-any.whl HOT 2
- The New site need to be Right Url HOT 7
- Flocker Shutdown HOT 1
- flocker apt repo failed on ubuntu16.04 HOT 9
- Regarding kubernete with flocker, Is this mandate to intstall the flocker on kubernetes Nodes or can I install flocker on separate nodes from kubernete and then integrate together
- Unable to access the below URL HOT 1
- Can't install flocker-node on RHEL/CentOS 7
- FYI: referenced issue is fixed
- Flocker abandoned? HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flocker.