Architecture #15752
closedMerge inventory endpoint and rudder webapps
Description
There is no reason for them to remain separated in 5.1: their packages are merged, we never manage one without the other, there is no performance optimisation, etc.
Moreover, we don't act at all as if they were separated, and so it's creating more problem than it solves:
- add ~45Mo to the package,
- create a second jetty war for nothing,
- double needed connection to LDAP
- forbid having triggers for new inventories (node cache, etc)
On the other hand, merging the two brings several short-, mid-, and long-term:
- centralized management of LDAP connection (so better overall configuration),
- possibility to manage node caches directly with inventories (less ldap i/o, better temporalisation of generation),
- simpler rudder config (only one war, only one config file for it, no more internal API for inventories...)
- possibility to evolve towards a non app server+war (ie: a fully contained "app" with jetty embeded, or even the jvm/graalvm embeded)
- simpler system techniques (remove send clean in the future...)
So, we propose the following scheme:
- 5.0, starting now
We advertise that the following API are deprecated and will be removed in 5.1:
- /endoint/upload
- /endpoint/status
- /endpoint/info
- /endpoint/watchers/[start, stop, restart]
Make watchers more robust: trigger a restart every couple of hours, forcing a full rescan of inventory directories.
- 5.1
Webapp:
- remove system variable CMDBENDPOINT
API:
- remove /endpoint/status
(its feature is replaced by the existing /rudder/api/latest/info/status
)
- remove /endpoint/upload
: inventories are only parsed throught watchers. Perhaps we should keep that api in a secret non documented place during 5.1, to be able to let people use it in case we forget some use cases.
- move /endpoint/info
to rudder public api: rudder/api/latest/inventories/info
- move /endpoint/watchers/...
to rudder public api: rudder/api/latest/inventories/watchers/...
Technique systems:
- remove send clean on root server,
- do not edit inventory-web.properties
Packaging:
- remove /opt/rudder/share/webapp.[war, xml]
- migration script to take the necessary properties from inventory-web.properties to rudder-web.properties.
Updated by François ARMAND about 5 years ago
- Status changed from New to In progress
Updated by François ARMAND about 5 years ago
- Status changed from In progress to Pending technical review
- Assignee changed from François ARMAND to Vincent MEMBRÉ
- Pull Request set to https://github.com/Normation/rudder/pull/2471
Updated by François ARMAND about 5 years ago
- Status changed from Pending technical review to Pending release
Applied in changeset rudder|afb65e918cde7ed4506070ed91b0bdd51f12446b.
Updated by Vincent MEMBRÉ about 5 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 6.0.0~beta1 which was released today.