Project

General

Profile

Actions

Architecture #15752

closed

Merge inventory endpoint and rudder webapps

Added by François ARMAND over 4 years ago. Updated over 4 years ago.

Status:
Released
Priority:
N/A
Category:
Web - Nodes & inventories
Target version:
Effort required:
Name check:
To do
Fix check:
To do
Regression:

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.


Subtasks 6 (0 open6 closed)

Architecture #15756: Merge inventory endpoint and rudder webapps support in system techniqueReleasedNicolas CHARLESActions
Architecture #15824: still a reference to send_clean in distributePolicy system techniqueReleasedAlexis MoussetActions
Architecture #15759: Merge inventory endpoint and rudder webapps in packagingReleasedFélix DALLIDETActions
Bug #15799: ldap-inventory source has moved since the merge into rudder-webappReleasedVincent MEMBRÉActions
Architecture #15765: Merge inventory endpoint configuration file into rudder-web.propertiesReleasedAlexis MoussetActions
User story #15955: Document package mergeReleasedAlexis MoussetActions
Actions

Also available in: Atom PDF