Skip to content
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

move plugins into the gem #30

Open
ripienaar opened this issue Aug 7, 2019 · 1 comment
Open

move plugins into the gem #30

ripienaar opened this issue Aug 7, 2019 · 1 comment
Labels
enhancement New feature or request

Comments

@ripienaar
Copy link
Member

ripienaar commented Aug 7, 2019

At present the method for installing the core plugins is a bit annoying - it makes many many file resources. I think this model has merit for user generated plugins but for the core ones we can do better.

I propose that during the building of the gem we effectively vendor the core plugins from https://github.com/choria-plugins/ and https://github.com/choria-io/mcollective-choria into the gem, the role of the puppet manifest per plugin would then be to deliver dependencies, configuration and to activate a particular plugin.

For this to make sense we have to switch these plugins to disabled by default unless activated and then by enabling the plugin on choria installs mainly they would write a configuration that activates the plugin and other settings needed.

We should also consult the activated state when loading DDLs - we shouldnt say load the shell agent DDL if the shell client is not enabled. In the past this would not be a problem because the DDL just wouldnt be there, now it would be there but we need to know to skip it.

This would kill a few 100 file resources on a typical install.

So to actually get this done we should extend the mcollective::module_plugin as below:

  • specifically activate every plugin for server side and client side, we might need a new config property since there's no client activate property now
  • Then vendored plugins basically just need to generate empty file lists since their files are already in core

No doubt there are more things but this should be the bulk of it and minimise changes.

In this code base we'd need to at least:

  • Look for the client activate property when loading DDLs
  • Potentially deactivate all plugins by default but this is a big change

We'll start with the service and the core choria plugin only when we go down this route.

@ripienaar
Copy link
Member Author

Current code results in yaml serialiser being used as the documented config method to set serializer is somehow ignored.

ripienaar added a commit to ripienaar/mcorpc-ruby-support that referenced this issue Sep 18, 2019
…hers

Retires all the other packaging methods in favour of the aio module
one which is being renamed to forge and used as default
ripienaar added a commit to ripienaar/mcorpc-ruby-support that referenced this issue Sep 18, 2019
…hers

Retires all the other packaging methods in favour of the aio module
one which is being renamed to forge and used as default
ripienaar added a commit that referenced this issue Sep 18, 2019
(#30) move the aiomodule package into this module, retire others
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant