[iec] Add basic CentOS support (virtual only) 95/68095/5
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 10 Jun 2019 13:19:27 +0000 (15:19 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 28 Jun 2019 13:11:46 +0000 (15:11 +0200)
commit5440500624a503b3f91852cd17089aab76afe806
tree29ee9c6efe6d9879c34271c60471765099f63474
parentf50cd4f58b2971c07c1ad37dbb4ebbf044ab1dc6
[iec] Add basic CentOS support (virtual only)

- reclass: iec: CentOS compatibility changes:
  * drop `proto: static` in favor of letting the linux formula set
    the appropiate default based on target OS;
  * replace `proto: manual` with `proto: none` on RHEL systems;
  * system.file: Avoid using non-existing `shadow` group for system
    files;
  * load br_netfilter kernel module to avoid `linux.network` state
    failures;
  * disable `at`, `cron` due to incomplete defaults in
    salt-formula-linux (since we don't use them on iec nodes anyway);
- jumpserver/VCP VMs: centos: enable predictable interface names:
  * CentOS cloud image defaults to old 'eth' naming scheme;
  * add necessary kernel boot options via linux state;
  * cleanup auto-generated udev rules for old eth interface names;
- salt-formula-linux: network: RHEL: Set bridge for member interfaces
  * Find the bridge containing the interface being currently
    configured (if any) and pass it to the `network.managed` Salt call;
- deploy.sh: Add new deploy argument `-o` for specifying the operating
  system to preinstall on jumpserver and/or VCP VMs;
  * defaults to 'ubuntu1604';
  * only iec scenarios will also support 'centos' for now;
- user-data: minor tweaks for CentOS compatability:
  * use `systemctl` instead of `service` utility;
  * explicitly enable `salt-minion` service, since it defaults to
    disabled on RHEL systems;
  * explicitly call `ldconfig` to work around stale cache on RHEL,
    preventing `salt-minion` from using OpenSSL library;
- states: virtual_init: Skip non-existing sysctl options on CentOS:
  * CentOS currently uses a 3.x kernel which lacks certain sysctl
    options that were only introduced in 4.x kernels, so skip them;
- state: akraino_iec: Add centos support:
  * move iec repo to `/var/lib/akraino/iec` on both Salt Master and
    cluster nodes;
- scenario defaults: Add CentOS configuration:
  * OS-dependent configuration split;
  * CentOS base image, default packages etc.;
- AArch64 deploy requirements: Add `xz` dependency
  * CentOS AArch64 cloud image is archived using xz, install xz tools
    for decompression;
- xdf_data: Make yaml parsing OS agnostic:
  * rename `apt` to `repo` where appropiate;
  * OS-dependent configuration parsing;
- lib_jump_deploy: CentOS handling changes:
  * skip filesystem resize of cloud image for CentOS;
  * add repo handling, package intallation/removal handling for CentOS;
  * unxz base image if necessary (CentOS AArch64 cloud image);

Change-Id: Ic3538bacd53198701ff4ef77db62218eabc662e7
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
12 files changed:
ci/deploy.sh
mcp/config/scenario/defaults.yaml.j2
mcp/config/states/akraino_iec
mcp/config/states/virtual_init
mcp/patches/salt-formula-linux/0005-network-RHEL-Set-bridge-for-member-interfaces.patch [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-iec-noha/akraino/iec.yml.j2
mcp/scripts/lib_jump_deploy.sh
mcp/scripts/pharos
mcp/scripts/requirements_deb.yaml
mcp/scripts/requirements_rpm.yaml
mcp/scripts/user-data.sh.j2
mcp/scripts/xdf_data.sh.j2