Give users a way to reduce the footprint of based on langauge
This was most recently prompted by https://github.com/sensu-plugins/sensu-plugins-process-checks/issues/53 but is certainly a larger issue to be discussed.
The need:
Reduce the footprint of a sensu client and server dependencies to run checks, handler, mutators, etc. I think most people would prefer to have per app per language specific repos.
The motivating context:
This is mostly relevant to containerized workloads where you can have very small footprints and wanting to keep things as small as possible is a design principle.
The argument for splitting them out:
- more control
- reduce footprint
- logical separation
- better dependency management
The argument to leave as is:
- even more things to manage with a team of maintainers that can not handle the extra overhead
- the runtime of ruby is still included with sensu so there is no real gain to removing the requirement of ruby runtime requirement. Removing other runtimes are of value but are not a requirement and you can choose to use what you want.
- in the context of above short of removing the runtime the amount of space saved is for all but the googles, amazons, msfts, etc of the world shaving 10kb here and there from a container is not worth the effort
- the next generation of sensu the asset management will change drastically, it might be prudent to see what that looks like before making a decision.
- the next generation of sensu will no longer require the ruby runtime, that seems like a good time/place to start looking at making the same change with community plugins.
- harder to find all the goodies, more places to look.
The solutions:
- split out repos based on languages for each "app" and lanaguage
- optionally remove at or post install time any non needed scripts based on language.
I agree that this is going to change drastically soon enough to not warrant significant change. Accepting a PR for sensu-plugins/sensu-plugins-process-checks#53 addresses the immediate need.