The goal of Konvoy Image Builder (KIB) is to produce a common operating surface to run Konvoy across heterogeneous infrastructure. KIB relies on ansible to install software, configure, and sanitize systems for running Konvoy. Packer is used to build images for cloud environments. Goss is used to validate system’s are capable of running Konvoy.
Presently, KIB supports four OS families:
- Debian
- Red Hat
- Flatcar
- SUSE
ansible: contains the ansible playbooks, roles, and default variablesimages: contains image definitions for supported platforms. Presently, we provide AMI image definitions and generic image definitions. Generic image definitions are useful for preprovisioned infrastructureoverrides: contains variable overrides for Nvidia and FIPS. Unless adding an overlay feature, these files can safely be ignored.
konvoy-image build images/ami/centos-79.yamlSee konvoy-image
| aws-region | base-os | ami-id | image params |
|---|---|---|---|
| us-west-2 | centos 7 | ami-0bc38a003a647b084 | images/ami/centos-79.yaml |
The tooling consists of several languages, the main wrapper code is written in
go which is linted with golangci-lint. To lint the go files run:
make lintOther languages are linted with the help of
super-linter. To lint everything
else run:
make super-lintNOTE Konvoy Image Builder makes use of the embed feature of go 1.16.
super-linter currently uses go 1.15. It is expected that the go linter
will fail under super-linter, and is skipped for
CI.
Magefile tool is used to run konvoy image builder e2e tests.
In this example, we run the end-to-end test against the Centos 7.9 with air-gapped and fips configuration in AWS
runE2e "centos 7.9" "offline-fips" aws falseTo build the CLI command run:
make buildTo build the wrapper for testing.
make build-wrappercreates ./bin/konvoy-image-wrapper binary for testing using konvoy image wrapper.
For further development, see the Dev Docs.