Commit graph

22 commits

Author SHA1 Message Date
Tom Gundersen
02a194f612 tests: add basic integration tests
Introduce a new osbuild-tests command and ship it in the -tests
sub-package.

The intended usecase is to install the -tests subpackage into an
otherwise pristine VM, and call the osbuild-tests binary over ssh
from the outside of the booted VM. If the binary exits with a return
code of 0, the tests passed, otherwise they failed. The VM should
not be reused after running the tests.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-01-03 22:35:52 +01:00
Tom Gundersen
4919ef1271 repositories: install the base repositories in the filesystem
During development of a new distro, we need to test composer against
nightly or beta repositories, but we cannot ship composer itself
with the nightly repository information hardcoded in. At the same
time, we want to distinguish between the system repositories of the
host and the repositories we use to generate images (the host may not
use the same distro/version/architecture as the target, and it may
include custom repositories that the target should not).

We therefore ship per distro repository information that can be
overriden (typically in testing) by dropping files in /etc.

For now use the latest nightlies for RHEL-8.2, we may want to
replace these with the official mirrors for GA eventually.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-01-03 22:35:52 +01:00
Tom Gundersen
ddde71f9c1 spec: make the same specfile work on RHEL as on Fedora
In RHEL golang dependencies must be vendored, whereas on Fedora they
must be packaged separately. Add conditionals accordingly.

Some macros are not yet available in RHEL, so fall back to older
versions. We may want to just use macros avilable everywhere
unconditionally, but I left that for a follow-up.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-12-23 17:09:47 +01:00
Tom Gundersen
fce9fa9fa2 spec: provide lorax-composer
The API provided is the same, allow osbuild-composer to replace
lorax-composer.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-12-23 17:09:47 +01:00
Ondřej Budai
66885bc9d6 spec: fix build
Commit 04012641 broke the rpm build by introducing bad package name
to be build. This commit fixes it.
2019-12-17 08:54:05 +01:00
Lars Karlitski
74812cad85 5 2019-12-16 01:49:09 +01:00
Tom Gundersen
04012641ba spec: don't ship devel tools
Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-12-11 15:23:24 +01:00
Tom Gundersen
b21ebf81c8 4
Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-12-01 00:09:17 +01:00
Ondřej Budai
613b659b95 test: use google cmp library to do the deep reflect
The cmp library has two advantages:

- it shows diffs between compared values
- it allows ignoring fields based on field name or type
2019-12-01 00:05:17 +01:00
Alexander Todorov
4790e4e593 Provides: osbuild-composer in .spec
this is a small helper to enable easy switch between backends
in the existing test suite where we reference everything by name.

The current working variant is:

	yum install $BACKEND
	systemctl enable $BACKEND.socket

where BACKEND is either lorax-composer or osbuild-composer!
2019-11-28 14:06:54 +01:00
Tom Gundersen
7f5c869cd2 upload/aws: add a sample AWS upload client
This commandline tools uploads a file to S3, as a proof of concept.

All options are mandatory. Credentials are only read from the
commandline and not from the environment or configuration files.

The next step is to add support for importing from S3 to EC2,
currently the images we produce cannot be imported as-is, so this
requires more research.

To try this out: create an S3 bucket, get your credentials and
call the tool, passing any value as `key`. Note that if the key
already exists, it will be overwritten.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-26 01:05:34 +01:00
Martin Sehnoutka
78ea0e0b6f Introduce Azure upload CLI utility
It uses Azure SDK to connect to Azure storage, creates a container there
and uploads the image. Unfortunately the API for page blobs does not
include some thread pool for upload so I implemented one myself. The
performance can be tweaked using the upload chunk size and number of
parallel threads.

The package is prepared to be refactored into common module within
internals package as soon as we agree on the of these common packages
for image upload.

Add azure-blob-storage rpm package as a dependency

It didn't work for me using the `golang(package)` syntax. Using the
package name explicitly works.
2019-11-25 17:10:11 +01:00
Ondřej Budai
cd5a192dfd 3 2019-11-15 17:22:20 +01:00
Ondřej Budai
306ca58588 spec: update to packaging guidelines
- %{_libexecdir}/osbuild-composer/ is good enough for listing the directory
  and its whole tree

- summary should not end with full stop
2019-11-13 19:37:28 +01:00
Tom Gundersen
1055d1167d 2
Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
9c34e6bbea spec: make python script executable
This is how the file is in git, install with the same permissions.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
6d20991e90 spec: update to golang packaging guidelines
The guidelines have changed for F32, so update to use the goprep and
gochecks macros.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
339e887693 spec: add systemd hooks
According to Fedora packaging guidelines, the rpm scriptlets must
call into systemd to make sure the services are enabled/disabled
corerctly on install and uninstall.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
88c0cf4b27 distro: move binaries to /usr/libexec to follow Fedora packaging guidelines
This makes no difference, so let's just put them where the Fedora
guidelines say they should be.

Also, make sure to own the containing directory.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
d87d9eb27b spec: fix a couple of rpmlint warnings
Addressing https://bugzilla.redhat.com/show_bug.cgi?id=1768774#c1

The review also points out that the Source0 URL is wrong, I fixed
this by pushing a new tag: `v1`, rather than just `1`.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-11-11 21:13:43 +00:00
Tom Gundersen
d9e3f1f173 1
Signed-off-by: Tom Gundersen <teg@jklm.no>
2019-10-31 23:05:32 +01:00
Ondřej Budai
ead3ae6cab Add spec file for building RPM package
The version is set to 0 as we haven't release the first version yet.
2019-10-25 14:21:04 +02:00