* Expand downgrade test by upgrading back to origin after downgrading
Signed-off-by: David Cassany <dcassany@suse.com>
* Adapt github worflow to handle cache for downgrade tests and import the container images
Signed-off-by: David Cassany <dcassany@suse.com>
---------
Signed-off-by: David Cassany <dcassany@suse.com>
* Refactor CI to use a local registry
* Cache image and fetch image tarballs
* Composite fetch images
* Push to insecure registry with podman
* Simplify workflow runs
* Improve cache cleanup
* Improve ip detection
Signed-off-by: David Cassany <dcassany@suse.com>
* Generate tarballs
This commit generates tarballs for each feature and embeds that in the
elemental binary.
The tarballs are generated before build using 'go generate ./...' and
are not checked in to source control.
When a feature is installed using elemental init the tarball will be extracted
to the filesystem.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Use older disk version for preparing upgrade-test
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Run upgrade command in podman
This commit uses podman to run the latest version of the elemental-cli
to run the update command.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Pass UPGRADE_ARGS in test-upgrade workflow
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Some cleanup
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Add downgrade test
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
---------
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
Adds several improvements:
* Check VM pid on 'EventuallyConnects'. So it does not wait for a
command to succeed if the underlaying VM crashed and it is not
running.
* Does not use '-daemonize' flag of qemu, now it simply runs on the
background and the stdout and stderr are redirected to vmstdout file.
* Does not install QEMU, the runner already has a recent QEMU version
installed. This saves several minutes on each macos job.
* Fixes some of the stability issues on macOS by disabling hugepages on
the kernel. This is not supported on macOS.
Signed-off-by: David Cassany <dcassany@suse.com>
This commit adds an installer test and moves the smoke
test to be executed on the installed system rather than the
disk build.
Signed-off-by: David Cassany <dcassany@suse.com>
* Use build-disk command
This commit changes the way we build our test disks.
It uses the new build-disk command instead of losetup and the install
command. This means we can run build-disk without privileges and
also build expandable images.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
Build the signer without root privs so it works on any runner that
installs go as the current user.
Also run the signer as root in a different target so we can build it
once without privs and then run the binary with root as its needed due
to luet chowning files
Signed-off-by: Itxaka <igarcia@suse.com>
Signed-off-by: Itxaka <igarcia@suse.com>
- Move packer+vagrant to use qemu only
- Use EFI everywhere
- Use no compression with squash
- Output serial of packer to a file and upload it on CI
- Drop features tests (using external rosources that made no sense
anymore)
- Split recovery tests into 4 tests for parallel testing
- Bump elemental-cli
- Bump cos version
- Bump go.mod deps for tests
- Use ginkgo modules from tests instead of binary
- Drop vbox image
- Bump packer version to latest
When pushing the artifacts and signing them we use 2 different
apporaches to getting the current referenceID/tag/commit.
This could result in pushing one reference and using a different
one for signing.
This patch fixes that by moving the signing to the makefile,
as it should have been from the start, and reusing the same
reference for both pushing the artifacts and signing them, so
there is no possibility of mixing them up
Signed-off-by: itxaka <igarcia@suse.com>
Signed-off-by: itxaka <igarcia@suse.com>
Remove autogenerate from manifest, instead set default to --all and
allow overriding to be consistent with the docs.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
Seems like PACKAGES is not set correctly, also /cOS in Dockerfile will
be owned by another user, which logs warnings in CI.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Split recovery tests in individual tests
Using labels so we can run them individually for arm64, as they take too
long
It also uses a bit of trickery to determine if we are running the tests
with labels, which would indicate that we are running them individually
and skips the reset part to speed them up even further.
Currently only done for arm64, x86 tests are still run on the whole
suite
Signed-off-by: Itxaka <igarcia@suse.com>
* Fix label picking up 2 tests
Signed-off-by: Itxaka <igarcia@suse.com>
* Fix raw_disk building
Set the proper values on the manifest so it picks up the repos.
Also set the FINAL_REPO for the ARCH on raw_image build with a priority
of 30 so its below the local build repository
Signed-off-by: Itxaka <igarcia@suse.com>
* Bump elemental
Signed-off-by: Itxaka <igarcia@suse.com>
* set config dir to . to pick up the manifest.yaml
Signed-off-by: Itxaka <igarcia@suse.com>
* Change green for teal as the default base
Signed-off-by: Itxaka <igarcia@suse.com>
* Revert auto bumped go.mod/sum
Signed-off-by: Itxaka <igarcia@suse.com>
* Rememeber that pr-docker jobs are deactivated
Signed-off-by: Itxaka <igarcia@suse.com>
* revert standard dockerfile for now
Signed-off-by: Itxaka <igarcia@suse.com>
* go.mod shenanigans
Signed-off-by: Itxaka <igarcia@suse.com>
* debuig: Add final repo to build iso for now
Signed-off-by: Itxaka <igarcia@suse.com>
* Add final repo to manifest when building local iso
So any missing packages on local build are obtained from the repo of our
flavor, instead of relyaing in the green repo
Signed-off-by: Itxaka <igarcia@suse.com>
* debug
Signed-off-by: Itxaka <igarcia@suse.com>
* bump cos & luet-mtree
Signed-off-by: Itxaka <igarcia@suse.com>
* Remove final repo on build images
We now use the manifest to add the proper repo with the proper priority
Signed-off-by: Itxaka <igarcia@suse.com>
* Fix repo url on iso build
Signed-off-by: Itxaka <igarcia@suse.com>
* Fix standard example
Signed-off-by: Itxaka <igarcia@suse.com>
* update docs
Signed-off-by: Itxaka <igarcia@suse.com>
* Bump version for tests
Signed-off-by: Itxaka <igarcia@suse.com>
* Debug
Signed-off-by: Itxaka <igarcia@suse.com>
* Fix tests to use the new --system-uri from elemental
Signed-off-by: Itxaka <igarcia@suse.com>
* Use hugo from toolchain
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Bump bootstrap luet version
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Add hugo to toolchain
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Add makefile.docs
Allow to build docs from top level, and consume that from the pipelines
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Use elemental's build-iso command instead of luet-makeiso
* Update workflows
* Bump elemental to latest
Signed-off-by: David Cassany <dcassany@suse.com>
* Clean up deps from cOS packages
Fixes: https://github.com/rancher-sandbox/cOS-toolkit/issues/1232
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Bump cOS (for testing)
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Reference final repo while building to consume final images
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Update config files to new elemental variables
* Drop cos.sh script and cos-rebrand
This commit makes `cos-deploy` to be a wrapper of `elemental reset` and
drops `cos.sh` and `cos-rebrand` scripts.
* OEM partition should be also mounted when booting from a squashfs recovery
* Name EFI partition as COS_GRUB as the elemental installer does
* Remove deploys from active tests, no longer supported
* Backport installer v0.30.0
This is expected to be the last installer backport. This backport
includes the old cos.sh but also pulls elemental and uses it in some
`cos-*` wrappers commands.
Signed-off-by: David Cassany <dcassany@suse.com>
* Do not attempt to rewrite recovery
Fixes#1034
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* tests: split deploy-images test
Otherwise, the second test will run the code inside the recovery, as the
first test replaces the recovery in the VM too.
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: cleanup all images after artifact build
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Downgrade elemental-cli fips
Seems it fails to build
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: Try to run on self-hosted
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* tests: tests-raw-disk only runs on macOS runners
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: use local runners for master and release pipelines
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: add cleanup images plugin
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: update workflows
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: fixup plugin installation
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* ci: cleanup cache after package is built or pushed
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* fixup cos-setup constraint
This breaks validation as ver-1 is lower than ver
See: https://github.com/rancher-sandbox/cOS-toolkit/pull/923
Signed-off-by: Ettore Di Giacinto <edigiacinto@suse.com>
* Make OEM partition label customizable at build time
This commit sets the basis to make OEM partition label customizable.
Currently it can only be customized a build time, it already was,
however the value was hardcoded in several places. Now the label
value is included in /etc/cos/config file and all other packages
read it from there at build time and install time.
In the future it should not be complex to make it configurable at
install time. For that some little extensions to the installer are
required.
Signed-off-by: David Cassany <dcassany@suse.com>
* Make PERSISTENT partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Make RECOVERY partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Make STATE partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Make ACTIVE partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Make PASSIVE partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Make SYSTEM partition label customizable at build time
Signed-off-by: David Cassany <dcassany@suse.com>
* Adapt arm builder script
Signed-off-by: David Cassany <dcassany@suse.com>
* Make config file optional in imaging scripts
Signed-off-by: David Cassany <dcassany@suse.com>