### Verify FIPS Enabled Status Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/rockylinux-fips/README.md After installation, check the FIPS status by reading the `/proc/sys/crypto/fips_enabled` file. A value of `1` indicates FIPS is enabled. ```bash [root@localhost ~]# cat /proc/sys/crypto/fips_enabled 1 ``` ```bash [root@localhost ~]# uname -a Linux localhost 5.14.0-284.18.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 22 17:36:46 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux ``` -------------------------------- ### Cloud-Config for FIPS Installation Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/ubuntu-24.04-fips/README.md Use this cloud-config snippet to set the 'fips=1' kernel option during installation, ensuring FIPS compliance from the start. ```yaml #cloud-config install: # ... # Set grub options grub_options: # additional Kernel option cmdline to apply extra_cmdline: "fips=1" ``` -------------------------------- ### Verify FIPS Enabled Status Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/fedora-fips/README.md After installation, check the FIPS status by examining `/proc/sys/crypto/fips_enabled`. A value of `1` indicates FIPS is active. The `uname -a` command can also show FIPS-related kernel information. ```bash kairos@localhost:~$ cat /proc/sys/crypto/fips_enabled 1 ``` ```bash kairos@localhost:~$ uname -a Linux localhost 5.4.0-1007-fips #8-Ubuntu SMP Wed Jul 29 21:42:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ``` -------------------------------- ### Configure Cloud-Config for FIPS Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/rockylinux-fips/README.md Add `fips=1` to the `extra_cmdline` in your cloud-config file to enable FIPS mode during installation. SELinux must be explicitly disabled by adding `selinux=0`. ```yaml #cloud-config install: # ... # Set grub options grub_options: # additional Kernel option cmdline to apply extra_cmdline: "fips=1 selinux=0" ``` -------------------------------- ### Verify FIPS Enabled Status Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/ubuntu-24.04-fips/README.md After installation, check the 'fips_enabled' status and kernel version to confirm FIPS mode is active. ```bash kairos@localhost:~$ cat /proc/sys/crypto/fips_enabled 1 kairos@localhost:~$ uname -r 6.8.0-xx-fips ``` -------------------------------- ### Configure Cloud-Config for FIPS Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/fedora-fips/README.md Add `fips=1` to the `extra_cmdline` in your cloud-config file to enable FIPS mode during installation. SELinux must be disabled by setting `selinux=0` as it is not yet supported. ```yaml #cloud-config install: # ... # Set grub options grub_options: # additional Kernel option cmdline to apply extra_cmdline: "fips=1 selinux=0" ``` -------------------------------- ### Run YAML Linting on Linux Source: https://github.com/kairos-io/kairos/blob/master/CONTRIBUTING.md Execute a Dockerized YAML linting check on all .yml and .yaml files within the .github/workflows directory, excluding the examples subdirectory. This ensures adherence to YAML coding standards. ```bash find .github/workflows/ -path "./examples" -prune -o -name "*.yml" -or -name "*.yaml" -print | xargs -r -n1 docker run -v "$PWD":/work -w /work cytopia/yamllint ``` -------------------------------- ### Generate efivars.fd from JSON Source: https://github.com/kairos-io/kairos/blob/master/tests/assets/efivars.md Use this command to regenerate the efivars.fd file. It takes a base OVMF variables file, a JSON file with variable data, and outputs the compiled efivars.fd. Ensure the OVMF package is installed and paths are correct. ```bash virt-fw-vars -i /usr/share/OVMF/OVMF_VARS.fd --set-json efivars.json -o efivars.fd ``` -------------------------------- ### Build Unsigned Sysextension with sysext-bakery Source: https://github.com/kairos-io/kairos/blob/master/tests/assets/sysext/README.md Use the sysext-bakery script to quickly build a sysextension. Note that this method does not currently support signing or verity checks, making the resulting extensions incompatible with UKI. ```bash bake.sh SOURCE_DIR ``` -------------------------------- ### Build Verity+Signed Sysextension with systemd-repart Source: https://github.com/kairos-io/kairos/blob/master/tests/assets/sysext/README.md Use systemd-repart to create a verity+signed sysextension. Ensure the private key and certificate paths are correct for your build environment. ```bash systemd-repart -S -s SOURCE_DIR OUTPUT_FILE --private-key=tests/assets/keys/db.key --certificate=tests/assets/keys/db.pem ``` -------------------------------- ### Build Ubuntu Non-HWE Docker Image Source: https://github.com/kairos-io/kairos/blob/master/examples/builds/ubuntu-non-hwe/README.md Use this command to build a custom Ubuntu image without HWE kernels. Ensure you are in the correct directory within the Kairos repository. ```bash cd examples/byoi/ubuntu-non-hwe docker build -t ubuntu-non-hwe:22.04 . ``` -------------------------------- ### Add Upstream Remote Repository Source: https://github.com/kairos-io/kairos/blob/master/CONTRIBUTING.md Add the official Kairos repository as a remote named 'upstream' to your local clone. This is necessary for fetching updates from the main project. ```bash git remote add upstream git@github.com:kairos-io/kairos.git ``` -------------------------------- ### Commit Message with Issue and Label Source: https://github.com/kairos-io/kairos/blob/master/CONTRIBUTING.md Format commit messages to include a label indicating the type of change and the issue number it addresses. This helps in tracking contributions and their relation to specific issues. ```bash git commit -s -am ":seedling: Drop foo flag (fixes #123)" ``` -------------------------------- ### Rebase Changes to Upstream Master Source: https://github.com/kairos-io/kairos/blob/master/CONTRIBUTING.md Before submitting a pull request, rebase your local branch onto the upstream master branch to minimize merge conflicts. This command fetches the latest changes from the upstream repository and applies your local commits on top of them. ```bash git fetch upstream git rebase upstream/master ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.