|
 |
 |
 |
Changelog for flake-pilot-firecracker-guestvm-tools-3.1.18-1.1.x86_64.rpm :
* Tue Feb 11 2025 Marcus Schäfer - Bump version: 3.1.17 → 3.1.18 * Tue Feb 11 2025 Marcus Schäfer - Style fixes * Tue Feb 11 2025 Marcus Schäfer - Fix error handling for container check methods The condition to setup permissions and redo the call was done when the exec of the call was not possible. But this is not the right place to check for a permission denied error. This commit fixes the evaluation of the error data * Tue Feb 11 2025 Marcus Schäfer - Bump version: 3.1.16 → 3.1.17 * Tue Feb 11 2025 Marcus Schäfer - Don\'t use perform for bool status methods The perform() call checks the status code and raises an ExecutionError. This does not allow us to return a false boolean. Use output() call instead * Tue Feb 11 2025 Marcus Schäfer - Bump version: 3.1.15 → 3.1.16 * Tue Feb 11 2025 Marcus Schäfer - No error return for bool method * Tue Feb 11 2025 Marcus Schäfer - Bump version: 3.1.14 → 3.1.15 * Tue Feb 11 2025 Marcus Schäfer - Fix call for podman_setup_permissions Make sure podman_setup_permissions is only called if there is a permission problem detected. * Sat Feb 01 2025 Marcus Schäfer - Bump version: 3.1.13 → 3.1.14 * Sat Feb 01 2025 Marcus Schäfer - Use actions/upload-artifact: v4 * Sat Feb 01 2025 Marcus Schäfer - Make clippy happy * Sat Feb 01 2025 Marcus Schäfer - Fix building runtime arguments Use get_run_cmdline method everywhere * Sat Feb 01 2025 Marcus Schäfer - Fix container cleanup A flake configured to be attached can also be re-started using the same container storage. However, the container was always removed when the command exited. This commit fixes it to avoid removing the container of attach type flakes. In addition a flake option %remove was added to allow removing the container created for resume and attach type flakes * Tue Dec 17 2024 Marcus Schäfer - Bump version: 3.1.12 → 3.1.13 * Tue Dec 17 2024 Marcus Schäfer - Allow env placeholders for the podman pilot The podman runtime arguments allows to set environment variable placeholders starting with \'%\' and followed by the name of the environment variable. For example %HOME will be replaced to the value of $HOME of the calling user. If the given placeholder cannot be translated into an existing environment variable it will be turned into the variable name, $HOME in the above example. * Mon Dec 16 2024 Marcus Schäfer - Bump version: 3.1.11 → 3.1.12 * Mon Dec 16 2024 Marcus Schäfer - Automatically detect terminal mode * Mon Dec 16 2024 Marcus Schäfer - Drop superfluous comment * Mon Dec 16 2024 Marcus Schäfer - Bump version: 3.1.10 → 3.1.11 * Mon Dec 16 2024 Marcus Schäfer - Update system files provisioning Expect systemfiles to be a callable that produces the list of host files to sync * Fri Dec 13 2024 Marcus Schäfer - Bump version: 3.1.9 → 3.1.10 * Fri Dec 13 2024 Marcus Schäfer - Include systemfiles.libs for host provisioning Only use copy-links for the files mentioned in systemfiles.libs. The other systemfiles are synced in the usual way. * Thu Dec 12 2024 Marcus Schäfer - Make sure interactive processes can run * Thu Dec 12 2024 Marcus Schäfer - Fixed podman call dead lock When calling the flake and stdout/stderr gets redirected into a pipe like `flake | grep ... | cut ...` the pilot binary runs in a dead lock because there is no reader/writer to feed the pipe from the child process (podman) executed via the pilot. This commit fixes it by making sure all data from the child gets read first and then passed along to stdout/stderr of the caller. * Thu Dec 12 2024 Marcus Schäfer - Bump version: 3.1.8 → 3.1.9 * Tue Dec 10 2024 Marcus Schäfer - Copy symlinks for host dependencies For provisioning of host dependencies copy symlinks such that they appear under their name as a file and not as a symlink. We use this logic for the host dependency sync only to be less strict on versioned library syncing * Wed Dec 04 2024 Marcus Schäfer - Clippy fix elide the lifetimes for User instances * Wed Dec 04 2024 Marcus Schäfer - Bump version: 3.1.7 → 3.1.8 * Wed Dec 04 2024 Marcus Schäfer - Fixed the runroot permission fixup podman differentiates the runroot between root and rootless calls. If you initially call a flake as a user the initial podman database gets setup as rootless variant which also allows root based workloads without permission issues. However, if you do it the other way round the runroot is setup for root only which prevents the flake to be called as normal user. To handle this permission issues we have fix methods in the flake common code to change the permissions according to the calling user via sudo. The code to handle permissions for the runroot target has to apply for all users as we can\'t predict if the storage will be setup initially as rootless or for root only * Fri Nov 29 2024 Marcus Schäfer - Bump version: 3.1.6 → 3.1.7 * Fri Nov 29 2024 Marcus Schäfer - Follow symlinks for mkdir * Thu Nov 28 2024 Marcus Schäfer - Bump version: 3.1.5 → 3.1.6 * Thu Nov 28 2024 Marcus Schäfer - Add support for systemfiles provisioning If the base container comes with a systemfiles metadata file it will be used to transfer all the data mentioned in the file from the host to the instance. In contrast to the removed files the systemfiles sync will not continue when failed and this can only be overwritten via the %ignore_sync_error flake option * Wed Nov 27 2024 Marcus Schäfer - Bump version: 3.1.4 → 3.1.5 * Wed Nov 27 2024 Marcus Schäfer - Add provision of systemfiles * Wed Nov 27 2024 Marcus Schäfer - Fix initialization of CID dir chmod to the wrong path * Tue Nov 26 2024 Robert Schweikert - Doc clarification Using the term \"container name\" can be confusing and interpreted as simply the name of the container itself. What we really need to make registration work is the path of the container in the local registry. Clarify the documentation by adding a not ethat points out this potential pitfall. * Tue Nov 26 2024 Marcus Schäfer - Bump version: 3.1.3 → 3.1.4 * Tue Nov 26 2024 Robert Schweikert - Handle incomplete container path If the given oci path does not match a file, the value is treated as a glob pattern. From the possible match of the pattern the last match will be used as the file to load. This Fixes #51 * Sun Nov 24 2024 Marcus Schäfer - Bump version: 3.1.2 → 3.1.3 * Sun Nov 24 2024 Marcus Schäfer - Handle the removal of containers in the pilot * Sun Nov 24 2024 Marcus Schäfer - Fix cleanup Only modify permissions of the run state for the calling user. Make sure to remove non resume/attach type app containers after the call * Sat Nov 23 2024 Marcus Schäfer - suppress podman exists output * Sat Nov 23 2024 Marcus Schäfer - Bump version: 3.1.1 → 3.1.2 * Sat Nov 23 2024 Marcus Schäfer - Fix spec file Do not create /usr/share/flakes as part of the package. Let the tooling create the directory if not present * Sat Nov 23 2024 Marcus Schäfer - Bump version: 3.1.0 → 3.1.1 * Sat Nov 23 2024 Marcus Schäfer - Provide error message for unknown command If the target_app_path is set to / this means the container configured entry point is called. Such a setup cannot be used as resume flake because we don\'t know the entry point command to exec * Sat Nov 23 2024 Marcus Schäfer - Update flake-ctl-podman-register man page * Sat Nov 23 2024 Marcus Schäfer - Bump version: 3.0.15 → 3.1.0 * Thu Nov 21 2024 Marcus Schäfer - Use custom registry for the podman pilot Use podman in a way that it references a custom registry only for the flakes and independent of any other registry setup on the system. This Fixes #48 * Tue Nov 05 2024 Marcus Schäfer - Bump version: 3.0.14 → 3.0.15 * Tue Nov 05 2024 Marcus Schäfer - Fix vendoring Use cargo-vendor-filterer crate * Tue Nov 05 2024 Marcus Schäfer - Bump version: 3.0.13 → 3.0.14 * Tue Nov 05 2024 Marcus Schäfer - Fixed code still not using flakes config file * Mon Nov 04 2024 Marcus Schäfer - Allow to mount podman storage in rootless mode Temporary gain root permissions via sudo for mounting and modifying instance storage. This allows for provisioning transparent containers also for non root users but still requires sudo to be configured properly. * Mon Nov 04 2024 Marcus Schäfer - Make sure flake-ctl also reads /etc/flakes.yml The system wide configuration file was not read by flake-ctl only by the pilots. This commit fixes it * Thu Jun 06 2024 Marcus Schäfer - Make clippy happy assigning the result of `ToOwned::to_owned()` may be inefficient * Thu Jun 06 2024 Marcus Schäfer - Bump version: 3.0.12 → 3.0.13 * Thu Jun 06 2024 Marcus Schäfer - Rebuild with rustls fix The crate index was updated and the vendor source seems to have fixed the rustls security issue. This fixes bsc#1223217 * Wed Apr 10 2024 Marcus Schäfer - Turn terminal flag setup into function * Wed Apr 10 2024 Marcus Schäfer - Bump version: 3.0.11 → 3.0.12 * Tue Apr 09 2024 Marcus Schäfer - Fix race condition on connection check * Tue Apr 09 2024 Marcus Schäfer - set PS1 prompt via sci env * Tue Apr 09 2024 Marcus Schäfer - Add terminal settings for pty stdout in sci disable ECHO * Tue Apr 09 2024 Marcus Schäfer - Fix invalid early exit condition * Mon Apr 08 2024 Marcus Schäfer - Bump version: 3.0.10 → 3.0.11 * Mon Apr 08 2024 Marcus Schäfer - Fix build for Leap Issues on the gcc side for static targets, disable sci static build for older targets, e.g Leap * Wed Apr 03 2024 Marcus Schäfer - Prevent use of socat in firecracker-pilot Do not shell out socat and use proper UnixListener/UnixStream to do this job. This version of the commit works but I stumbled across a few issues: 1. Permission denied when the UnixListener runs as user and the firecracker process was called as root (run_as: root in the flake). The former implementation ran socat via sudo in the same way as the firecracker process. Thus if you register the flake to run as root it can now also only be called as root, which is acceptable. 2. The behavior in interactive sessions differs compared to socat. When sci in the guest is called it creates a pty and all data is copied to the vsock stream. The host connects via an UDS socket to this data and we multiplex stdin->stream and stream->stdout. When doing this with socat the behavior is different in a way that e.g tabs are effectively interpreted and the pty prompt allows for input on the same line when my code now always needs a newline to renew the prompt. I did not debug further what is needed to make this look nicer. This Fixes #8 * Wed Mar 27 2024 Marcus Schäfer - Bump version: 3.0.9 → 3.0.10 * Wed Mar 27 2024 Marcus Schäfer - Clippy fixes * Wed Mar 27 2024 Marcus Schäfer - sudo is required * Wed Mar 27 2024 Marcus Schäfer - Fix error handling Make sure the real command that is called through sudo is displayed. Also fix that the runas information is really used * Wed Mar 27 2024 Marcus Schäfer - Exit on remove if there is an error The remove sequence when used with --container or --vm deregisters all apps associated with the container or VM first. If there is an error on this deregistration, exit early and do not try to delete the container/vm * Mon Mar 25 2024 Marcus Schäfer - Update URL in spec file Point to OSInside Organisation * Mon Mar 25 2024 Marcus Schäfer - Bump version: 3.0.8 → 3.0.9 * Mon Mar 25 2024 Marcus Schäfer - Fix spec file Several changes according to the SUSE regulations * Mon Mar 25 2024 Marcus Schäfer - Fix robot tests * Mon Mar 25 2024 Marcus Schäfer - Add missing %changelog line in spec * Mon Mar 25 2024 Marcus Schäfer - Allow non static sci Build sci non static for ppc64le which doesn\'t support the rust static target yet * Mon Mar 25 2024 Marcus Schäfer - Drop upx binary compression Startup time seems more important than binary size on target. The original reason for the compression was due to very limited size constraints from a former customer who no longer sticks to them. * Mon Mar 25 2024 Marcus Schäfer - Drop obsolete gcc static fix * Mon Mar 25 2024 Marcus Schäfer - Break long commandline for better readability * Mon Mar 25 2024 Marcus Schäfer - Update documentation Added a delta container example registration * Mon Jan 29 2024 Marcus Schäfer - Bump version: 3.0.7 → 3.0.8 * Fri Jan 26 2024 Marcus Schäfer - Drop build-deb support Building a debian package from a given oci container using the debbuild tool was an extra helper command to turn a container into a package. However, flake-pilot should not have this responsibility and if it should provide it, it should be done with the native tools from the respective distribution. * Fri Jan 26 2024 Marcus Schäfer - Update README Add information about console settings and limitations with regards to firecracker VMs * Fri Jan 26 2024 Marcus Schäfer - Add support for force vsock on firecracker pilot The vsock communication between guest and host was established with the firecracker pilot only for resume type registrations. For those it\'s required because you cannot mux one serial terminal between parallel applications running at the same time in the guest. So in resume mode each call has its own socket and channels. However, there is no reason to not also support that type of data flow between guest and host for one time calls which fires up the VM, starts the application and shuts down the VM. This commit adds support for forcing the vsock communication also for the simple app registration. The default stays on serial though. * Fri Jan 19 2024 Marcus Schäfer - Bump version: 3.0.6 → 3.0.7 * Fri Jan 19 2024 Marcus Schäfer - Make sure /mnt mountpoint exists for firecracker When using an overlay sci mounts the new root to /mnt prior pivot. Thus make sure /mnt exists as mountpoint directory in the image at import time * Wed Jan 17 2024 Marcus Schäfer - Bump version: 3.0.5 → 3.0.6 * Wed Jan 17 2024 Marcus Schäfer - Use raw channel fallback if pty setup failed In resume mode the firecracker pilot uses a vsock connection for the host <-> guest data transfer. On the guest the command is by default called in a new PTY. However if this is not possible e.g because the guest does not support pty allocation there should be a fallback allocating the standard channels directly. * Wed Jan 17 2024 Marcus Schäfer - Update documentation Don\'t use static arch names * Mon Jan 15 2024 Marcus Schäfer - Bump version: 3.0.4 → 3.0.5 * Mon Jan 15 2024 Marcus Schäfer - Make sure system mount point exists for sci Reboot, terminal allocation and pivot of a firecracker machine requires access to sysrq, pts devices and more. sci mounts all kernel filesystems but this requires the mountpoints /proc, /sys /dev, /dev/pts to be available. Some prebuild firecracker images comes without these mountpoints (non FHS compliant btw). With this commit we make sure that at registration time the image has this mountpoint such that the sci issued system mounts can succeed. * Tue Jan 09 2024 Marcus Schäfer - Complement copyright holder * Tue Jan 09 2024 Marcus Schäfer - Updates due to move from master to main Update workflows and documentation to match the branch move * Tue Jan 09 2024 Marcus Schäfer - Bump version: 3.0.3 → 3.0.4 * Wed Jan 03 2024 Marcus Schäfer - Update documentation Add more details on the main idea of this version of flake-pilot and provide a diagram to illustrate the use cases better * Tue Jan 02 2024 Marcus Schäfer - Update compilation git action Run compile step in the same way as it\'s done when compiling the package, e.g sci as static binary * Sun Dec 31 2023 Marcus Schäfer - Prevent use of socat in sci Replace external socat call in sci with rust implementation based on the pty, libc and vsock crates. This Fixes #8 * Sun Dec 31 2023 Marcus Schäfer - Fix workspace resolver Edition 2021 is used in several src setup which implies workspace resolver version 2. Make this a permanent setting and don\'t let it assume an implicit resolver version * Mon Nov 13 2023 Marcus Schäfer - Bump version: 3.0.2 → 3.0.3 * Mon Nov 13 2023 Marcus Schäfer - Fix package build * Mon Nov 13 2023 Marcus Schäfer - Bump version: 3.0.1 → 3.0.2 * Fri Nov 10 2023 Marcus Schäfer - make shellcheck happy * Fri Nov 10 2023 Marcus Schäfer - Add bash completion Add completion for flake-ctl. This Fixes #18 * Sat Oct 28 2023 Marcus Schäfer - Revert \"Delete kiwi-settings from build requires\" This reverts commit e5b8b146344cc1cf6736c51b2584031f80dbf6ba. * Sat Oct 28 2023 Marcus Schäfer - Delete kiwi-settings from build requires * Tue Oct 24 2023 Marcus Schäfer - Fixup documentation Fix URL references * Mon Oct 23 2023 Marcus Schäfer - Fixed clippy warning call of unwrap after checking its variant with is_some() * Mon Oct 23 2023 Marcus Schäfer - Update documentation Fix changed URL to example image * Wed Oct 11 2023 Marcus Schäfer - Update documentation Package location has changed * Sat Oct 07 2023 Marcus Schäfer - Force cleanup of resume type flakes In case a resume type flake has lost its cid metadata which can happen on e.g powerfail, the resume of the instance should cleanup the left over container instance and start from scratch. This Fixes #23 * Sat Oct 07 2023 Marcus Schäfer - Make sure perform() reports all execution data The perform function only included the caller arguments but did not provide stdour/stderr information in case of an unsuccessful invocation of the command * Sat Oct 07 2023 Marcus Schäfer - Update gcc static-pie workaround Apply for gcc-12 * Thu Sep 14 2023 Marcus Schäfer - Document contents of /etc/flakes Documentation for the system wide config file. This Fixes #17 * Thu Sep 14 2023 Marcus Schäfer - Bump version: 3.0.0 → 3.0.1 * Thu Sep 14 2023 Marcus Schäfer - Consolidate common code to IO mod * Thu Sep 14 2023 Marcus Schäfer - Add support for --include-path on all pilots Allow to provision files/directories. So far only tar archives could be used to provision arbitrary data to the instance * Wed Sep 13 2023 Marcus Schäfer - Make clippy happy on sci * Wed Sep 13 2023 Marcus Schäfer - Don\'t mix tests with implementation A matter of taste, but I value test code to be separated from the actual implementation code * Mon Sep 04 2023 Marcus Schäfer - Bump version: 2.2.26 → 3.0.0 * Sat Sep 02 2023 Marcus Schäfer - Added support for systemwide flake config Let podman and firecracker pilots read /etc/flakes.yml if present to allow configuration of several general settings. Proper defaults are encoded in case no data is provided * Thu Aug 31 2023 Marcus Schäfer - Bump version: 2.2.25 → 2.2.26 * Thu Aug 31 2023 Marcus Schäfer - Fixed firecracker serde schema Allowed values for cache_type are Writeback and Unsafe * Thu Aug 31 2023 Marcus Schäfer - Bump version: 2.2.24 → 2.2.25 * Thu Aug 31 2023 Marcus Schäfer - Fixed firecracker provision Check if overlay size is requested not only at creation time of the overlay filesystem image but also at usage time * Thu Aug 31 2023 Marcus Schäfer - Delete meta authors information The authors information at this point was used in the cli interface and printed on the console in the usage information. Exposing this information might be unwanted and the information is also printed in a not well formatted way. * Thu Aug 31 2023 Marcus Schäfer - Bump version: 2.2.23 → 2.2.24 * Thu Aug 31 2023 Marcus Schäfer - Fixup clippy warnings * Wed Aug 30 2023 Marcus Schäfer - Cleanup code Removed out of scope and unused poc code Fixed bumpversion setup to handle all Cargo.toml files Update Makefile for better target readability Fixed Cargo files to follow the major.minor dependency policy Fixed spec file due to removal of unused poc code * Wed Aug 30 2023 Marcus Schäfer - Move is_debug to common lib Along with the change update podman and firecracker pilots to make use of is_debug from the common space and print debug messages through the debug! macro. The former double formatting of the debug message broke the output display In addition to the debug changes also a method do_trace() was added to create trace reports. However, the method is currently not in use as I\'m still looking for a way to create a useful trace report without spreading do_trace() over the code * Tue Aug 29 2023 Marcus Schäfer - Better error message for fs::read_dir Added FlakeError for this condition. Related to Issue #9 * Tue Aug 29 2023 Marcus Schäfer - Bump version: 2.2.22 → 2.2.23 * Tue Aug 29 2023 Marcus Schäfer - Improve error handling for firecracker Ported upstream patches from Michael Meyer * Tue Aug 29 2023 Marcus Schäfer - Refactor error handling for command execution Apply Upstream patch from Michael Meyer which consolidates further methods mkdir and chmod in the common space and also moves error handling out of the podman pilot into the common space * Tue Aug 29 2023 Marcus Schäfer - Bump version: 2.2.21 → 2.2.22 * Mon Aug 28 2023 Marcus Schäfer - Add support for %silent pilot option Allow to switch off the progress spinner for the podman and firecracker pilots * Mon Aug 28 2023 Marcus Schäfer - Refactor pilot options handling Add methods to read pilot options into the common space and adapt firecracker and podman pilots to make use of them * Mon Aug 28 2023 Marcus Schäfer - podman-pilot cleanup changes Upstream patch from Michael Meyer which shortens some code parts. * Mon Aug 28 2023 Marcus Schäfer - Bump version: 2.2.20 → 2.2.21 * Mon Aug 28 2023 Marcus Schäfer - Firecracker sanity check The firecracker startup procedure in resume mode needs to setup the control channels prior launching the actual firecracker program to allow synchronisation of guest vs. host data flow. If there is no check that the firecracker binary exists we still perform all the pre setup and waiting calls and the actual error condition is only visible in debug mode. Therefore an early exit condition that checks if there is a firecracker binary found on the host improves the user experience. This Fixes #129 * Mon Aug 28 2023 Marcus Schäfer - Move errors to the common space Allow error handling to be used on all pilots and utils * Mon Aug 28 2023 Marcus Schäfer - Add static profile for building sci binary * Mon Aug 28 2023 Marcus Schäfer - Fix cargo setup Move profiles to the toplevel Fix contributors list and mail addresses Fix use of unused manifest key crate-type * Mon Aug 28 2023 Marcus Schäfer - Fix package build Source files from new common subdirectory were not added to the source tarball. Thus the compile stage failed * Mon Aug 28 2023 Marcus Schäfer - Consolidate actions workload files consistent naming, the same version of actions, no missing line endings * Mon Aug 28 2023 Marcus Schäfer - Bump version: 2.2.19 → 2.2.20 * Fri Aug 25 2023 Michael Meyer - Extract common code Start to refactor pilot code that is shared across multiple implementations into a common ground. The commit here adds a common way to handle sudo based command calls properly * Wed Aug 23 2023 Michael Meyer - Add logging for easier debugging * Tue Aug 22 2023 Marcus Schäfer - Refactor port allocation for UDS socket When using the firecracker-pilot in a resume type flake, the pilot creates a UDS socket for listening on data. Each of this socket connections requires a free port. The former implementation selects the socket by a random number within a given range. However, this is not a stable solution and the risk to select an already occupied port is high. This commit refactors the port allocation to FIRECRACKER_VSOCK_PORT_START + the PID of the pilot process. In addition the commit adds to allow to read runtime options which are only meant to be used for the pilot and should not interfere with the standard arguments passed along to the command call. For this purpose we deviate from the standard Unix/Linux commandline format and treat options passed as %name:value to be a pilot option. This commit adds the handling of the followng pilot option: %port:number Allows to specify a custom UDS port used for the VSOCK based communication channel in a firecracker flake configured for resume mode This Fixes #114 * Tue Aug 22 2023 Michael Meyer - Use serde to read config in firecracker-pilot Move firecracker to serde * Mon Aug 21 2023 Michael Meyer - Reduce source tarball size Remove unneeded files and hollow out all windows and wasm dependencie * Sat Aug 19 2023 Michael Meyer - Add integration testing based on the robot framework Implement a first collection of flake-ctl and engine tests to run as a github action. The implementation of the test uses the python based robot framework. The test matrix is expected to grow * Thu Aug 17 2023 Marcus Schäfer - Bump version: 2.2.18 → 2.2.19 * Thu Aug 17 2023 Michael Meyer - Use one top level Cargo definition Updated the Makefile and the .spec file to fit the new structure with a top level Cargo.toml This also reduces the package size by combining the vendored dependencies * Mon Aug 14 2023 Marcus Schäfer - Bump version: 2.2.17 → 2.2.18 * Mon Aug 14 2023 Marcus Schäfer - Revert \"Makefile Fix\" This reverts commit bebffd4f421b98c2d78e4d4117c4ae92fa135912. The package build was broken due to this commit and needs to be reverted. The original intend to consolidate the compilation into a more rust like structure is a good change but it needs to be done without breaking the existing package build. * Mon Aug 14 2023 Marcus Schäfer - Revert \"Fix man path\" This reverts commit ef7733f78019d89276ee05f00d647dab9c790139. * Mon Aug 14 2023 Michael Meyer - Fix man path * Mon Aug 14 2023 Michael Meyer - Update .gitignore * Fri Aug 11 2023 Michael Meyer - Makefile Fix * Fri Aug 11 2023 Michael Meyer - Flake ctl exit with a correct return code Add failure returncodes and use them depending on the success/failed state of the action Co-authored-by: Michael Meyer * Fri Aug 11 2023 Michael Meyer - Refactor error handling Created error types and replace all panics, unwraps and exits with errors Co-authored-by: Michael Meyer * Fri Aug 11 2023 Michael Meyer - Moved spinners to stderr * Mon Aug 07 2023 Marcus Schäfer - Keep comment format consistent Maybe nitpick but I think consistency makes things easier. I only adapted the comment block for this place in code as it was mine before. There are other places which I did not touch since I don\'t want to step on other peoples toes, but I recommend that we decide for one comment format and stick to it everywhere * Mon Aug 07 2023 Michael Meyer - podman-pilot: replace adhoc yaml with serde Use serde to read and validate the flake setup when calling podman-pilot. This is related to #128 Co-authored-by: Michael Meyer * Wed Jul 26 2023 Michael Meyer - match clippy action to othes * Fri Jul 14 2023 Marcus Schäfer - Bump version: 2.2.16 → 2.2.17 * Fri Jul 14 2023 Marcus Schäfer - Regression and partial revert from the clippy set The changes done to make clippy happy also changed the logic of the code at several places. This was exactly the reason why I wanted small reviewable pull requests. The commit here is a partial revert of the code prior the big clippy changes. The reason for the changes here is because the template data was was no longer imported and also options given on the commandline were no longer added to the flake yaml file. I reverted to the version before clippy and manually fixed all clippy issues while testing the code to be still functional. This is the result commit of this action. * Fri Jul 14 2023 Marcus Schäfer - Update flake-ctl man page The page was missing that we now also support firecracker * Sat Jul 08 2023 Marcus Schäfer - Use rst2man instead of pandoc to render man pages pandoc is pretty big and adds a lot of haskel lib requirements rst2man just requires python3-docutils and is more lightweight * Sat Jul 08 2023 Marcus Schäfer - Better sanity check for gcc static fix * Fri Jul 07 2023 Marcus Schäfer - Bump version: 2.2.15 → 2.2.16 * Fri Jul 07 2023 Marcus Schäfer - Fixed broken reading of resume config The clippy change introduced a regression on reading the resume option from the command. I guess a cut&paste bug * Fri Jul 07 2023 Marcus Schäfer - Fixed Makefile clean target make sure no stale Cargo.lock files will be packaged on make package * Fri Jul 07 2023 Marcus Schäfer - Bump version: 2.2.14 → 2.2.15 * Fri Jul 07 2023 Michael Meyer - Fixes to the code to make clippy happy Added linter checks via clippy and simplify the code at several places. Also activate a github action for automated checking * Fri Jul 07 2023 Marcus Schäfer - Clarify on license Add missing license information to update_changelog.py license is MIT in alignment with the overall flake-pilot license. The license setting is in agreement with the only copyright holder of the software which is the person of this signed commit. This Fixes #125 * Wed Jul 05 2023 Marcus Schäfer - Bump version: 2.2.13 → 2.2.14 * Wed Jul 05 2023 Marcus Schäfer - Rename oci-registry -> flake-registry For consistency reasons, all tools are named flake-XX and oci-registry is not only used for storing container images but also firecracker VMs * Wed Jul 05 2023 Marcus Schäfer - Bump version: 2.2.12 → 2.2.13 * Wed Jul 05 2023 Marcus Schäfer - Better error message for seek os-error * Tue Jul 04 2023 Marcus Schäfer - Bump version: 2.2.11 → 2.2.12 * Tue Jul 04 2023 Marcus Schäfer - Create flake tmp for new registries * Tue Jul 04 2023 Marcus Schäfer - Bump version: 2.2.10 → 2.2.11 * Tue Jul 04 2023 Marcus Schäfer - Handle potential error on seek/write The unconditional unwrap here is evil since it only reports unwrap on a null value of either seek() or write() fails. The real error message e.g \"no space left\" is hidden in this case * Mon Jul 03 2023 Marcus Schäfer - Bump version: 2.2.9 → 2.2.10 * Mon Jul 03 2023 Marcus Schäfer - Make sure to create flakes tmp with permissions * Mon Jul 03 2023 Marcus Schäfer - Bump version: 2.2.8 → 2.2.9 * Mon Jul 03 2023 Marcus Schäfer - Fixed dir creation Make sure to create the entire path * Mon Jul 03 2023 Marcus Schäfer - Bump version: 2.2.7 → 2.2.8 * Mon Jul 03 2023 Marcus Schäfer - Increase max retries on resume type VM When connecting to a resume type VM for the first time, the wait time was not long enough. Increasing the retry count will solve this issue. If after this delay the VM is still not responsive on the vsock it\'s likely an issue on the VM startup itself and ok to close. This Fixes #122 * Sun Jul 02 2023 Marcus Schäfer - Fix sync output in case of an error In case tar fails it prints relevant data to stderr. This information should be part of the debug output when calling with PILOT_DEBUG=1 * Sat Jul 01 2023 Marcus Schäfer - Move flake metadata dir to persistent location flakes metadata was written to /tmp, but this is a non persistent storage area (tmpfs). For resume type instances it is required to keep the information to allow resume a stopped container. This Fixes #119 * Fri Jun 30 2023 Marcus Schäfer - Add firecracker include provisioning This commit implements reading of the flake include section for the firecracker pilot. With the include tar support it\'s possible to provision any arbitrary data into the VM instance prior launch. For firecracker the include feature requires the use of an overlay. This Fixes #95 * Thu Jun 29 2023 Marcus Schäfer - Bump version: 2.2.6 → 2.2.7 * Thu Jun 29 2023 Marcus Schäfer - Don\'t apply gcc static fix on TW * Thu Jun 29 2023 Marcus Schäfer - Disable loop feature in sys_mount By default sys_mount supports loop devices. In sci we don\'t use them and for kernel 6.x the code does not compiled anymore and fails with: enum_(unnamed_at_/usr/include/linux/loop_h_16_1)\" is not a valid Ident * Tue Jun 27 2023 Bo Maryniuk - Add flake-ctl and podman-pilot licenses * Tue Jun 27 2023 Bo Maryniuk - Run SPDX sboms and list all vendor tree dependencies licenses * Tue Jun 27 2023 Bo Maryniuk - Add MIT licenses to the sub-packages * Mon Jun 26 2023 Marcus Schäfer - Bump version: 2.2.5 → 2.2.6 * Sat Jun 24 2023 Marcus Schäfer - Fixed sci command quoting in resume mode In resume mode sci calls commands through a vsock using socat EXEC. This commit makes sure that the quoting of the command string doesn\'t get lost and becomes effective at socket connection time. This Fixes #113 * Thu Jun 22 2023 Marcus Schäfer - Bump version: 2.2.4 → 2.2.5 * Thu Jun 22 2023 Marcus Schäfer - Added socat requirement * Thu Jun 22 2023 Marcus Schäfer - Bump version: 2.2.3 → 2.2.4 * Tue Jun 20 2023 Marcus Schäfer - Refactor sci and support resume mode The former implementation used the vsock channel to read the command, call it in a child and send the output back through the vsock channel. This works until the command is not interactive. With this refactor I propose a different way to handle the command execution. start vsock listener on VM_PORT, wait for command(s) in a loop A received command turns into an socat process calling the command with an expected listener Example: sudo socat UNIX-CONNECT:/run/sci_cmd_XXX.sock - CONNECT defaults::VM_PORT(52) - -> send the command to call and quit sudo socat VSOCK-CONNECT:2:exec_port EXEC:cmd - -> connects to the listener instance on the host (pilot) The above procedure got also implemeted as part of the firecracker-pilot resume code. This Fixes #87 * Tue Jun 20 2023 Marcus Schäfer - Added instance resume process to firecracker pilot When using a firecracker instance in resume mode the first call has to run firecracker in the background, open a connection to the vsock and send the command. Any subsequent call only sends commands to the existing instance. If the instance gets deleted the pilot has to check if the VM is still there and behave properly. Meaning vmid (PID) and uds socket file must be cleaned up prior launching a new instance. The commit here implements the processing of this workflow. It does not implement the actual connection to the instance and sending of commands. This will follow. As of now only debug messages telling what should happen are printed. This is related to Issue #87 * Mon Jun 19 2023 Marcus Schäfer - Change name of UDS socket for vsock communication The name of the uds socket was set to /run/sci_cmd_PID.sock The used PID was the firecracker process ID. This name doesn\'t make much sense because for one command registration there will always be only one dedicated firecracker process instance assigned. For the use case of --resume there can be multiple connections through the same uds socket * Mon Jun 19 2023 Marcus Schäfer - Add resume support to firecracker app registration Write sci_resume=1 to the boot cmdline arguments if --resume is set at app registration for the firecracker pilot. This is related to Issue #87 * Sun Jun 18 2023 Marcus Schäfer - Bump version: 2.2.2 → 2.2.3 * Sun Jun 18 2023 Marcus Schäfer - Fixed loading of vsock transport Within the guest the vsock virtio transport module must be loaded, not the vhost module * Fri Jun 16 2023 Marcus Schäfer - Cleanup sci on style and consistency Use a constant for the guest CID, properly pass the ok status in case of an error, reduce code duplication * Fri Jun 16 2023 Marcin Katulski - VSock communication on firecracker side in sci (#106) * VSock communication on firecracker side in sci * Fix the resume variable name * Fixes after review * Fixes after found bug * Removal of unnessecary debug log * Removing unnessecary counter * Thu Jun 15 2023 Marcin Katulski - FIX for wrongly handled CID in json configuration The CID in VM shall always be equall 3 as the connection generated by firecracker is vsock less connection, means static cid bound on vm to the unix domain socket bound on host * Fri Jun 09 2023 Marcus Schäfer - Add firecracker vsock at instance startup (#105) This commit adds the init code to create a vsock per instance. This is related to Issue #87 * Thu May 25 2023 Marcus Schäfer - Fix project link * Thu May 25 2023 Marcus Schäfer - update README * Thu May 25 2023 Marcus Schäfer - Update README * Thu May 25 2023 Marcus Schäfer - Update README * Wed May 24 2023 Marcus Schäfer - Bump version: 2.2.1 → 2.2.2 * Wed May 24 2023 Marcus Schäfer - Fix vm and container purge If used together it\'s required to sanity check in the different template types between vm and containers * Tue May 23 2023 Marcus Schäfer - Bump version: 2.2.0 → 2.2.1 * Tue May 23 2023 Marcus Schäfer - Fixed setup of firecracker registry layout For firecracker the layout looks like the following: /var/lib/firecracker/ ├── images └── storage The code in flake-ctl setting it up only cared for the images subdirectory and did not allow /var/lib/firecracker to be a symlink location * Mon May 22 2023 Marcus Schäfer - Bump version: 2.1.14 → 2.2.0 * Sun May 21 2023 Marcus Schäfer - Update README * Sun May 21 2023 Marcus Schäfer - Allow to disable networking at registration time * Sun May 21 2023 Marcus Schäfer - Update man page * Sat May 20 2023 Marcus Schäfer - Create overlayroot mount point on pull As the rootfs is used read-only in firecracker the overlayroot mountpoint cannot be created in sci * Fri May 19 2023 Marcus Schäfer - Make sure to create /overlayroot When using arbitrary rootfs images it might happen that there is no /overlayroot mountpoint which we use in the pilot to setup an overlay. In addition search for tools like switch_root in the former location /sbin to stay backward compatible with linux versions prior the /usr/sbin move. Newer linux versions still maintains symlinks from /sbin to /usr/sbin for compat reasons. * Fri May 19 2023 Marcus Schäfer - Package sci also in pilot Usually sci is provided as guestvm tool and the package gets installed as part of the rootfs building. But we also want to support adding sci to rootfs images which doesn\'t provide it. Therefore also provide sci in the pilot package that gets installed on the host * Thu May 18 2023 Marcus Schäfer - Support pulling image from components So far pulling a firecracker image was limited to the KIWI kis image type. With this commit it\'s also possible to pull an image from it\'s components; rootfs, kernel and optional initrd. This allows for example to make use of the firecracker hosted CI images or any other rootfs image in combination with some kernel/initrd. During the pull of such an image there is also a check for the sci binary inside of the rootfs. If it does not exist it gets added to the rootfs such that the firecracker-pilot can work with it. This Fixes #99 * Wed May 17 2023 Marcus Schäfer - Add network configuration guide Those parts of the network setup for firecracker instances that cannot be done in code (or out of scope for this project) are documented with this commit as one possible example This Fixes #76 * Wed May 17 2023 Marcus Schäfer - Build sci as static binary This would allow to incorporate it into any arbitrary rootfs * Tue May 16 2023 Andre Barthel - Revision of the sci man page * Tue May 16 2023 Marcus Schäfer - Bump version: 2.1.13 → 2.1.14 * Tue May 16 2023 Marcus Schäfer - Fixed off by one in byte_size for sparse size | |