| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I1bb7ea175642ea43833503353d1f0cb866831d95
|
|
|
|
| |
This reverts commit 923e4668b1f1d394e7d9e90d84e57e1138e544ff.
|
|
|
|
| |
Change-Id: I37d158ee8786dcd8774cde07e9385939f043e905
|
|
|
|
|
|
|
| |
This is *much* faster for build systems. ARCHIVE_Z2 is meant for
servers, not for build systems.
Change-Id: Ife24a137cf0e438cdf91eea2c647ecf8571e58e9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes two issues: first, downloads were being put into the default
TMPDIR, which is an in-memory file system. When large artifacts are put
into /tmp such as gcc-devel, which is over 400MB, I found that my system
became unusable due to out of memory / swap death. Ideally we'd fix
Linux's memory management, but a more practical solution for now is to
download the files to the artifact cache directory. I've not noticed any
loss in speed from this change.
Second, temporary files should always cleaned up now, even when there
are errors during transfer or extraction.
Change-Id: I227e8fbe0a9375dcc2f7534f95afb10f055d8d3f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously this info was just in the log file, but I think it should be
on the console too.
Also, the 'Downloading xx as tarball' message would appear even when
there was no tarball to download, which was a bit weird.
Output with `morph build --verbose` now looks like this:
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Fetching to local cache: artifact stage2-gcc-locale
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Downloading stage2-gcc-locale as a tarball.
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Committing stage2-gcc-locale to artifact cache at 14ae4efeeaeea43f8a4f9198172ca9961f343cde663ec98e7061259d6542c35a-locale.
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Fetching to local cache: artifact stage2-gcc-libs
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Downloading stage2-gcc-libs as a tarball.
2015-03-25 15:00:53 [Build 8/226] [stage2-gcc] Committing stage2-gcc-libs to artifact cache at 14ae4efeeaeea43f8a4f9198172ca9961f343cde663ec98e7061259d6542c35a-libs.
Change-Id: I59260c68dcc8ff1fba9d1edd4773f952662757c8
|
|
|
|
| |
This reverts commit a21def96f77772549777b0bca76ba561baebbe78.
|
|
|
|
| |
Change-Id: I46739aca1e71ed5878353d974c46fc07f115b915
|
|
|
|
|
|
|
| |
The OStree checkout uses hardlinks anyway, so this is thankfully now
redundant.
Change-Id: Id763b76e49b5900487ee2539e5cde3c3e8d4a958
|
|
|
|
|
|
|
|
| |
We can't easily share built artifacts built with older versions of Morph
because they may contain device nodes, and these can't be stored in
an OSTree repo.
Change-Id: Id1e7be4a5e12e8a4881c2084594d9553df18d026
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Its much harder to look at the contents of the artifact cache now that
they aren't stored by chunk name (just cache key and artifact suffix).
All of these were failing because they were trying to extract chunk
tarballs or locate and inspect artifacts, so just make sure the builds
themselves don't fail. The build-system tests are a lot of work to make
into yarns, as we'll need to build systems with actual tools in as far
as I can tell.
Also disable the cross-bootstrap test for now.
|
|
|
|
|
|
|
| |
The cross-bootstrap plugin is currently full of hacks, so it makes sense
to rewrite it properly rather than extending these hacks to work with
OSTree. I don't have time to do this right now, so disable the
cross-bootstrap yarn.
|
|
|
|
|
|
|
|
|
| |
OSTree can easily pull over HTTP. All that is necessary is to expose the
repo directory. This commit adds a simple HTTP server to do this in the
test suite. Actual implementations should use something better, like
lighttpd.
Also add some logging of the cache servers in this yarn to help debug.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Now that we have an OSTree artifact cache, the deploy plugin needs to use
that to get the system to be deployed. Due to the changes in how we store
systems, we need to get the contents of each stratum then put the system
delta on top of that.
This is still much quicker than unpacking stuff from tarballs.
|
|
|
|
|
|
|
| |
The API of the OSTree artifact cache is slightly different to that of the
old tarball cache, so adjust things accordingly. Also, only store the
files changed at system-construction-time rather than everything in
system artifacts.
|
| |
|
|
|
|
|
| |
This commit updates RemoteArtifactCache to enable it to interact with
a remote OSTree artifact cache.
|
| |
|
| |
|
|
|
|
|
|
| |
Change create_chunk to put the contents of an artifact into a directory
rather than storing them in a tarball, as we want to store chunks as
directory trees in OSTree rather than tarballs now.
|
|
|
|
|
|
| |
This avoids needing to pass the cache to the staging area since
lac.get returns a path to a directory tree rather than a file
handle now, so we also don't need to do any unpacking.
|
|
|
|
|
|
|
|
|
| |
We can't store devices nodes in OSTree, so we can't create them at
artifact build time and store them in the chunk artifacts anymore.
Instead, we should create them in the staging area when installing
an artifact with a source which has a morphology which defines
them into the staging area.
|
|
|
|
|
|
| |
Overlayfs is new in version 3.18 of the kernel, so add support for a
different implementation of a union/overlay filesystem in order to
allow morph to work on older kernels.
|
|
|
|
|
|
|
|
|
|
|
|
| |
When deploying, configuration extensions are run against the unpacked
tarball of a system created by a build. If we are to use OSTree to
store systems (rather than tarballs) this will not be possible as the
result of `ostree checkout` would be read-only.
To solve this, we use overlayfs to mount the unpacked tarball
underneath a temporary directory somewhere, and run the configuration
extensions on that mount point. This means that the changes are
made in the temporary directory rather than directly on the tarball.
|
|
|
|
|
| |
This will allow us to cache systems as a list of chunks and a small
filesystem delta, rather than a massive tarball.
|
|
|
|
|
| |
In order to mount using overlayfs, fsutils.mount needs to take a
string of options to pass to the mount command.
|
|
|
|
|
|
|
| |
Add the ability to ignore files when checking copyright years,
and start ignoring the COPYING file.
Change-Id: I0cc11456f896e27458357ab0c5729223c71b406e
|
|
|
|
| |
Change-Id: I00bcedae271c20273020fa3a60bb21decde85eed
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I accidentally tried to deploy a Baserock upgrade to a Fedora cloud
machine. Every SSH command that Morph ran got the following output:
Please login as the user "fedora" rather than the user "root".
The existing implementation of check_ssh_connectivity() didn't raise
an exception, leading to confusing errors further down.
The new implementation produces this error:
ERROR: Unexpected output from remote machine: Please login as the
user "fedora" rather than the user "root".
Change-Id: Ida5a82b25d759167aa842194b0d833d0565b4acf
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I6e714d1994632875a5a15f840fe8ab3a66dddc77
|
|\ \ \
| |/ /
| | |
| | | |
of definitions format"
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
definitions format
This patch will add the following restriction:
if VERSION exist
and its a YAML file
and its a dict
and has the key 'version'
and the type stored in the 'version' key is an int
and that int is not in the supported format,
then fail.
So, if someone is using 'version: 4' in VERSION, morph will fail (as
opposed to current morph, that will not fail in the check but will
likely fail when it tries to compile)
Change-Id: I555f7e6018b9bdf18c80039df92a253acbd51c8c
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | | |
Reviewed by:
Richard Maw <richard.maw@gmail.com> (+2)
Pedro Alvarez <pedro.alvarez@codethink.co.uk> (v2) (+1)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This adds a new config extension to allow deployments to write to /etc/hosts
by adding HOSTS_x: </etc/hosts line> to a cluster morph in a similar manner
to the fstab.configure extension.
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
A function to read lines from a dictionary and append them to a file
|
| | |
| | |
| | |
| | | |
Change-Id: I46ad9c15064de752e839611d2ce3ee016ec7cc46
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Some lines were more than 79 characters long. This was causing
./check --full to fail on master of morph. This commit fixes the
lines in question.
Change-Id: I80969d2d89d3922e021b716c250796188d7a7f4c
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: Ibda7a938cd16e35517a531140f39ef4664d85c72
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
|
| | |
| | |
| | |
| | |
| | | |
Rename instead removal in case the user is already using a
10-dhcp.network file
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Use DHCP by defaul in the default interfaces:
- for /etc/networ/interfaces: "lo:loopback;eth0:dhcp,hostname=$(hostname)"
- for networkd: "e*:dhcp"
|
| | | |
|
| | |
| | |
| | |
| | | |
255.255.255.0 -> 24
|