Add temp-image Earthly target
This is helpful to quickly generate temp images and upload them to
ttl.sh plus you can quickly distinguish the images by branch and sha
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Add docker versioning for the `RENOVATE_VERSION`
This isn't being picked up in the dashboard (#310), and it might be
because `34` isn't a proper semver.
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
Mange the version of quay.io/kairos/osbuilder-tools with renovate
This should trigger an update in short order as the current version of
this image is v0.5.2.
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
Now that the config is more than the stock config, and folks are
interested in using it more, we should have some automation to verify
that the config is valid.
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
Have renovate manage image versions in `Earthfile`
This change adds support for renovate to be able to update the versions
of `quay.io/luet/base`, `golang`, and `hadolint`.
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
* 🔧 merge custom mounts tests
Since the feature is now merged, we no longer need
a single label for this. This saves a few CI cycles.
To acheive this, we add the correct sections to the normal
install sections and assert that these paths exist.
The previous assertions are kept, but in order to make
code a bit more readable, I extracted the anonymous function
that collects the data from the installed VM.
Instead of repeating the installation 4 times, we now only
repeat the installation 2 times.
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Refactor tests
Works with VBox, fails with QEMU
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Fix cloud-config identation
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
---------
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Pull out golint into its own target
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
* run hadolint on the Docker files in images/
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
* Ignore existing failures of hadolint, at least for now
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
---------
Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
Looks like there was missing docs for the --keep-own flag on easrthly
and we can indeed keep permissions for all dirs/files when copying
artifacts, but the flag needs to be both on the SAVE ARTIFACT and in the
COPY stanzas.
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
Co-authored-by: Itxaka <itxaka@spectrocloud.com>
* ✨ custom user bind and ephemeral mounts
Users can now specify custom and ephemeral mounts in cloud-init under
the `install` section, e.g.:
```
users:
- name: kairos
...
install:
auto: true
device: "auto"
bind_mounts:
- /mnt/bind1
- /mnt/bind2
ephemeral_mounts:
- /mnt/ephemeral
- /mnt/ephemeral2
...
```
Ephemeral mounts are mounted as RW - but changes are discarded when the
machine is restart.
Bind mounts will persist changes after restarted.
This is a fix for #210
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Add the custom user mount to /cos/run/cos-layout.env
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Add docs for custom user mounts in configuration example
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Reuse test_install function
DRY the code, change how we call the function install_test
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Enable custom mount tests and install tests
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Enable tests in CI
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Remove duplicate if check
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Remove uneeded fmt.Println ...
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Use separate label for custom mounts
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* 🔧 Earthfile - DRY ginkgo
We repeat this a more than twice so just extract to own
target...
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Correct return type for ContainElements
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Remove CLOUD_INIT from custom mounts test
This is not needed here.
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Fix qemu-test-* earthly targets
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* 🔧 Fix CPU passing to VM
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* 🔧 remove apt cache after install qemu
Helps deal with space running out in the CI.
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* 📖 Document custom mounts
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
---------
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Space gained is negligible, just a few Kbs usually (with gzip as its
currently) but the speed up improvements in building the ISO are really
good, for 20 seconds to 40 seconds per ISO build, and that gets more accentuated
on CI runs where the runners are more CPU constrained.
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: Itxaka <itxaka@spectrocloud.com>
Looks like a ] was missing and instead of crashing and burning, earthly
continued happily, which meant that on v1.5.0 ARM tumbleweed images the
initrd is missing as earthly failed to parse the check but did not
errored out.
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: Itxaka <itxaka@spectrocloud.com>
* ✨ add tumbleweed flavor
- Adds new opensuse-tumbleweed and opensuse-tumbleweed-arm-rpi flavors
- Renames opensuse to opensuse-leap
- Adapt earthfile to new names
- Adapt CI to new names
- Drop uneeded argument from dockerfiles
- Updates docs to point older core-opensuse mentions to new
core-opensuse-leap flavor.
- Add core-opensuses-tumbleweed flavor to matrix of version
- Point to new kairos provider repos which include the version in the
naming
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
No Need to generate the sha sum for the iso manually, elemental already does it
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: Itxaka <igarcia@suse.com>
* 🌱 Add version information directly from git
Partial fix for kairos-io/kairos#643.
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
* Update cmd/profile-build/main.go
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Oz Tiram <oz@spectrocloud.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Vendor webui dependencies
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
* Remove GA caching
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
* The deps need to be there before the compilation of the agent
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
* Remove unnecesary tag
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
* Do not build webui-deps
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
The netboot target didn't had a default bound to the detected version, if nothing was specified
it would result in an empty artifact.
Fixes: #501
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
This occasionally leads to errors when repos are not available online, and now
this should be also not necessary anymore.
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Set a default dns and configure the interface in ipxe
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Build with HTTPS support, correctly pass by VERSION
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Add rd.neednet=1
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Depending on the kernel being used, we build now 2 distinct images
(alpine-opensuse-leap and alpine-ubuntu).
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Drop moved files
Those are now shipped with the dracut package
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
* 🌱 Consume separate dracut configuration
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
* 🌱 Add specific dracut modules
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
* Update Earthfile
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
* ⬆️ Bump Kairos repositories
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* 🐧 Find out which grub to call
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* 🌱 Simplify framework images creation
No need to account anymore for different flavors of the toolkit
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* 🤖 No need to publish framework images anymore
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* ⬆️ Bump Kairos repositories
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* ♻️ Cleanup wicked references
* ⚙️ Be consistent and set systemd-network settings also initramfs
* ♻️ Re-use same image for netboot
* Revert "♻️ Cleanup wicked references"
This reverts commit d21850c24460189251974fed4a0b65c7a6f2f9ae.
* Revert "Revert "♻️ Cleanup wicked references""
This reverts commit 7cec03561e388d771ff317fd9b937f30af8c0be9.
* 🐧 Add openssh to opensuse
* 🐧 Add sudo explictly to openSUSE
Before it was automatically pulled in by other packages
* 🤖 Run bundles tests on GHA
* ✨ Add ubuntu-rolling flavor to track latest ubuntu
* 🤖 Disable qcow image build on releases
web3 storage changed plans - now free space is much more reduced and we already exceeded limits.