Age | Commit message (Collapse) | Author | Files | Lines |
|
wait_for function should be able to also check for minions that did
not return or not respond, in addition to the return code.
To keep it backwards compatible, condition the new check on the max
attempt number being specified in decimal format (e.g. '10.0' unlike
old '10').
Change-Id: If2512cf9121cdd795638efe7362ef0485d4e8d91
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 3f559299c232bbb7639d02243c95d6256cdf94d4)
|
|
salt-minion is now pre-provisioned inside the image using qemu-nbd.
Revert "lib.sh: Limit envsubst to certain variables"
This reverts commit 3a76d07dbd409b781abdb8520f55a1b20edf07db.
Change-Id: Icceb8bcf439e28ab01c7731c3602c1113290454d
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit fac41836e91dd56696c3a435bfdbc7adf53899e2)
|
|
Fingerprint and re-use base image artifacts.
Change-Id: Ic7a73c04e27d25addd50e4e9880619a0028956d3
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 1815bdaf0c1765cc1fcb48031f8291409861b0b2)
|
|
JIRA: FUEL-323
Change-Id: I0dcbcfbedc7e9ef013ca50dcc08f804323f91701
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 3aa172fb1659925a837b432649793f9f1f46cca9)
|
|
Change-Id: Ia514418d2aae1b4f7e752d4610fa6c9829c67e51
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commmit 84f58189f269be6633e0c8897d5624d3dfaaa650)
|
|
RHEL distros do not maintain nbd, so add a best-effort function
to build it on the fly.
Change-Id: Ie0419f0fed8a0b12f6b878b3093d6ca34f72d140
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commmit 924d481ac84e8fad9bf1132e1cff18967887017e)
|
|
Since Mirantis prebuilt image comes with salt-minion 2016.3 instead
of 2016.11 and upgrading it leads to a hard to break catch-22, use
the Ubuntu cloud archive image we already download for FN VMs and
pre-install:
- a newer kernel (hwe-edge);
- salt-minion (2016.11);
This also implicitly aligns the image handling on AArch64 and x86_64.
Change-Id: I86d1c777449d37bdd0348936a598e3ffe9d265af
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit f37103b4d60f057f653e0e5e8b7c6c3023a95b2d)
|
|
Instead of hardcoding the packages to install on the jumphost at
deploy time in `ci/deploy.sh`, move the requirements list to a
dedicated yaml file, so it is decoupled from actual code.
While at it, add missing deps:
- ipxe-qemu (AArch64 Ubuntu only);
Change-Id: I9ee5c0796b70f9d29427d608b6415333c8841e1e
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit b57cd65121f61114432b07c04106fc4b8609440e)
|
|
qemu-nbd currently available in CentOS 7 does not add partition
mappings automatically for NBD devices, so add explicit `kpartx`
calls.
Change-Id: Ifa79c89b82024602b782c449dbf4de10899e03b5
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 5c890d60fff57b624358f4d4be6865862f4f8415)
|
|
While at it, rename apt repo in foundation node user-data template
from "salt" to "saltstack", to align with reclass model naming.
Change-Id: I5b216492349ae187b568884b1ab4046c52b1c6b2
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit feb877785544a31a18ae2f0ee2900a82e7ac4337)
|
|
Extend <lib.sh> and its invocation from <ci.deploy.sh> with
support for modifying foundation node VMs base image prior to
using it with:
- additional APT GPG keys;
- additional APT repos;
- packages to pre-install;
- packages to pre-remove;
- (non-configurable) cloud init datasource via NoCloud only,
so VCP VMs won't wait for metadata service;
While at it, re-use the resulting image as a base for another
round of pre-patching (same operations as above are supported)
to provide a base image for VCP VMs.
Add AArch64-specific configuration based on new mechanisms:
- pre-install linux-image-generic-hwe-16.04-edge (and headers)
for foundation node and VCP (common) image (also requires new
repo and its key);
- pre-install cloud-init for VCP image (it should already be
installed, but script needs non-empty config for VCP to create
the VCP image and transfer it over to Salt Master);
NOTE: cloud-init is required on VCP VMs for DHCP on 1st iface.
JIRA: FUEL-309
Change-Id: I7dcaf0ffd9c57009133c6d339496ec831ab14375
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 6ead32f737f39e3d82e1484a9d31f07ed2daeadb)
|
|
Use PXE/admin network for salt traffic from/to all minions
except cfg01, mas01.
This allows us to drop the route to admin net from cfg01.
Change-Id: Ic2526f1ff77afe5d92ced900971f4c8f78d2d8a2
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit d4ab072aeab143ce72e4b81122d4580915a4ad1a)
|
|
- reduce range to silence bogus MaaS warning about address exhaustion;
- regenerate pod_config.yml.example to reflect the changes;
- drop `opnfv_infra_maas_pxe_address` (duplicate of
`opnfv_infra_maas_node01_deploy_address`);
- add `opnfv_infra_config_pxe_address` for future usage;
JIRA: FUEL-316
Change-Id: I981fc8c7c550c2917b07dd5f2c83896def013fa7
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 215a37d55356333f9fd0a96118c9a00d588eca62)
|
|
Also, retry applying linux high state up to twice, due to rare
spurious failures with 'No reponse' status.
Change-Id: Ic7839a5c9501673cb127412136afb91e05f87a7e
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commmit 4509936347b429fb36a27844a63d808f057fd61e)
|
|
- s/opnfv_maas_pxe_/opnfv_infra_maas_pxe_/g to align with other vars;
- patches: pharos: Add MaaS PXE network to installer adapter;
- runtime.yml{,.template}: move to installer adapter, update
pod_config.yml example;
- drop MAAS_PXE_NETWORK global env var, now read strictly from PDF;
JIRA: FUEL-313
Change-Id: I46d7510bd53fba7890c411d36bc28fd6ff6f3648
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 15e982f0d00dbcc72be2f5b25dab34b3f3efd912)
|
|
Running `ci/deploy.sh -EE` should also perform an UEFI boot option
cleanup, otherwise we risk booting the previously installed OS.
While at it, reduce delay between nodes removal and fix a rare failure
for `-EE` when no nodes are defined in MaaS.
Change-Id: I789ffd3e22545921216f7d5ee3509c76354542eb
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 15173a83dba08729e62da277b9165677323675d8)
|
|
'nightly' repo dist from apt-mk is broken, so switch to '2017.12'.
Change-Id: Ie12dfc2a499910b8b98a63886ba16044e66435f5
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
All our staged patches for Pharos repo are now upstream, so bump
the git submodule and remove the patch files.
Change-Id: I0d68eb3bdd9abfa286c3640acc1f13ce6100801d
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 33d945e3045f68ea7cbd2f1b8d01618cb3fed23c)
|
|
Most Fuel PODs do not use encrypted PDFs, so bump Pharos git
submodule to include updated `generate_config.py` to silently
skip decryption in case eyaml is not installed.
Change-Id: I845a32c7001123a93e38197e0daf53d18c797aed
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 8c15c3675d57bfaed9c6923ed8adfdb6879fea49)
|
|
|
|
While at it, fix another small issue where a variable
(parameters__param_opnfv_maas_pxe_address) was used without being
populated (defined in 'runtime.yml', which is not read using
`parse_yaml`, like the scenario yml or the PDF expanded class,
pod_config.yml).
JIRA: FUEL-313
Change-Id: Iee88601d5420f55572bf90c8cf330afbedfb2e21
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 9136aef95f77a1f26175929caedfe6ae662bbbd8)
|
|
Also, remove redundant pharos patch that adds prx mgmt IPs:
- "Re-assign mgmt network to proxy nodes"
as those values are set already (to different values!) by patch:
+ "extend public gateway support"
While at it, `make patches-export` should clean the patch dir first.
Change-Id: Ice106e5d48c7b4cd90ffc6af7441199034d4f546
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit fbea9fae7a16f1375f7413ccd46146b015fc87ff)
|
|
cfg01, mas01 DHCP leases in mcpcontrol virtual network should be
persistent (if cfg01 IP changes, minions can't find Salt Master).
Change-Id: I497207ebe1537af94fd92de12491664d17ad3144
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit a1c323835f808e6d729c645c8df75a43e51851fe)
|
|
CentOS 7.4 provides git 1.8.3, while `git -C` support was introduced
in 1.8.5, so rework <salt.sh> to not rely on this parameter.
Change-Id: Ied88466b2b3d91a3317922fa08f60afe934358a0
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 0adbe359a0e448e0a8007b0041890e33a612a4dc)
|
|
NOTE: In order to undefine VCP VMs with NVRAM (e.g. AArch64 VMs
using AAVMF), an additional parameter should be passed to libvirt
by Salt virt core module (equivalent to `virsh undefine --nvram`).
While at it, pass CI_DEBUG, ERASE_ENV enviroment variables to
state execution, and stop force-applying patches.
Also refactor the rsync between foundation node and Salt master,
so the whole git repo is copied as </root/opnfv>, and <root/fuel>
becomes a link to it; useful for Armband, where 'fuel' is a git
submodule. Fix .git paths after rsync, so git submodules work as
expected in cfg01 repos.
JIRA: FUEL-307
Change-Id: Ic62f03e786581c019168c50ccc50107238021d7f
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 77942178b3aff6adc83b5f83645acfff467fa76a)
|
|
Previous commit pinned the salt-formula-package by installing a
specific version after OPNFV-specific patches were applied by
`patch.sh`. To prevent patch bypass, move the pin to reclass model.
While at it, also move salt-formula-neutron pinning to reclass to
bypass wrong minimum length of 2 for version-pinned formula pkgs.
Change-Id: I35c2773c130d79ec919685cd771311d6c11e11a8
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 1058c7ee35d64f38d978db2b3f840afca2facdef)
|
|
Recent upstream changes broke MaaS machine status parsing. Pin
the formula to the previous version until upstream provides a
fixed package or a repo snapshot baseline.
Change-Id: I26ebd60f40812ae47da0ca28d19c9fdcac7920da
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit c4b87dbc189e2a2f4d586d41ef5db2166c42231d)
|
|
Some UEFI firmwares insist on scanning removable drives, even when
boot entries were deleted from UEFI boot list (board flash).
To work around this, remove contents of </boot/efi/*>, so scanning
won't identify any valid EFI binaries.
Another option would be erasing partition tables, but identifying
the underlying disk(s) is more complicated, especially when using
LVM/RAID etc.
Change-Id: I9949b99b139b1642e3bd8f04de3bd5ef74d1ecc5
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit a0a93056d5d5c52b739a2bc8fe0e2aaabb962f36)
|
|
cloudify vnf requires public enpoints to be available from instance
with manager, so connect nodes w/ nginx to routed public network.
JIRA: FUEL-286
Change-Id: Id0caa699519b9b46dad51deac6955afe6a0050de
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 0861ea0799114d9c59499f2c52a9c7a79fb1bbb7)
|
|
On EFI-enabled systems, grub-install from grub-efi-* package
installs a boot entry named "ubuntu".
MaaS relies on IPMI to set boot order to PXE first; however
on systems with buggy firmware or without full IPMI support,
that fails, leading to booting Ubuntu from hard disk instead.
Work around this by clearing any previous Ubuntu boot entry
from board flash, before starting a new baremetal deploy.
NOTE: This only runs against nodes that are online from a
previous deploy.
Closes: ARMBAND-47
Change-Id: I1c4ece09e42845ce2a1b7119ec69e46e5ca12376
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 4e2c736cce578d1073dab0e0960b524b1dcc663a)
|
|
|
|
JIRA: FUEL-296
Change-Id: Ide9f9333fe9b44ff6b78678064f8e67f05aabd42
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit fa62907da62d0b8ae9e733a9729941065ceedf4d)
|
|
Drop vgabios dependency by switching video from VGA to virtio for
all VMs spawned on the jumpserver.
NOTE: This requires virtualization packages on the jumpserver to be
up to date (e.g. libvirt, QEMU).
JIRA: ARMBAND-306
Change-Id: I73913e1ae8584f4e73b92994f78f7ec363cba3ec
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit d058675b9a4274336ae3497914d6651f653ccde0)
|
|
'wait_for' bash function is nested in another 'wait_for' call in some
places, which leads to inner calls interfering with outer calls by
overriding the locally scoped variables, including the 'attempt'
internal counter. In some cases, the outer 'wait_for' would exit
after a single attempt.
Fix that by running all contents of `wait_for` inside a subshell,
which inherits outer calls variables, but does not override them
when the inner call is finished.
Change-Id: I450eda3d023af2380c61ee930071fbfc393a5645
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 2776ab9d850e764a92c30c858befc48e474f6dd4)
|
|
Horizon service definition hardcodes the API version to v3, and
also overrides the value in our reclass model during interpolation.
Adjust the default to '2'.
While at it, move 'reclass' patching later in `salt.sh`, after
the salt formula packages are installed.
JIRA: FUEL-284
Change-Id: I6f63b4d00ae85c82b076b3efef857e7cc4f3fd35
Signed-off-by: Ting Wu <ting.wu@enea.com>
Signed-off-by: Junaid Ali <junaidali.yahya@gmail.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 68ff467c4c2d9d0f201e2912c97616402f8109a3)
|
|
|
|
Change-Id: Ibb1e78563043298dffdb4b7e9091d3f582e189fc
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 882220ff185d7bcc15e6c5f75edaee454c933956)
|
|
linux.network state is expected to be down until node reboot
to activate required hugepages therefore return true in any case.
Change-Id: I61deac12b9ac212c5f79cdcce30cda8e5d24413b
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 044f49fd195526d8c00967fb9a0b6b1ab0a36c14)
|
|
While applying scenario states, break on error, and retry failed
state up to 5 times. Apply the same behavior for `salt.sh`.
Add new deploy parameter, '-D', backed up by 'CI_DEBUG' env var,
which gates deploy sh scripts logging (set -x).
Also extend '-f' deploy parameter, allowing it to be specified
more than once; the first occurence will skip infra VM creation,
but still sync reclass & other config from local repo, while a
second occurence will also disable config sync.
To prevent glusterfs client state from failing due to non-existent
nova user/group, move it after nova:compute's nova state is applied.
Change-Id: I234e126e16be0e133d878957bd88fed946955de8
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 23f9ef727310a8ef449372313785241df6557559)
|
|
While at it, compact 'set' into bash shebang where possible and
add `make patches-copyright` target to simplify adding patch
license headers.
Change-Id: I0c841de72e5709e5eef915a52c5ec4a7fc0f7c37
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 644e5fdfa2f49b988a5150e2a4eefc12daecd845)
|
|
While at it, fix some shellcheck warnings, and s/fgrep/grep -F/g.
Change-Id: I093b7b4c196731b1ecc0c27a4111955b2e412762
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 089585ad5370109d4c2a476b94b0017153d7713d)
|
|
We should eventually also support baremetal deploys without a
virtualized control plane (VCP), so decouple MaaS provisioning
from VCP provisioning.
While at it, move "wait_for" bash function from maas state to
common library file, lib.sh.
Change-Id: I32c33135655cb6aceae901a5f92b51265a8c84b4
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit ebd7067904b36ae32566da63e433365948a1f973)
|
|
Patches that fail to apply are silently skipped. Since retrying is
not possible, deploy moves on, making the problem hard to observe.
Change-Id: I3fe01cef6b245de53767a660b9b4fdfae0d5d0ff
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit bd0259e7bb5f045a1ba7958d79039848d062aad1)
|
|
Fix sourcing of globals.sh from log.sh when running with a CWD
different from scripts dir.
Change-Id: I680531022d30b57f650a612493f40fdb3e073dc2
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 9ac845bdfb5c4ec7fd8c0b0ba1bc8fec867be5aa)
|
|
log.sh should also work as standalone script, so factor out
global variables from <ci/deploy.sh> into <mcp/scripts/globals.sh>,
which should be sourced by log.sh when required variables are not set.
Change-Id: I5a5bb85ee5835f567d6910b11c137d95e2147714
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 45b22fab76f84cdbf71a6693dc42f24edaa4334e)
|
|
- minor refactor of runtime templates parsing to allow var expansion;
- parse <pod_config.yml> into shell vars, match dynamically networks
from PDF to IP addresses on bridges of current jumphost;
- keep old '-B' parameter in <ci/deploy.sh>, use it for providing
fallback values in case there's no bridge name specified via IDF
and no IP on the jumphost for one or more of the PDF networks;
- re-enable dry-run to ease testing of the above;
- add sample 'idf-pod1.yaml' to <mcp/config/labs/local>;
The new behavior will try to determine the jump host bridge names:
1. Based on IDF mapping, if available
2. Based on PDF network matching with IP addrs on jumphost;
3. Fallback to values passed via '-B';
4. Fallback to default values hardcoded in the deploy script;
Later, we will drop MaaS network env vars in favor of PDF vars,
once the PDF template is generating them.
Change-Id: If9cd65d310c02965b2e2bfa06a0d7e0f97f1dd48
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 8ec927497b7ee0fd3b7346e957878173b080ef6a)
|
|
Change-Id: I8dba3676adc8cc49731d91db7cc028a9c5b1627d
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 952b5cc60febe14df428f92280448327572d5c24)
|
|
Recent changes to salt-formula-neutron, more precisely [1], broke the
compatibility with our current reclass model [2], which was not
updated to reflect the formula change.
Instead of locally patching the reclass model, install the latest
compatible version of the Neutron formula:
- 2016.12.1+201709251458.f0607d9-1xenial1;
[1] https://github.com/salt-formulas/salt-formula-neutron/commit/
79ffa26858d682f404984175dc1ab93863a149ad
[2] https://github.com/Mirantis/reclass-system-salt-model
Change-Id: Ia1bc9de9a1543f7888688be76ff3513e6b4f062b
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit f2b1d6cfe31a451b0608b9a2aadead2dcf4cfabb)
|
|
Change-Id: I658c1dfeb369adf74038abd0ce1b593d40303527
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 5ad2e311bbc1326493386aeee4d87a9091337adf)
|
|
|