Project

General

Profile

Actions

Architecture #14931

open

Always versionned all configuration objects in Git

Added by François ARMAND about 3 years ago. Updated 3 months ago.

Status:
In progress
Priority:
N/A
Category:
Web - Config management
Target version:
Effort required:

Description

We want to add auto versionning of ALL rudder objects which have a role in the configuration applied to node.

We have two "level" of objects related to configuration (and some objects are in the middle): "managed objects", which are totally under Rudder control (they are pure rudder concepts - typically, "directives"), and "extrinsic resources", which have an impact on final applied configuration, but are not configuration per se (typically: ncf library version ; node inventories).

The managed objects are:

- Rules
- Global Parameters
- Directives
- Techniques from Rudder Lib
- Techniques created with techniques editor (We need to add a “resource” part in them for config files, templates, etc whose version is linked to technique one.
- Groups (the group definition, but the group node list is extrinsic)
- Rudder top-level (ie rudder git minus other objects)
- Node parameters and some properties

"Extrinsic" dependencies are:

- Ncf library version,
- Rudder version,
- Server on which Rudder is installed flavor, version, or parameters,
- Rudder settings,
- Files in unsupervised directories,
- Some nodes properties,
- List of nodes in groups.

Some of these objects are already saved in git (directives, groups, ncf, parameters, ruleCategories, rules, techniques).
We need add the other ones, included some way to track changes in the extrinsic resources.

An other axe of change is to make everything-git-related behave in the same way. Today, techniques from the technique library have a "technique library version". This does make any sense in that new way of doing thing: HEAD is always current version appart if you specifilically say otherwise.

That means that we will also need to have a new "ID" for these objects with the commitid (defaulting to "master:HEAD")

The first step will be to make the git part of Rudder mandatory. This comes with a caveat: we still need to have a way to synchronize several git between rudder master / replica. The problematic things are "extrinsic resources", which need to be updatable but not put in git.
A first step (bis) will be to remove the "technique version" logic and always use last one. Becarefull: that need to keep the "observation" part where we can trigger a policy generation on change.

After that, we will be able to clean much of the rudder properties about Git in /opt/rudder/etc/rudder-web.properties.

The second step is to add missing serialisation of things.

The third step will be to normalize generation trigger so that any change in git trigger a policy generation. At that point, we will be able to always log what commitid is used for the generation.


Subtasks 1 (0 open1 closed)

Architecture #18302: Make possible to give a revision for directives in rule and get correct technique filesReleasedNicolas CHARLESActions

Related issues 3 (1 open2 closed)

Related to Rudder - Bug #19869: Persist revisions of node inventories in fact-repositoryReleasedVincent MEMBRÉActions
Related to Rudder - Architecture #20081: Add revision to rule ReleasedVincent MEMBRÉActions
Related to Rudder - Architecture #20229: Don't historize names of nodes, rules & groups in the databasePending releaseFrançois ARMANDActions
Actions #1

Updated by Vincent MEMBRÉ over 2 years ago

  • Target version changed from 6.0.0~beta1 to 6.0.0
Actions #2

Updated by Alexis Mousset over 2 years ago

  • Target version changed from 6.0.0 to 6.0.1
Actions #3

Updated by Vincent MEMBRÉ over 2 years ago

  • Target version changed from 6.0.1 to 6.0.2
Actions #4

Updated by Vincent MEMBRÉ over 2 years ago

  • Target version changed from 6.0.2 to 6.0.3
Actions #5

Updated by Vincent MEMBRÉ over 2 years ago

  • Target version changed from 6.0.3 to 6.0.4
Actions #6

Updated by Vincent MEMBRÉ over 2 years ago

  • Target version changed from 6.0.4 to 6.0.5
Actions #7

Updated by Vincent MEMBRÉ about 2 years ago

  • Target version changed from 6.0.5 to 6.0.6
Actions #8

Updated by Benoît PECCATTE about 2 years ago

  • Target version changed from 6.0.6 to 6.2.0~beta1
Actions #10

Updated by Vincent MEMBRÉ over 1 year ago

  • Target version changed from 6.2.0~beta1 to 6.2.0~rc1
Actions #11

Updated by François ARMAND over 1 year ago

  • Target version changed from 6.2.0~rc1 to 7.0.0~beta1
Actions #12

Updated by Vincent MEMBRÉ 10 months ago

  • Target version changed from 7.0.0~beta1 to 7.0.0~beta2
Actions #13

Updated by Vincent MEMBRÉ 8 months ago

  • Target version changed from 7.0.0~beta2 to 7.0.0~beta3
Actions #14

Updated by François ARMAND 8 months ago

  • Related to Bug #19869: Persist revisions of node inventories in fact-repository added
Actions #15

Updated by François ARMAND 8 months ago

Actions #16

Updated by Alexis Mousset 8 months ago

  • Target version changed from 7.0.0~beta3 to 7.1.0~beta1
Actions #17

Updated by François ARMAND 8 months ago

  • Related to Architecture #20229: Don't historize names of nodes, rules & groups in the database added
Actions #18

Updated by Vincent MEMBRÉ 4 months ago

  • Target version changed from 7.1.0~beta1 to 7.1.0~beta2
Actions #19

Updated by Vincent MEMBRÉ 3 months ago

  • Target version changed from 7.1.0~beta2 to 7.1.0~rc1
Actions #20

Updated by Alexis Mousset 3 months ago

  • Target version changed from 7.1.0~rc1 to 7.2.0~alpha1
Actions

Also available in: Atom PDF