Project

General

Profile

Actions

Architecture #7831

open

Simplify usage and copy of ncf directories

Added by Jonathan CLARKE about 8 years ago. Updated about 6 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
Actions #1

Updated by Jonathan CLARKE about 8 years ago

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

Updated by Benoît PECCATTE almost 8 years ago

  • Category set to System techniques
Actions #3

Updated by François ARMAND over 7 years ago

  • Target version changed from 4.0.0~rc2 to 4.1.0~beta1
Actions #4

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 4.1.0~beta1 to 4.1.0~beta2
Actions #5

Updated by Vincent MEMBRÉ about 7 years ago

  • Target version changed from 4.1.0~beta2 to 4.1.0~beta3
Actions #6

Updated by Vincent MEMBRÉ about 7 years ago

  • Target version changed from 4.1.0~beta3 to 4.1.0~rc1
Actions #7

Updated by François ARMAND about 7 years ago

  • 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.

Actions #8

Updated by François ARMAND about 7 years ago

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

Updated by Alexis Mousset almost 7 years ago

  • Target version changed from 4.2.0~beta1 to 4.2.0~beta2
Actions #10

Updated by Vincent MEMBRÉ almost 7 years ago

  • Target version changed from 4.2.0~beta2 to 4.2.0~beta3
Actions #11

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.0~beta3 to 4.2.0~rc1
Actions #12

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.0~rc1 to 4.2.0~rc2
Actions #13

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.0~rc2 to 4.2.0
Actions #14

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.0 to 4.2.1
Actions #15

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.1 to 4.2.2
Actions #16

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.2 to 4.2.3
Actions #17

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.3 to 4.2.4
Actions #18

Updated by Benoît PECCATTE about 6 years ago

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

Also available in: Atom PDF