summaryrefslogtreecommitdiff
path: root/mason
Commit message (Collapse)AuthorAgeFilesLines
* Fix Mason deployments for non-openstack-testing MasonPedro Alvarez2014-11-193-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | In mason.configure: It's not needed to create a separate os.conf file at this point. In this file we were puting OpenStack credentials used to create an os.conf file with Ansible. This file was only created when TEST_INFRASTRUCTURE_TYPE was 'openstack', and Ansible was expecting it always. This patch moves the OpenStack credentials to mason.conf, so Ansible only have to read the variables from one file. In mason.sh: The script was always loading /etc/os.conf. This file is only created when TEST_INFRASTRUCTURE_TYPE is 'openstack'. This patch checks that the file exists before loading it. In mason.conf template for Ansible. OPENSTACK_NETWORK_ID is only present when TEST_INFRASTRUCTURE_TYPE is 'openstack'. This patch adds a conditon in the template to skip this value if it doesn't exist.
* Stop mason.service starting before mason-setup.service has completedAdam Coldrick2014-10-271-0/+1
|
* Use Ansible to generate config for OpenStackAdam Coldrick2014-10-273-6/+28
|
* Make mason.conf contain everything it needs toAdam Coldrick2014-10-273-3/+11
| | | | | | | This adds TEST_INFRASTRUCTURE_TYPE and OPENSTACK_NETWORK_ID to mason.conf, as well as ending the confusion of using both MASON_TEST_HOST and TEST_VM_HOST_SSH_URL to mean the same thing in different places.
* Mason: Provide moving parts needed for testing on OpenStackMichael Drake2014-10-273-5/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Testing currently involves building a Baserock devel system, deploying it as a VM and testing that that deployed VM can build Baserock successfully. Originally Mason used scripts/release-test to do testing on a kvm host. In this patch the bits needed to do testing on an OpenStack host are provided. The new scripts/release-test-os script is based on the old scripts/release-test, and it uses `nova` to boot/delete/etc images and instances on OpenStack. The mason script, `mason.sh` is updated to optionally run either scripts/release-test-os or scripts/release-test, depending on whether TEST_INFRASTRUCTURE_TYPE is set to 'openstack' or 'kvmhost' in the Mason's mason.conf. The `os.conf` file is sourced by `mason.sh`, and should be updated to contain the relevant credentials and details for the OpenStack tenancy to be used for test deployments. When Mason creates a test OpenStack instance, there is potential for a race condition depending on whether ssh comes up before the cloud-init has finished resizing the instance's disc. If morph running on the test instance tries to build before the disc size is increased, it will fail complaining of insufficient free space. To eliminate this race, the cloud init script `os-init-script` is passed to `nova boot`. This touches a file after the disc is resized, which Mason checks for before it runs a `morph build`. The `os.conf` and `os-init-script` files must both be placed in the Mason system's `/root/` directory before the system is deployed. This should happen in the `mason.configure` configuration extension. The `mason.configure` configuration extension should also be updated to handle adding two extra variables to the `mason.conf` file. These are the aforementioned TEST_INFRASTRUCTURE_TYPE and OPENSTACK_NETWORK_ID, which is the ID for the configured OpenStack network that test instances should use.
* Rename 'distbuild' system to 'build', and fix descriptionsSam Thursfield2014-10-221-1/+1
| | | | | | | | | | | | | | | | | It's better to have one type of system that can do either distributed or local builds than to have separate ones that must both be kept up to date with changes. The need for a separate 'distbuild' stratum went already: commit 1a7fbedf56a4c7a6afb683851dde5d34bbb48b86 Author: Richard Maw <richard.maw@codethink.co.uk> Date: Thu Oct 2 14:16:00 2014 +0000 Split morph out of tools morph now contains distbuild and morph-cache-server, so the distbuild stratum can go away, and anything that needs it can now use morph.
* Configure Mason with AnsiblePedro Alvarez2014-09-174-0/+85
|
* Move Mason out from /rootPedro Alvarez2014-09-173-5/+5
| | | | | | - Move the configuration file to /etc/mason.conf - Move the scripts to /usr/lib/mason/ - Mason will store the report in /var/mason/report.html
* Fix Mason report generatorMichael Drake2014-08-291-2/+2
| | | | | | | | Now that we use the upstream trove, rather than local trove for git, the report generator needs to be updated to reflect that. Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
* mason-generator: Display help for wrong number of argsRichard Maw2014-08-281-1/+1
|
* Deploy Masons to use source on upstream trovesRichard Maw2014-08-282-42/+45
| | | | | | | | | | | | | | | | | The per-mason trove only needs to worry about being an artifact cache, so we can prevent it populating itself from the upstream trove by making it use the SSH protocol for fetching sources, and not registering its ssh key with the upstream trove. The MASON_UPSTREAM_TROVE_ADDRESS option has been removed, as this is now the TROVE_HOST. The distbuild network is now configured to use the upstream trove for sources, and the local trove for artifacts, with the ARTIFACT_CACHE_SERVER option. mason.configure now uses ARTIFACT_CACHE_SERVER to tell deploy commands which server to fetch artifacts from.
* Tidy mason deployDaniel Silverstone2014-08-281-8/+8
|
* Document the need for mason to be able to upload to upstream trovesMichael Drake2014-08-271-0/+5
| | | | | | | | Add a note showing how to copy the mason controller's id_rsa.key.pub to the upstream trove. This is needed or else artifact upload will now work, resuling in a FAIL. Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
* mason: Don't checkout repo using .git suffixRichard Maw2014-08-191-1/+1
| | | | | | | | | | | | Failing to do this means that the deployment uses the wrong morphology, because build will end up using the repo without the .git suffix, so it will never update the cached version of the repo without it. The version with the .git suffix is only updated on the initial checkout, but is used by deploy, so it would pick up obsolete morphologies and not include new changes. Rubber-stamped-by: Richard Maw
* mason: Include build logs in output when builds failRichard Maw2014-08-191-2/+7
|
* Report last time we checked for updates.baserock/michaeldrake/mason-develMichael Drake2014-08-121-4/+28
| | | | | | | | | Now the timestamp of the last time we looked for any changes in the definitions.git repository is put into the footer area. It is highlighted for visibility. This makes it easier to see that the mason system is still running, but that there is nothing new to build.
* Reduce refresh rate of report from 10s to 1min.Michael Drake2014-08-081-1/+1
| | | | This reduces flicker/churn when browsing a mason report page.
* Use the local trove rather than upstream trove when polling for updates.Michael Drake2014-08-082-4/+4
| | | | | This prevents discovering changes, and then being unable to build them because the local trove has not yet got them.
* Fix --help output to describe copying the correct key for test deployment.Michael Drake2014-08-081-1/+1
| | | | | Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
* Detect lack of network and report as such, rather than failbaserock/michaeldrake/mason-net-down-reportMichael Drake2014-08-072-2/+24
| | | | | | If the git remote update command fails, we assume it's because we are unable to connect to the trove. This gets reported as a networking issue, rather than as a failure.
* Add Mason scripts on top of distbuild systemMichael Drake2014-08-066-0/+402
The distbuild system can be configured to act as a CI controller. Providing appropriate config makes it copy all the scripts and systemd units out of the mason directory onto the target, such that it will start building and testing the configured cluster morphology on boot.