Refactor kernel support

- Remove kernel imports and kmods images
- Repurpose KernelOverride as container path
- Support Kernel.Version as version prefix for kernel selection
- Compare initramfs by version

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2024-11-16 01:23:07 -07:00
committed by Christian Goll
parent d87ed27d8d
commit 8f21d54243
40 changed files with 997 additions and 1004 deletions

View File

@@ -0,0 +1,26 @@
package util
import (
"regexp"
"strings"
"github.com/hashicorp/go-version"
)
var (
versionPattern *regexp.Regexp
)
func init() {
versionPattern = regexp.MustCompile(`\d+\.\d+\.\d+(-[\d\.]+|)`)
}
func ParseVersion(versionString string) *version.Version {
matches := versionPattern.FindAllString(versionString, -1)
for i := len(matches) - 1; i >= 0; i-- {
if version_, err := version.NewVersion(strings.TrimSuffix(matches[i], ".")); err == nil {
return version_
}
}
return nil
}