Elemental is a tool for installing, configuring and updating operating system images from an OCI registry.
- Image Management: Manage and version your OS images.
- Deployment: Deploy an OS image to bare metal or virtual machines.
- Updates: Update an existing OS installation from a newer image.
- Extensibility: Extend the OS installation image with extensions.
- Building a Linux Image - for users and/or consumers interested in building Linux images.
- Image Build and Customization - for users and/or consumers interested in building images that are customized, extended and based on a specific product.
- Release Manifest Guide - for consumers interested in creating a release manifest for their product.
- Elemental and Ignition Integration - for consumers interested in understanding the nuances and capabalities of Ignition in the scope of Elemental.
make allThis will produce a build/ directory containing the elemental3 and elemental3ctl command-line interfaces.
For contributing to Elemental, please create a fork of the repository and send a Pull Request (PR). A number of GitHub Actions will be triggered on the PR and they need to pass.
Before opening a Pull Request, use golangci-lint fmt to format the code and golangci-lint run to execute linting steps that are configured in /.golangci.yml in the base directory of the repository.
Please make sure to follow these guidelines with regards to logging and error-handling:
- Avoid logging the very same error in multiple places on error-return
- Error logging must include at least one piece of detail, never a log without details
- Prefer logging in multiple lines rather than wrapping it into a single line
PRs will be reviewed by the maintainers and require two reviews without outstanding change-request to pass and become mergable.