Project

General

Profile

Actions

Architecture #7831

open

Simplify usage and copy of ncf directories

Architecture #7831: Simplify usage and copy of ncf directories

Added by Jonathan CLARKE almost 10 years ago. Updated almost 8 years ago.

Status:
New
Priority:
N/A
Assignee:
-
Category:
System techniques
Effort required:
Name check:
Fix check:
Regression:

Description

Currently, we use several different directories for ncf on root servers, relay servers and nodes:

  • /usr/share/ncf/tree
    • ncf is installed here on the root server, from a package
    • this directory is shared for nodes and relay servers to copy from
      • nodes and relay servers copy this directory to their local /var/rudder/ncf/common
      • relay servers copy this directory to their local /usr/share/ncf/tree (yes, that's two identical but separate copies of the same directory to relay servers)
  • /var/rudder/ncf/common
    • /usr/share/ncf/tree is copied into this directory by the agent, in update.cf so before a normal run
    • this directory is used to read the bundles in from promises.cf so during a normal run
  • /var/rudder/configuration-repository/ncf
    • the local instance of ncf is instanciated here, in particular the local configuration file ncf.conf
    • the technique editor creates and modifies techniques here
    • this directory is shared for nodes and relay servers to copy from
      • nodes and relay servers copy this directory to their local /var/rudder/ncf/local
      • relay servers copy this directory to their local /var/rudder/configuration-repository/ncf (yes, that's two identical but separate copies of the same directory to relay servers)
  • /var/rudder/ncf/local
    • /var/rudder/configuration-repository/ncf is copied into this directory by the agent, in update.cf so before a normal run
    • this directory is used to read the bundles in from promises.cf so during a normal run

We can largely simplify this.

Initial discussions showed several key points that we would like to achieve in simplifying this:
  1. Simplify the copy mechanism so that all nodes, including relay and root servers, use the same directory for each item
  2. Avoid duplication so that directories don't exist twice with identical contents on each folder
  3. Avoid delays introduced by copying from one directory to another locally before a remote copy
The initial proposal for simplification is as follows:
  • Keep /usr/share/ncf/tree as the installation directory, but don't share it any longer.
  • Copy this directory on installation (in rudder-upgrade, and possibly rudder-init) to /var/rudder/configuration-repository/ncf.d/common
  • Move /var/rudder/configuration-repository/ncf to /var/rudder/configuration-repository/ncf.d/local
  • Suppress /var/rudder/ncf/local completely, and share /var/rudder/configuration-repository/ncf.d/local instead
  • Configure both relay servers and nodes to only copy the /var/rudder/configuration-repository/ncf.d/ directory
  • Change all promises to read ncf bundles from /var/rudder/configuration-repository/ncf.d/ only

Related issues 1 (1 open0 closed)

Related to Rudder - User story #5641: Make the agent policies update a state machine with integrity checkNewActions

Updated by Jonathan CLARKE almost 10 years ago Actions #1

  • Status changed from New to In progress
  • Assignee set to Jonathan CLARKE

Updated by Benoît PECCATTE over 9 years ago Actions #2

  • Category set to System techniques

Updated by François ARMAND about 9 years ago Actions #3

  • Target version changed from 4.0.0~rc2 to 4.1.0~beta1

Updated by Vincent MEMBRÉ about 9 years ago Actions #4

  • Target version changed from 4.1.0~beta1 to 4.1.0~beta2

Updated by Vincent MEMBRÉ almost 9 years ago Actions #5

  • Target version changed from 4.1.0~beta2 to 4.1.0~beta3

Updated by Vincent MEMBRÉ almost 9 years ago Actions #6

  • Target version changed from 4.1.0~beta3 to 4.1.0~rc1

Updated by François ARMAND almost 9 years ago Actions #7

  • Status changed from In progress to New
  • Assignee deleted (Jonathan CLARKE)
  • Target version changed from 4.1.0~rc1 to 4.2.0~beta1

This was not done in 4.1, but should really be cleaned up. It may be linked (or at least interact with) #5641, so linking the two.

Updated by François ARMAND almost 9 years ago Actions #8

  • Related to User story #5641: Make the agent policies update a state machine with integrity check added

Updated by Alexis Mousset over 8 years ago Actions #9

  • Target version changed from 4.2.0~beta1 to 4.2.0~beta2

Updated by Vincent MEMBRÉ over 8 years ago Actions #10

  • Target version changed from 4.2.0~beta2 to 4.2.0~beta3

Updated by Vincent MEMBRÉ over 8 years ago Actions #11

  • Target version changed from 4.2.0~beta3 to 4.2.0~rc1

Updated by Vincent MEMBRÉ over 8 years ago Actions #12

  • Target version changed from 4.2.0~rc1 to 4.2.0~rc2

Updated by Vincent MEMBRÉ over 8 years ago Actions #13

  • Target version changed from 4.2.0~rc2 to 4.2.0

Updated by Vincent MEMBRÉ over 8 years ago Actions #14

  • Target version changed from 4.2.0 to 4.2.1

Updated by Vincent MEMBRÉ about 8 years ago Actions #15

  • Target version changed from 4.2.1 to 4.2.2

Updated by Vincent MEMBRÉ about 8 years ago Actions #16

  • Target version changed from 4.2.2 to 4.2.3

Updated by Vincent MEMBRÉ about 8 years ago Actions #17

  • Target version changed from 4.2.3 to 4.2.4

Updated by Benoît PECCATTE almost 8 years ago Actions #18

  • Target version changed from 4.2.4 to Ideas (not version specific)
Actions

Also available in: PDF Atom