From f3a57a1734396ad010a80670b787f9aa77a4710d Mon Sep 17 00:00:00 2001 From: Dimitris Karakasilis Date: Tue, 12 Nov 2024 16:59:32 +0200 Subject: [PATCH] 1633 no more enki dependencies (#102) * Port more code from enki so it's no longer a dependency Used this branch: https://github.com/kairos-io/enki/pull/219/files so we can also bundle some deps Signed-off-by: Dimitris Karakasilis * Remove remaining dependencies to enki Signed-off-by: Dimitris Karakasilis * Add 2 sec delay between mounting/unmounting subdir because the first mount might not be fully complete when we try to mount the thing inside it Signed-off-by: Dimitris Karakasilis --------- Signed-off-by: Dimitris Karakasilis --- e2e/build_uki_test.go | 2 + go.mod | 16 +- go.sum | 4 - internal/cmd/build-uki.go | 110 +++--- pkg/constants/boot_hybrid.img | Bin 0 -> 512 bytes pkg/constants/constants.go | 122 +++++++ pkg/constants/eltorito.img | Bin 0 -> 197444 bytes pkg/constants/grub_live_bios.cfg | 58 +++ pkg/ops/iso.go | 596 ++++++++++++++++++++++++++++++- pkg/utils/common.go | 316 ++++++++++++++++ pkg/utils/fs.go | 224 ++++++++++++ pkg/utils/utils_suite_test.go | 29 ++ pkg/utils/utils_test.go | 246 +++++++++++++ 13 files changed, 1637 insertions(+), 86 deletions(-) create mode 100644 pkg/constants/boot_hybrid.img create mode 100644 pkg/constants/constants.go create mode 100644 pkg/constants/eltorito.img create mode 100644 pkg/constants/grub_live_bios.cfg create mode 100644 pkg/utils/common.go create mode 100644 pkg/utils/fs.go create mode 100644 pkg/utils/utils_suite_test.go create mode 100644 pkg/utils/utils_test.go diff --git a/e2e/build_uki_test.go b/e2e/build_uki_test.go index c5cd36d..22788fb 100644 --- a/e2e/build_uki_test.go +++ b/e2e/build_uki_test.go @@ -133,9 +133,11 @@ func runCommandInIso(auroraboot *Auroraboot, isoFile, command string) string { set -e mkdir -p /tmp/iso /tmp/efi mount -v -o loop %[1]s /tmp/iso 2>&1 > /dev/null +sleep 2 mount -v -o loop /tmp/iso/efiboot.img /tmp/efi 2>&1 > /dev/null %[2]s umount /tmp/efi 2>&1 > /dev/null +sleep 2 umount /tmp/iso 2>&1 > /dev/null `, isoFile, command)) Expect(err).ToNot(HaveOccurred(), out) diff --git a/go.mod b/go.mod index 350fa4d..74fe849 100644 --- a/go.mod +++ b/go.mod @@ -8,12 +8,14 @@ godebug x509negativeserial=1 require ( github.com/cavaliergopher/grab/v3 v3.0.1 + github.com/containerd/containerd v1.7.23 github.com/distribution/reference v0.6.0 github.com/foxboron/go-uefi v0.0.0-20241017190036-fab4fdf2f2f3 github.com/foxboron/sbctl v0.0.0-20240526163235-64e649b31c8e + github.com/gofrs/uuid v4.4.0+incompatible + github.com/google/go-containerregistry v0.20.2 github.com/google/uuid v1.6.0 github.com/hashicorp/go-multierror v1.1.1 - github.com/kairos-io/enki v0.2.2 github.com/kairos-io/go-ukify v0.2.5 github.com/kairos-io/kairos-agent/v2 v2.15.4 github.com/kairos-io/kairos-sdk v0.6.1 @@ -23,8 +25,12 @@ require ( github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.35.1 github.com/otiai10/copy v1.14.0 + github.com/sanity-io/litter v1.5.5 github.com/spectrocloud-labs/herd v0.4.2 github.com/spectrocloud/peg v0.0.0-20240405075800-c5da7125e30f + github.com/spf13/viper v1.19.0 + github.com/twpayne/go-vfs/v4 v4.3.0 + github.com/twpayne/go-vfs/v5 v5.0.4 github.com/u-root/u-root v0.14.0 github.com/urfave/cli/v2 v2.27.5 golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c @@ -47,13 +53,13 @@ require ( github.com/StackExchange/wmi v1.2.1 // indirect github.com/avast/retry-go v3.0.0+incompatible // indirect github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect + github.com/benbjohnson/clock v1.3.0 // indirect github.com/bramvdbogaerde/go-scp v1.2.0 // indirect github.com/cavaliergopher/grab v2.0.0+incompatible // indirect github.com/cloudflare/circl v1.3.9 // indirect github.com/codingsince1985/checksum v1.2.4 // indirect github.com/containerd/cgroups/v3 v3.0.3 // indirect github.com/containerd/console v1.0.4 // indirect - github.com/containerd/containerd v1.7.23 // indirect github.com/containerd/continuity v0.4.4 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect @@ -89,13 +95,11 @@ require ( github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gofrs/flock v0.8.1 // indirect - github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/certificate-transparency-go v1.1.2 // indirect github.com/google/go-attestation v0.5.1 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/go-containerregistry v0.20.2 // indirect github.com/google/go-tpm v0.9.1 // indirect github.com/google/go-tspi v0.3.0 // indirect github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect @@ -156,7 +160,6 @@ require ( github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/samber/lo v1.38.1 // indirect - github.com/sanity-io/litter v1.5.5 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect github.com/secDre4mer/pkcs7 v0.0.0-20240322103146-665324a4461d // indirect @@ -170,15 +173,12 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.19.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/swaggest/jsonschema-go v0.3.62 // indirect github.com/swaggest/refl v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/tredoe/osutil v1.5.0 // indirect - github.com/twpayne/go-vfs/v4 v4.3.0 // indirect - github.com/twpayne/go-vfs/v5 v5.0.4 // indirect github.com/u-root/uio v0.0.0-20240209044354-b3d14b93376a // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/vbatts/tar-split v0.11.3 // indirect diff --git a/go.sum b/go.sum index 2d2aeec..545d8ed 100644 --- a/go.sum +++ b/go.sum @@ -649,10 +649,6 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kairos-io/enki v0.2.2 h1:p2KtQtyE7v9wHwrACNUs1l+uiOjhY9MNYLQWuQppg/0= -github.com/kairos-io/enki v0.2.2/go.mod h1:IwIUxCd91CLpJLjlpAK9o8X5Ftubfr2yTBd8rL+72kA= -github.com/kairos-io/go-ukify v0.2.4 h1:1rYfPl9ODChePL3g/TC3SYG66mI45RWQGd3GYlzx9Nk= -github.com/kairos-io/go-ukify v0.2.4/go.mod h1:xGAR9EDOo459L7g8AixVaZQHi9ctGy6/Qk44nXJ1TVw= github.com/kairos-io/go-ukify v0.2.5 h1:3ohFO1FhYKbeB/NSsgaq/05CHv1F+/SX1PGDNexL7is= github.com/kairos-io/go-ukify v0.2.5/go.mod h1:xGAR9EDOo459L7g8AixVaZQHi9ctGy6/Qk44nXJ1TVw= github.com/kairos-io/kairos-agent/v2 v2.15.4 h1:hAsFEamXuoV8IYg5MSX3PE0wK4OHmlb94daF1Mrjwhc= diff --git a/internal/cmd/build-uki.go b/internal/cmd/build-uki.go index 7bace8b..d4ae2ac 100644 --- a/internal/cmd/build-uki.go +++ b/internal/cmd/build-uki.go @@ -13,9 +13,9 @@ import ( "sort" "strings" - enkiconfig "github.com/kairos-io/enki/pkg/config" - enkiconstants "github.com/kairos-io/enki/pkg/constants" - enkiutils "github.com/kairos-io/enki/pkg/utils" + "github.com/kairos-io/AuroraBoot/pkg/constants" + "github.com/kairos-io/AuroraBoot/pkg/ops" + "github.com/kairos-io/AuroraBoot/pkg/utils" "github.com/kairos-io/go-ukify/pkg/uki" "github.com/kairos-io/kairos-agent/v2/pkg/elemental" v1 "github.com/kairos-io/kairos-agent/v2/pkg/types/v1" @@ -63,8 +63,8 @@ var BuildUKICmd = cli.Command{ &cli.StringFlag{ Name: "output-type", Aliases: []string{"t"}, - Value: string(enkiconstants.DefaultOutput), - Usage: fmt.Sprintf("Artifact output type [%s]", strings.Join(enkiconstants.OutPutTypes(), ", ")), + Value: string(constants.DefaultOutput), + Usage: fmt.Sprintf("Artifact output type [%s]", strings.Join(constants.OutPutTypes(), ", ")), }, &cli.StringFlag{ Name: "overlay-rootfs", @@ -141,7 +141,7 @@ var BuildUKICmd = cli.Command{ } artifact := ctx.String("output-type") - if artifact != string(enkiconstants.DefaultOutput) && artifact != string(enkiconstants.IsoOutput) && artifact != string(enkiconstants.ContainerOutput) { + if artifact != string(constants.DefaultOutput) && artifact != string(constants.IsoOutput) && artifact != string(constants.ContainerOutput) { return fmt.Errorf("invalid output type: %s", artifact) } @@ -165,7 +165,7 @@ var BuildUKICmd = cli.Command{ } // Check if we are setting a different artifact and overlay-iso is set - if artifact != string(enkiconstants.IsoOutput) { + if artifact != string(constants.IsoOutput) { return fmt.Errorf("overlay-iso is only supported for iso artifacts") } } @@ -199,9 +199,9 @@ var BuildUKICmd = cli.Command{ logger := sdkTypes.NewKairosLogger("auroraboot", logLevel, false) // TODO: Get rid of "configs". - config := enkiconfig.NewConfig( - enkiconfig.WithImageExtractor(v1.OCIImageExtractor{}), - enkiconfig.WithLogger(logger), + config := ops.NewConfig( + ops.WithImageExtractor(v1.OCIImageExtractor{}), + ops.WithLogger(logger), ) if err := checkBuildUKIDeps(config.Arch); err != nil { @@ -210,7 +210,7 @@ var BuildUKICmd = cli.Command{ // artifactsTempDir Is where we copy the kernel and initramfs files // So only artifacts that are needed to build the efi, so we dont pollute the sourceDir - artifactsTempDir, err := os.MkdirTemp("", "enki-build-uki-artifacts-") + artifactsTempDir, err := os.MkdirTemp("", "auroraboot-build-uki-artifacts-") if err != nil { return err } @@ -222,7 +222,7 @@ var BuildUKICmd = cli.Command{ // lets not pollute it // TODO: if img is a dir, we should not copy or rsync anything and just use that dir as source? - sourceDir, err := os.MkdirTemp("", "enki-build-uki-") + sourceDir, err := os.MkdirTemp("", "auroraboot-build-uki-") if err != nil { return err } @@ -305,12 +305,12 @@ var BuildUKICmd = cli.Command{ // Get systemd-boot info (we can sign it at the same time) var systemdBoot string var outputSystemdBootEfi string - if enkiutils.IsAmd64(config.Arch) { - systemdBoot = enkiconstants.UkiSystemdBootx86 - outputSystemdBootEfi = enkiconstants.EfiFallbackNamex86 - } else if enkiutils.IsArm64(config.Arch) { - systemdBoot = enkiconstants.UkiSystemdBootArm - outputSystemdBootEfi = enkiconstants.EfiFallbackNameArm + if utils.IsAmd64(config.Arch) { + systemdBoot = constants.UkiSystemdBootx86 + outputSystemdBootEfi = constants.EfiFallbackNamex86 + } else if utils.IsArm64(config.Arch) { + systemdBoot = constants.UkiSystemdBootArm + outputSystemdBootEfi = constants.EfiFallbackNameArm } else { return fmt.Errorf("unsupported arch: %s", config.Arch) } @@ -354,7 +354,7 @@ var BuildUKICmd = cli.Command{ } switch ctx.String("output-type") { - case string(enkiconstants.IsoOutput): + case string(constants.IsoOutput): absolutePath, err := filepath.Abs(ctx.String("overlay-iso")) if err != nil { return fmt.Errorf("converting overlay-iso to absolute path: %w", err) @@ -362,7 +362,7 @@ var BuildUKICmd = cli.Command{ if err := createISO(e, sourceDir, ctx.String("output-dir"), absolutePath, ctx.String("keys"), kairosVersion, ctx.String("name"), entries, logger); err != nil { return err } - case string(enkiconstants.ContainerOutput): + case string(constants.ContainerOutput): // First create the files if err := createArtifact(sourceDir, ctx.String("output-dir"), ctx.String("keys"), entries, logger); err != nil { return err @@ -376,7 +376,7 @@ var BuildUKICmd = cli.Command{ if err := removeUkiFiles(ctx.String("output-dir"), ctx.String("keys"), entries); err != nil { return err } - case string(enkiconstants.DefaultOutput): + case string(constants.DefaultOutput): if err := createArtifact(sourceDir, ctx.String("output-dir"), ctx.String("keys"), entries, logger); err != nil { return err } @@ -420,15 +420,15 @@ func checkBuildUKIDeps(arch string) error { } func getEfiNeededFiles(arch string) ([]string, error) { - if enkiutils.IsAmd64(arch) { + if utils.IsAmd64(arch) { return []string{ - enkiconstants.UkiSystemdBootStubx86, - enkiconstants.UkiSystemdBootx86, + constants.UkiSystemdBootStubx86, + constants.UkiSystemdBootx86, }, nil - } else if enkiutils.IsArm64(arch) { + } else if utils.IsArm64(arch) { return []string{ - enkiconstants.UkiSystemdBootStubArm, - enkiconstants.UkiSystemdBootArm, + constants.UkiSystemdBootStubArm, + constants.UkiSystemdBootArm, }, nil } else { return nil, fmt.Errorf("unsupported arch: %s", arch) @@ -622,10 +622,10 @@ func ZstdFile(sourcePath, targetPath string) error { } func getEfiStub(arch string) (string, error) { - if enkiutils.IsAmd64(arch) { - return enkiconstants.UkiSystemdBootStubx86, nil - } else if enkiutils.IsArm64(arch) { - return enkiconstants.UkiSystemdBootStubArm, nil + if utils.IsAmd64(arch) { + return constants.UkiSystemdBootStubx86, nil + } else if utils.IsArm64(arch) { + return constants.UkiSystemdBootStubArm, nil } else { return "", nil } @@ -635,9 +635,9 @@ func createConfFiles(sourceDir, cmdline, title, finalEfiName, version string, in // This is stored in the config var extraCmdline string // For the config title we get only the extra cmdline we added, no replacement of spaces with underscores needed - extraCmdline = strings.TrimSpace(strings.TrimPrefix(cmdline, enkiconstants.UkiCmdline)) + extraCmdline = strings.TrimSpace(strings.TrimPrefix(cmdline, constants.UkiCmdline)) // For the default install entry, do not add anything on the config - if extraCmdline == enkiconstants.UkiCmdlineInstall { + if extraCmdline == constants.UkiCmdlineInstall { extraCmdline = "" } @@ -675,7 +675,7 @@ func createSystemdConf(dir, defaultEntry, secureBootEnroll string) error { } else { // Get the generic efi file that we produce from the default cmdline // This is the one name that has nothing added, just the version - finalEfiConf = NameFromCmdline(enkiconstants.ArtifactBaseName, enkiconstants.UkiCmdline+" "+enkiconstants.UkiCmdlineInstall) + ".conf" + finalEfiConf = NameFromCmdline(constants.ArtifactBaseName, constants.UkiCmdline+" "+constants.UkiCmdlineInstall) + ".conf" } // Set that as default selection for booting @@ -687,9 +687,9 @@ func createSystemdConf(dir, defaultEntry, secureBootEnroll string) error { return nil } -func createISO(e *elemental.Elemental, sourceDir, outputDir, overlayISO, keysDir, kairosVersion, artifactName string, entries []enkiutils.BootEntry, logger sdkTypes.KairosLogger) error { +func createISO(e *elemental.Elemental, sourceDir, outputDir, overlayISO, keysDir, kairosVersion, artifactName string, entries []utils.BootEntry, logger sdkTypes.KairosLogger) error { // isoDir is where we generate the img file. We pass this dir to xorriso. - isoDir, err := os.MkdirTemp("", "enki-iso-dir-") + isoDir, err := os.MkdirTemp("", "auroraboot-iso-dir-") if err != nil { return err } @@ -758,7 +758,7 @@ func createISO(e *elemental.Elemental, sourceDir, outputDir, overlayISO, keysDir return nil } -func imageFiles(sourceDir, keysDir string, entries []enkiutils.BootEntry) (map[string][]string, error) { +func imageFiles(sourceDir, keysDir string, entries []utils.BootEntry) (map[string][]string, error) { // the keys are the target dirs // the values are the source files that should be copied into the target dir data := map[string][]string{ @@ -855,7 +855,7 @@ func copyFilesToImg(imgFile string, filesMap map[string][]string) error { // Create artifact just outputs the files from the sourceDir to the outputDir // Maintains the same structure as the sourceDir which is the final structure we want -func createArtifact(sourceDir, outputDir, keysDir string, entries []enkiutils.BootEntry, logger sdkTypes.KairosLogger) error { +func createArtifact(sourceDir, outputDir, keysDir string, entries []utils.BootEntry, logger sdkTypes.KairosLogger) error { filesMap, err := imageFiles(sourceDir, keysDir, entries) if err != nil { return err @@ -908,7 +908,7 @@ func createContainer(sourceDir, outputDir, artifactName, version string, logger return err } // Create tarball from sourceDir - err = enkiutils.Tar(sourceDir, temp) + err = utils.Tar(sourceDir, temp) if err != nil { return err } @@ -923,7 +923,7 @@ func createContainer(sourceDir, outputDir, artifactName, version string, logger if artifactName != "" { tarName = fmt.Sprintf("%s.tar", artifactName) } - err = enkiutils.CreateTar(logger, temp.Name(), finalImage, tarName, arch, os) + err = utils.CreateTar(logger, temp.Name(), finalImage, tarName, arch, os) if err != nil { return err } @@ -933,7 +933,7 @@ func createContainer(sourceDir, outputDir, artifactName, version string, logger // removeUkiFiles removes all the files and directories inside the output directory that match our filesMap // so this should only remove the generated intermediate artifacts that we use to build the container -func removeUkiFiles(outputDir, keysDir string, entries []enkiutils.BootEntry) error { +func removeUkiFiles(outputDir, keysDir string, entries []utils.BootEntry) error { filesMap, _ := imageFiles(outputDir, keysDir, entries) for dir, files := range filesMap { for _, f := range files { @@ -957,33 +957,33 @@ func removeUkiFiles(outputDir, keysDir string, entries []enkiutils.BootEntry) er // For each cmdline passed, we generate a uki file with that cmdline // extend-cmdline will just extend the default cmdline so we only create one efi file // extra-cmdline will create a new efi file for each cmdline passed -func GetUkiCmdline(cmdlineExtend, bootBranding string, extraCmdlines []string) []enkiutils.BootEntry { - defaultCmdLine := enkiconstants.UkiCmdline + " " + enkiconstants.UkiCmdlineInstall +func GetUkiCmdline(cmdlineExtend, bootBranding string, extraCmdlines []string) []utils.BootEntry { + defaultCmdLine := constants.UkiCmdline + " " + constants.UkiCmdlineInstall // Extend only if cmdlineExtend != "" { cmdline := defaultCmdLine + " " + cmdlineExtend - return []enkiutils.BootEntry{{ + return []utils.BootEntry{{ Cmdline: cmdline, Title: bootBranding, - FileName: NameFromCmdline(enkiconstants.ArtifactBaseName, cmdline), + FileName: NameFromCmdline(constants.ArtifactBaseName, cmdline), }} } // default entry - result := []enkiutils.BootEntry{{ + result := []utils.BootEntry{{ Cmdline: defaultCmdLine, Title: bootBranding, - FileName: NameFromCmdline(enkiconstants.ArtifactBaseName, defaultCmdLine), + FileName: NameFromCmdline(constants.ArtifactBaseName, defaultCmdLine), }} // extra for _, extra := range extraCmdlines { cmdline := defaultCmdLine + " " + extra - result = append(result, enkiutils.BootEntry{ + result = append(result, utils.BootEntry{ Cmdline: cmdline, Title: bootBranding, - FileName: NameFromCmdline(enkiconstants.ArtifactBaseName, cmdline), + FileName: NameFromCmdline(constants.ArtifactBaseName, cmdline), }) } @@ -991,13 +991,13 @@ func GetUkiCmdline(cmdlineExtend, bootBranding string, extraCmdlines []string) [ } // GetUkiSingleCmdlines returns the single-efi-cmdline as passed by the user. -func GetUkiSingleCmdlines(bootBranding string, cmdlines []string, logger sdkTypes.KairosLogger) []enkiutils.BootEntry { - result := []enkiutils.BootEntry{} +func GetUkiSingleCmdlines(bootBranding string, cmdlines []string, logger sdkTypes.KairosLogger) []utils.BootEntry { + result := []utils.BootEntry{} // extra - defaultCmdLine := enkiconstants.UkiCmdline + " " + enkiconstants.UkiCmdlineInstall + defaultCmdLine := constants.UkiCmdline + " " + constants.UkiCmdlineInstall for _, userValue := range cmdlines { - bootEntry := enkiutils.BootEntry{} + bootEntry := utils.BootEntry{} before, after, hasTitle := strings.Cut(userValue, ":") if hasTitle { @@ -1031,9 +1031,9 @@ func GetUkiSingleCmdlines(bootBranding string, cmdlines []string, logger sdkType // but it can easily be used to identify the efi file and the conf file. // All names are returns in lowercase because FAT doesn't handle case in a predictable way. func NameFromCmdline(basename, cmdline string) string { - cmdlineForEfi := strings.TrimSpace(strings.TrimPrefix(cmdline, enkiconstants.UkiCmdline)) + cmdlineForEfi := strings.TrimSpace(strings.TrimPrefix(cmdline, constants.UkiCmdline)) // For the default install entry, do not add anything on the efi name - if cmdlineForEfi == enkiconstants.UkiCmdlineInstall { + if cmdlineForEfi == constants.UkiCmdlineInstall { cmdlineForEfi = "" } // Although only slashes are truly forbidden, we also replace other characters, diff --git a/pkg/constants/boot_hybrid.img b/pkg/constants/boot_hybrid.img new file mode 100644 index 0000000000000000000000000000000000000000..d3c63409e744d78ce7ffca5ad84a4e38d004979b GIT binary patch literal 512 zcmaEzJOKxI?WrQf&&d$9PrAnNz*%9pE}oW?r2_jbYhIKvzO-d@%gHY&sASm9P|$bS z@b(TyrmYOy7|se8UEapH)&J!T1_p)(AO?f~zh1L`JJe7DBnnEHHZ{DetYKgP<( z7Z!&Om;aqEOvhOS7}C1sHq@qd#&7@`TR;q+<1TCr1zVhe&R_*P>~+}|jzwKB@%72G6pjrIeE*^Zu)bXO@i$kXi2miK12VO9xb+V)_1e(Tq zpwusIA<%roOKIOtIxd2!5*BM0j#~472Rn`$960!biQ{0$g{Y2Wh%f+JEZ1{5L2f4l zW8ZDVZ~GY<`i}kiyi`8%zgkqyzP8%e%=@O+zA$0fH>>uA9>ZCQ*Z eltorito.img + +Important things in the grub image creation: + - -O i386-pc is the architecture we want to build the image for. Bios is i386 + - -p is the prefix dir, this is where grub will start searching for things, including the grub.cfg config, when it boots + - -d is the current dir where modules and images are. Usually this is automatically set so it can be dropped + - the list at the end are the modules to bundle for grub. Honestly the list is not too big and it can probably be dropped to like half for the livecd + as it only uses linux, echo, font, video ones and boot. But it doesnt hurt to have extra modules. +*/ +//go:embed eltorito.img +var Eltorito []byte + +// BootHybrid is boot_hybrid.img which comes bundled with grub +// Its ASM to boot from the grub image embedded +// You can check its source here: https://github.com/rhboot/grub2/blob/fedora-39/grub-core/boot/i386/pc/cdboot.S +// +//go:embed boot_hybrid.img +var BootHybrid []byte + +// GrubLiveBiosCfg is the livecd config for BIOS boot +// +//go:embed grub_live_bios.cfg +var GrubLiveBiosCfg []byte + +type UkiOutput string + +const ( + IsoEFIPath = "/boot/uefi.img" + EfiBootPath = "/EFI/BOOT" + EfiLabel = "COS_GRUB" + EfiFs = "vfat" + IsoRootFile = "rootfs.squashfs" + ISOLabel = "COS_LIVE" + ShimEfiDest = EfiBootPath + "/bootx64.efi" + ShimEfiArmDest = EfiBootPath + "/bootaa64.efi" + BuildImgName = "elemental" + GrubCfg = "grub.cfg" + GrubPrefixDir = "/boot/grub2" + GrubEfiCfg = "search --no-floppy --file --set=root " + IsoKernelPath + + "\nset prefix=($root)" + GrubPrefixDir + + "\nconfigfile $prefix/" + GrubCfg + + IsoBootCatalog = "/boot/boot.catalog" + IsoHybridMBR = "/boot/boot_hybrid.img" + IsoBootFile = "/boot/eltorito.img" + + // These paths are arbitrary but coupled to grub.cfg + IsoKernelPath = "/boot/kernel" + IsoInitrdPath = "/boot/initrd" + + // Default directory and file fileModes + DirPerm = os.ModeDir | os.ModePerm + FilePerm = 0666 + NoWriteDirPerm = 0555 | os.ModeDir + TempDirPerm = os.ModePerm | os.ModeSticky | os.ModeDir + + ArchArm64 = "arm64" + Archx86 = "x86_64" + ArchAmd64 = "amd64" + Archaarch64 = "aarch64" + + UkiCmdline = "console=ttyS0 console=tty1 net.ifnames=1 rd.immucore.oemlabel=COS_OEM rd.immucore.oemtimeout=2 rd.immucore.uki selinux=0 panic=5 rd.shell=0 systemd.crash_reboot=yes" + UkiCmdlineInstall = "install-mode" + UkiSystemdBootx86 = "/usr/kairos/systemd-bootx64.efi" + UkiSystemdBootArm = "/usr/kairos/systemd-bootaa64.efi" + UkiSystemdBootStubx86 = "/usr/kairos/linuxx64.efi.stub" + UkiSystemdBootStubArm = "/usr/kairos/linuxaa64.efi.stub" + + EfiFallbackNamex86 = "BOOTX64.EFI" + EfiFallbackNameArm = "BOOTAA64.EFI" + + ArtifactBaseName = "norole" +) + +const IsoOutput UkiOutput = "iso" +const ContainerOutput UkiOutput = "container" +const DefaultOutput UkiOutput = "uki" + +func OutPutTypes() []string { + return []string{string(IsoOutput), string(ContainerOutput), string(DefaultOutput)} +} + +func GetXorrisoBooloaderArgs(root string) []string { + args := []string{ + "-boot_image", "grub", fmt.Sprintf("bin_path=%s", IsoBootFile), + "-boot_image", "grub", fmt.Sprintf("grub2_mbr=%s/%s", root, IsoHybridMBR), + "-boot_image", "grub", "grub2_boot_info=on", + "-boot_image", "any", "partition_offset=16", + "-boot_image", "any", fmt.Sprintf("cat_path=%s", IsoBootCatalog), + "-boot_image", "any", "cat_hidden=on", + "-boot_image", "any", "boot_info_table=on", + "-boot_image", "any", "platform_id=0x00", + "-boot_image", "any", "emul_type=no_emulation", + "-boot_image", "any", "load_size=2048", + "-append_partition", "2", "0xef", filepath.Join(root, IsoEFIPath), + "-boot_image", "any", "next", + "-boot_image", "any", "efi_path=--interval:appended_partition_2:all::", + "-boot_image", "any", "platform_id=0xef", + "-boot_image", "any", "emul_type=no_emulation", + } + return args +} + +// GetDefaultSquashfsOptions returns the default options to use when creating a squashfs +func GetDefaultSquashfsOptions() []string { + return []string{"-b", "1024k"} +} diff --git a/pkg/constants/eltorito.img b/pkg/constants/eltorito.img new file mode 100644 index 0000000000000000000000000000000000000000..fa17ea64c1a5b9b1a7f2017af4d35346199c56ba GIT binary patch literal 197444 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

jt|a^Nvt-i}ha&aghIF}xSh{;{W5Z?%9H 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�%$ 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 ?1p+p76#)UK6FAW3Xjhph?%^9bDD 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 10 { + randmu.Lock() + rand = reseed() + randmu.Unlock() + } + continue + } + if err == nil { + name = try + } + break + } + return +} + +// Random number state. +// We generate random temporary file names so that there's a good +// chance the file doesn't exist yet - keeps the number of tries in +// TempFile to a minimum. +var rand uint32 +var randmu sync.Mutex + +func reseed() uint32 { + return uint32(time.Now().UnixNano() + int64(os.Getpid())) +} + +func nextRandom() string { + randmu.Lock() + r := rand + if r == 0 { + r = reseed() + } + r = r*1664525 + 1013904223 // constants from Numerical Recipes + rand = r + randmu.Unlock() + return strconv.Itoa(int(1e9 + r%1e9))[1:] +} + +// CopyFile Copies source file to target file using Fs interface. If target +// is directory source is copied into that directory using source name file. +func CopyFile(fs v1.FS, source string, target string) (err error) { + return ConcatFiles(fs, []string{source}, target) +} + +// IsDir check if the path is a dir +func IsDir(fs v1.FS, path string) (bool, error) { + fi, err := fs.Stat(path) + if err != nil { + return false, err + } + return fi.IsDir(), nil +} + +// ConcatFiles Copies source files to target file using Fs interface. +// Source files are concatenated into target file in the given order. +// If target is a directory source is copied into that directory using +// 1st source name file. +func ConcatFiles(fs v1.FS, sources []string, target string) (err error) { + if len(sources) == 0 { + return fmt.Errorf("Empty sources list") + } + if dir, _ := IsDir(fs, target); dir { + target = filepath.Join(target, filepath.Base(sources[0])) + } + + targetFile, err := fs.Create(target) + if err != nil { + return err + } + defer func() { + if err == nil { + err = targetFile.Close() + } else { + _ = fs.Remove(target) + } + }() + + var sourceFile iofs.File + for _, source := range sources { + sourceFile, err = fs.Open(source) + if err != nil { + break + } + _, err = io.Copy(targetFile, sourceFile) + if err != nil { + break + } + err = sourceFile.Close() + if err != nil { + break + } + } + + return err +} + +// DirSize returns the accumulated size of all files in folder +func DirSize(fs v1.FS, path string) (int64, error) { + var size int64 + err := vfs.Walk(fs, path, func(_ string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if !info.IsDir() { + size += info.Size() + } + return err + }) + return size, err +} + +// Check if a file or directory exists. +func Exists(fs v1.FS, path string) (bool, error) { + _, err := fs.Stat(path) + if err == nil { + return true, nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +// CalcFileChecksum opens the given file and returns the sha256 checksum of it. +func CalcFileChecksum(fs v1.FS, fileName string) (string, error) { + f, err := fs.Open(fileName) + if err != nil { + return "", err + } + defer f.Close() + + h := sha256.New() + if _, err := io.Copy(h, f); err != nil { + return "", err + } + + return fmt.Sprintf("%x", h.Sum(nil)), nil +} diff --git a/pkg/utils/utils_suite_test.go b/pkg/utils/utils_suite_test.go new file mode 100644 index 0000000..ec88947 --- /dev/null +++ b/pkg/utils/utils_suite_test.go @@ -0,0 +1,29 @@ +/* +Copyright © 2021 SUSE LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package utils_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestWhitebox(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Utils test suite") +} diff --git a/pkg/utils/utils_test.go b/pkg/utils/utils_test.go new file mode 100644 index 0000000..984e17f --- /dev/null +++ b/pkg/utils/utils_test.go @@ -0,0 +1,246 @@ +/* +Copyright © 2021 SUSE LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package utils_test + +import ( + "errors" + "fmt" + "os" + "strings" + + "github.com/kairos-io/AuroraBoot/pkg/constants" + "github.com/kairos-io/AuroraBoot/pkg/utils" + v1mock "github.com/kairos-io/kairos-agent/v2/tests/mocks" + sdkTypes "github.com/kairos-io/kairos-sdk/types" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + "github.com/spf13/viper" + "github.com/twpayne/go-vfs/v5" + "github.com/twpayne/go-vfs/v5/vfst" +) + +var _ = Describe("Utils", Label("utils"), func() { + var runner *v1mock.FakeRunner + var logger sdkTypes.KairosLogger + var fs vfs.FS + var cleanup func() + + BeforeEach(func() { + runner = v1mock.NewFakeRunner() + logger = sdkTypes.NewNullLogger() + // Ensure /tmp exists in the VFS + fs, cleanup, _ = vfst.NewTestFS(nil) + fs.Mkdir("/tmp", constants.DirPerm) + fs.Mkdir("/run", constants.DirPerm) + fs.Mkdir("/etc", constants.DirPerm) + + }) + AfterEach(func() { cleanup() }) + Describe("CopyFile", Label("CopyFile"), func() { + It("Copies source file to target file", func() { + err := utils.MkdirAll(fs, "/some", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + _, err = fs.Create("/some/file") + Expect(err).ShouldNot(HaveOccurred()) + _, err = fs.Stat("/some/otherfile") + Expect(err).Should(HaveOccurred()) + Expect(utils.CopyFile(fs, "/some/file", "/some/otherfile")).ShouldNot(HaveOccurred()) + e, err := utils.Exists(fs, "/some/otherfile") + Expect(err).ShouldNot(HaveOccurred()) + Expect(e).To(BeTrue()) + }) + It("Copies source file to target folder", func() { + err := utils.MkdirAll(fs, "/some", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + err = utils.MkdirAll(fs, "/someotherfolder", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + _, err = fs.Create("/some/file") + Expect(err).ShouldNot(HaveOccurred()) + _, err = fs.Stat("/someotherfolder/file") + Expect(err).Should(HaveOccurred()) + Expect(utils.CopyFile(fs, "/some/file", "/someotherfolder")).ShouldNot(HaveOccurred()) + e, err := utils.Exists(fs, "/someotherfolder/file") + Expect(err).ShouldNot(HaveOccurred()) + Expect(e).To(BeTrue()) + }) + It("Fails to open non existing file", func() { + err := utils.MkdirAll(fs, "/some", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + Expect(utils.CopyFile(fs, "/some/file", "/some/otherfile")).NotTo(BeNil()) + _, err = fs.Stat("/some/otherfile") + Expect(err).NotTo(BeNil()) + }) + It("Fails to copy on non writable target", func() { + err := utils.MkdirAll(fs, "/some", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + fs.Create("/some/file") + _, err = fs.Stat("/some/otherfile") + Expect(err).NotTo(BeNil()) + fs = vfs.NewReadOnlyFS(fs) + Expect(utils.CopyFile(fs, "/some/file", "/some/otherfile")).NotTo(BeNil()) + _, err = fs.Stat("/some/otherfile") + Expect(err).NotTo(BeNil()) + }) + }) + Describe("CreateDirStructure", Label("CreateDirStructure"), func() { + It("Creates essential directories", func() { + dirList := []string{"sys", "proc", "dev", "tmp", "boot", "usr/local", "oem"} + for _, dir := range dirList { + _, err := fs.Stat(fmt.Sprintf("/my/root/%s", dir)) + Expect(err).NotTo(BeNil()) + } + Expect(utils.CreateDirStructure(fs, "/my/root")).To(BeNil()) + for _, dir := range dirList { + fi, err := fs.Stat(fmt.Sprintf("/my/root/%s", dir)) + Expect(err).To(BeNil()) + if fi.Name() == "tmp" { + Expect(fmt.Sprintf("%04o", fi.Mode().Perm())).To(Equal("0777")) + Expect(fi.Mode() & os.ModeSticky).NotTo(Equal(0)) + } + if fi.Name() == "sys" { + Expect(fmt.Sprintf("%04o", fi.Mode().Perm())).To(Equal("0555")) + } + } + }) + It("Fails on non writable target", func() { + fs = vfs.NewReadOnlyFS(fs) + Expect(utils.CreateDirStructure(fs, "/my/root")).NotTo(BeNil()) + }) + }) + Describe("DirSize", Label("fs"), func() { + BeforeEach(func() { + err := utils.MkdirAll(fs, "/folder/subfolder", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + f, err := fs.Create("/folder/file") + Expect(err).ShouldNot(HaveOccurred()) + err = f.Truncate(1024) + Expect(err).ShouldNot(HaveOccurred()) + f, err = fs.Create("/folder/subfolder/file") + Expect(err).ShouldNot(HaveOccurred()) + err = f.Truncate(2048) + Expect(err).ShouldNot(HaveOccurred()) + }) + It("Returns the expected size of a test folder", func() { + size, err := utils.DirSize(fs, "/folder") + Expect(err).ShouldNot(HaveOccurred()) + Expect(size).To(Equal(int64(3072))) + }) + }) + Describe("CalcFileChecksum", Label("checksum"), func() { + It("compute correct sha256 checksum", func() { + testData := strings.Repeat("abcdefghilmnopqrstuvz\n", 20) + testDataSHA256 := "7f182529f6362ae9cfa952ab87342a7180db45d2c57b52b50a68b6130b15a422" + + err := fs.Mkdir("/iso", constants.DirPerm) + Expect(err).ShouldNot(HaveOccurred()) + err = fs.WriteFile("/iso/test.iso", []byte(testData), 0644) + Expect(err).ShouldNot(HaveOccurred()) + + checksum, err := utils.CalcFileChecksum(fs, "/iso/test.iso") + Expect(err).ShouldNot(HaveOccurred()) + Expect(checksum).To(Equal(testDataSHA256)) + }) + }) + Describe("CreateSquashFS", Label("CreateSquashFS"), func() { + It("runs with no options if none given", func() { + err := utils.CreateSquashFS(runner, logger, "source", "dest", []string{}) + Expect(runner.IncludesCmds([][]string{ + {"mksquashfs", "source", "dest"}, + })).To(BeNil()) + Expect(err).ToNot(HaveOccurred()) + }) + It("runs with options if given", func() { + err := utils.CreateSquashFS(runner, logger, "source", "dest", constants.GetDefaultSquashfsOptions()) + cmd := []string{"mksquashfs", "source", "dest"} + cmd = append(cmd, constants.GetDefaultSquashfsOptions()...) + Expect(runner.IncludesCmds([][]string{ + cmd, + })).To(BeNil()) + Expect(err).ToNot(HaveOccurred()) + }) + It("returns an error if it fails", func() { + runner.ReturnError = errors.New("error") + err := utils.CreateSquashFS(runner, logger, "source", "dest", []string{}) + Expect(runner.IncludesCmds([][]string{ + {"mksquashfs", "source", "dest"}, + })).To(BeNil()) + Expect(err).To(HaveOccurred()) + }) + }) + Describe("GetUkiCmdline", Label("GetUkiCmdline"), func() { + var defaultCmdline string + BeforeEach(func() { + defaultCmdline = constants.UkiCmdline + " " + constants.UkiCmdlineInstall + }) + + It("returns the default cmdline", func() { + entries := utils.GetUkiCmdline() + Expect(entries[0].Cmdline).To(Equal(defaultCmdline)) + }) + + It("returns the default cmdline with the cmdline flag and install-mode", func() { + viper.Set("extra-cmdline", []string{"key=value testkey"}) + entries := utils.GetUkiCmdline() + cmdlines := []string{} + for _, entry := range entries { + cmdlines = append(cmdlines, entry.Cmdline) + } + Expect(cmdlines).To(ContainElements(defaultCmdline)) + Expect(cmdlines).To(ContainElements(defaultCmdline + " key=value testkey")) + }) + + It("returns more than one cmdline with the cmdline flag if specified multiple values", func() { + viper.Set("extra-cmdline", []string{"key=value testkey", "another=value anotherkey"}) + entries := utils.GetUkiCmdline() + cmdlines := []string{} + for _, entry := range entries { + cmdlines = append(cmdlines, entry.Cmdline) + } + + // Should contain the default one + Expect(cmdlines).To(ContainElements(defaultCmdline)) + // Also the extra ones, without the install-mode + Expect(cmdlines).To(ContainElements(defaultCmdline + " key=value testkey")) + Expect(cmdlines).To(ContainElements(defaultCmdline + " another=value anotherkey")) + }) + + It("expands the default cmdline if extended-cmdline is used", func() { + viper.Set("extend-cmdline", "key=value testkey") + entries := utils.GetUkiCmdline() + for _, entry := range entries { + Expect(entry.Cmdline).To(MatchRegexp(".*key=value testkey")) + } + }) + }) + + Describe("GetUkiSingleCmdlines", Label("GetUkiSingleCmdlines"), func() { + var defaultCmdline string + BeforeEach(func() { + defaultCmdline = constants.UkiCmdline + " " + constants.UkiCmdlineInstall + }) + + It("returns the specified entry", func() { + viper.Set("single-efi-cmdline", []string{"My Entry: key=value"}) + viper.Set("boot-branding", "Kairos") + + entries := utils.GetUkiSingleCmdlines(sdkTypes.NewNullLogger()) + Expect(entries[0].Cmdline).To(MatchRegexp(defaultCmdline + " key=value")) + Expect(entries[0].Title).To(ContainSubstring("Kairos (My Entry)")) + Expect(entries[0].FileName).To(Equal("My_Entry")) + }) + }) +})