Project

General

Profile

Architecture #15752

Merge inventory endpoint and rudder webapps

Added by François ARMAND 2 months ago. Updated 15 days ago.

Status:
Released
Priority:
N/A
Category:
Web - Nodes & inventories
Target version:
Effort required:

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

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

Associated revisions

Revision afb65e91 (diff)
Added by François ARMAND about 2 months ago

Fixes #15752: Merge inventory endpoint and rudder webapps

History

#1

Updated by François ARMAND 2 months ago

  • Status changed from New to In progress
#2

Updated by François ARMAND 2 months 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
#3

Updated by François ARMAND 2 months ago

  • Description updated (diff)
#4

Updated by François ARMAND 2 months ago

  • Description updated (diff)
#5

Updated by François ARMAND about 2 months ago

  • Status changed from Pending technical review to Pending release
#6

Updated by Vincent MEMBRÉ 15 days ago

  • Status changed from Pending release to Released

This bug has been fixed in Rudder 6.0.0~beta1 which was released today.

Also available in: Atom PDF