Age | Commit message (Collapse) | Author | Files | Lines |
|
'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)
|
|
|
|
- add new git submodule pointing to OPNFV Pharos;
- use Pharos 'generate_config.sh' to parse the PDF using the Fuel
installer adapter and generate <pod_config.yml> dynamically;
- build <pod_config.yml> outside current git repo and sync separately
to prevent sensitive data leak;
- add <pod1.yaml> PDF sample based on LF-POD2, should be used with
'ci/deploy.sh -l local -p pod1';
Change-Id: I4e1b95f180bcd5ade5d86f516628eb8edbe64b1c
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 36e4b9754dedef27637c09b510829f686bd469e4)
|
|
If a linux bridge already exists on the jump host, with the same
name as the value passed via `-B` or the default, use it instead
of trying to create a virsh network.
Change-Id: If7f0753ec366d429ff101c2b37dd68f895903404
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 96cccf2b507949978c1b37c65961a5182ffbbbfd)
|
|
Change-Id: I53ac0be519df1bb39a6a56e236285fce95228bd4
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit c15004f402555df4886b18bba9a837288c6ef250)
|
|
Change-Id: Iface28ab770beee00374afb902ef4f9c983538f5
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 597e4b55f57001ead8e90f30e2e3211c7d705ca8)
|
|
* [baremetal] add memory to contollers & salt master
* tune up sysctl vm.dirty* for compute nodes
* upgrade packages to get the latest versions
(https://bugs.launchpad.net/cinder/+bug/1641312)
Change-Id: I9ad22206f2f3f11e1da3f93c7a0931c592adf1cf
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
(cherry picked from commit 87310fb8edfe49b9621fe4410ae52d989072e3c5)
|
|
Configure nfs shared storage for nova instances
to support live migration feature.
Change-Id: I777d5725e45d03325507d3ecc8dd59a28cbc188f
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
|
|
|
|
mcpcontrol virsh network, as well as MaaS PXE network are installer
specific, and not POD specific.
Therefore, these should be easily parametrized without the PDF,
using only installer inputs (e.g. env vars passed via Jenkins).
- add new <all-mcp-ocata-common.opnfv.runtime> reclass class;
- parametrize at runtime new reclass class based on global vars;
- factor out MaaS deploy address / config using new mechanism;
- parametrize at runtime virsh network definitions based on template;
- add new "maas.pxe_route" sls for configuring routing on cfg01;
- replace env vars with the new sls in "maas" state;
NOTE: baremetal parametrization will be handled later.
Change-Id: Ifd61143d818fb088b3f4395388ba769bbc49156e
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
The <salt-master-init.sh> script default to using stable 2016.3
version of Salt via BOOTSTRAP_SALTSTACK_OPTS.
However, since we manually add the 2016.11 repos beforehand, the
correct version (2016.11) ends up being installed.
This change merely drops one uselss repo from salt master apt sources.
While at it, use HTTPS for repo.saltstack.com DEB repository.
Since we already add the repo to apt sources via <user-data.sh>,
pass "-r" on all architectures, skipping repo (re)addition.
Change-Id: I7fbe0b646b2f2a8e952718a61ff8c180116f8f27
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Use INSTALLER_IP Jenkins param instead of SALT_MASTER_IP, allowing
us to drop SALT_MASTER_IP completely from releng.
mcpcontrol IP changes:
- 192.168.10.100 becomes 10.20.0.2 (align with legacy Fuel master);
- 192.168.10.3 becomes 10.20.0.3 (baremetal MaaS address);
JIRA: FUEL-285
Change-Id: I6e2d44c3a8b43846196bd64191735214167a76ce
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Introduce a simple mechanism that simulates an 'if-arch-then' cond
for reclass models:
- add new <all-mcp-ocata-common> class hierarchy;
- at runtime (via <salt.sh>) make 'all-mcp-ocata-common.arch' point
to 'all-mcp-ocata-common.$(uname -i)' dynamically;
- inherit new 'arch' class in all cluster models;
- factor out current x86_64 default for "salt_control_xenial_image";
- add AArch64 default for param "salt_control_xenial_image";
Change-Id: I3b239b28d0fd1cc2ced8579e2e93b764eb71ffc3
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
Bring back <ci/deploy.sh> parameter `-L`, which is already passed by
releng deploy script.
Since we need to enable file_recv on salt master, do so by adding a
new class in <virtual-mcp-ocata-common/infra/config.yml>, which will
be inherited by all scenario reclass models.
JIRA: FUEL-288
Change-Id: I9b649315984fb8580b63883d0e06c1e1efd11057
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Fix/silence all shellcheck errors, except for scripts in
<prototypes/sfc_tacker>.
Change-Id: Idc317cdba0f69b78299f2d3665e72ffc19dd8af5
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
While executing the deploy script via sudo will raise no issues with
re-using old storage volume files, non-root deploys fail to change
ownership of said files.
Properly clean after ourselves when destroying and undefining VMs.
JIRA: ARMBAND-311
Change-Id: I7fdd269dccbfd5ab5285d852ac7dacfc4dc5ccd7
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
JIRA: FUEL-280
Change-Id: I1e07b0e1597b2a1e4a92e1274f89dda62cb81bb8
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
|
|
Jenkins defines a build param also called SSH_KEY, which holds
the full path to our MCP private RSA key, as opposed to Fuel@OPNFV,
which uses the file basename as SSH_KEY.
Switch to using full path in SSH_KEY, while also moving the key
outside /tmp.
NOTE: When running `ci/deploy.sh` with sudo, key will land in
/root/opnfv/mcp.rsa unless SSH_KEY is set via env var.
While at it, bring back VM image storage dir param, allowing us
to drop one more reference to /tmp.
JIRA: FUEL-280
Change-Id: Id1cfa6dbe7b2e6f3915b22281da5957333718401
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
This will prevent envsubst from expanding the SALT_REPO local
variable in user-data.template.
Change-Id: Idcc3ea827293ac0d3b4059776f90bbbcf807daec
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Deepcleaning can be useful when deploying from an existing local repo
Change-Id: I3908d6533c744da7cc863a250f4158c6c0e8e169
Signed-off-by: Junaid Ali <junaidali.yahya@gmail.com>
|
|
These changes will only be applied on AArch64, based on `uname -m`.
While at it, add arm64 suppport to salt-master-setup.sh.
Upstream commit [1] broke Salt bootstrap on AArch64, by
introducing an architecture condition that is too strict to allow
Debian package installation (even if we provide our own repo).
Add "arm64" to the list of supported architectures. This needs
to be done on the fly, as the bootstrap script is fetched using
`curl` from <salt-master-setup.sh>.
[1] https://github.com/saltstack/salt-bootstrap/commit/caa6d7d
Change-Id: Id706a74a52ffe2f8b8c9dd3b9f70c78f35b2f745
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Change-Id: I65d1f5680000011493bde17a249a87738ebfdd96
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
Change-Id: I269e397b78d55794b1c49bf582cc0e663cbe9ca6
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
|
|
Long-term, /tmp/mcp.rsa should be moved to a persistent location [1],
and made configurable via env var / other mechanisms.
This will allow us to:
- use an existing keypair (provided by end-user in expected path);
- login to previous deployment machines (e.g. to cleanup UEFI boot
entries before destroying the cluster and rebuilding it);
- split deploy in re-entrant stages (salt master only, cluster nodes
only; similar to old Fuel, where we could reuse old Fuel VM);
[1] https://jira.opnfv.org/browse/FUEL-280
Change-Id: I1e53321ed1cfc217ff95e809c867fa3370c479c9
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
* run ceilometer/aodh states
* wrap common virtual cluster options
* get the source image based on timestamps
Change-Id: I88f1d63ed4a94eba4ec0a9cf33d36d51c75ae355
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
|
|
|
|
In case of non-root deploys (i.e. running `ci/deploy.sh` without
sudo), the OPNFV Jenkins slave executes it under a user shell,
under a root shell, e.g.:
$ sudo sudo -u jenkins bash
$ echo $USER
jenkins
$ echo $SUDO_USER
root
Adjust lib.sh to only use SUDO_USER when it is not "root".
Change-Id: I6dd1c8a5dd3a3b02cfb760818d66e99f49709a5b
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
- ci/deploy.sh: fail if default scenario file is missing;
- start by copying reclass/classes/cluster/virtual-mcp-ocata-ovs as
classes/cluster/baremetal-mcp-ocata-ovs;
- add new state (maas) that will handle MaaS configuration;
- Split PXE network in two for baremetal:
* rename old "pxe" virtual network to "mcpcontrol", make it
non-configurable and identical for baremetal/virtual deploys;
* new "pxebr" bridge is dedicated for MaaS fabric network, which
comes with its own DHCP, TFTP etc.;
- Drop hardcoded PXE gateway & static IP for MaaS node, since
"mcpcontrol" remains a NAT-ed virtual network, with its own DHCP;
- Keep internet access available on first interfaces for cfg01/mas01;
- Align MaaS IP addrs (all x.y.z.3), add public IP for easy debug
via MaaS dashboard;
- Add static IP in new network segment (192.168.11.3/24) on MaaS
node's PXE interface;
- Set MaaS PXE interface MTU 1500 (weird network errors with jumbo);
- MaaS node: Add NAT iptables traffic forward from "mcpcontrol" to
"pxebr" interfaces;
- MaaS: Add harcoded lf-pod2 machine info (fixed identation in v6);
- Switch our targeted scenario to HA;
* scenario: s/os-nosdn-nofeature-noha/os-nosdn-nofeature-ha/
- maas region: Use mcp.rsa.pub from ~ubuntu/.ssh/authorized_keys;
- add route for 192.168.11.0/24 via mas01 on cfg01;
- fix race condition on kvm nodes network setup:
* add "noifupdown" support in salt formula for linux.network;
* keep primary eth/br-mgmt unconfigured till reboot;
TODO:
- Read all this info from PDF (Pod Descriptor File) later;
- investigate leftover references to eno2, eth3;
- add public network interfaces config, IPs;
- improve wait conditions for MaaS commision/deploy;
- report upstream breakage in system.single;
Change-Id: Ie8dd584b140991d2bd992acdfe47f5644bf51409
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
On AArch64, there is no Cirrus video, so use VGA mode instead.
On Debian systems, also fix a missing link for vgabios-stdvga.bin.
Based on previous Armband work from [1].
[1] https://github.com/opnfv/armband/blob/danube.2.0/patches/fuel-library/
arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch
Change-Id: Ia84ea5536b68e14993b719488375b0041183a767
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
There is no much difference between nightly vs testing repos.
This reverts commit 052a1626da71d232431b3a9faf576a76db61f10e.
Change-Id: I40f60ddc2c9e1e59c7c4eb0be59ae19b00b7fb9b
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
|