-
Notifications
You must be signed in to change notification settings - Fork 31
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
Reconcile use case #2072
Comments
For that purpose you don’t need choria to support it. Just write a agent of your own that you use choria to access. The linked feature is about how choria finds plugins not really about end user behaviours. Choria itself doesn’t expose any real features over RPC - it’s purpose is to allow you to extend it for your exact use cases. |
ok thanks for quick response. https://github.com/choria-plugins are all ruby. so this is where i would put logic for reconcilliation. sorry but i am not a Puppet user, so asking too many questions. |
Yes you can extend them using ruby see about agents and clients here https://choria.io/docs/development/index.html you can also extend it with go binaries and the “external” kind of plugin. There is also a python one linked to from the repo below and if you want to support any other language it’s also easy |
thanks - i like the idea of using go, being a golang coder. https://github.com/choria-io/go-external looks like a possibility. https://choria.io/docs/development/mcorpc/goclients/index.html i assume is the docs that are reflecting that repo ? you made a nice video too: https://www.youtube.com/watch?v=oVYAWePAHow I have not read it all but from my brief look, it works via golang shared objects compilation to make a DLL or SO that Choria can then call ? |
No go shared plugins are awful. There is a little protocol for how to read the request and how to get the reply and choria just spawns the binary of the plugin on demand. So you can implement a agent in any language (though we do support compiling some in to the binary, you don’t want those). The client is how you interact with it over the network and there it can generate a go client for you from the service spec (we call them DDL but it’s like schema of the rpc service) |
Ok thanks for all that.. https://github.com/ripienaar/choria-compose looks like a good starting place to get the hang of it... Will have to spend a fair bit of time learning the ropes i think... |
hey @ripienaar
I was wondering if choria can help with reconciliation ?
I saw #2021, which seems to only be managing the agent versions.
What i am thinking about if for example where you have a config file that you push to git and git CI runs, and then you want to tell X number of servers ( via the agent ) to reflect what the config delta is.
I use the word delta because i am thinking like with Terraform where you want to do compare WANTED with ACTUAL to work out the Change set, and then that change set is used by the agents to do whatever is described in that changeset.
The text was updated successfully, but these errors were encountered: