diff --git a/cmd/pke/app/util/linux/autodetect.go b/cmd/pke/app/util/linux/autodetect.go index d620008a..dc281a0f 100644 --- a/cmd/pke/app/util/linux/autodetect.go +++ b/cmd/pke/app/util/linux/autodetect.go @@ -22,11 +22,16 @@ import ( ) func KubernetesPackagesImpl(out io.Writer) (KubernetesPackages, error) { - if ver, err := CentOSVersion(out); err == nil { - if ver == "7" { + ver, err := CentOSVersion(out) + if err != nil { + ver, err = RedHatVersion(out) + } + if err == nil { + v, _ := semver.NewVersion(ver) + c, _ := semver.NewConstraint("7.x-0 || 8.x-0") + if c.Check(v) { return NewYumInstaller(), nil } - return nil, constants.ErrUnsupportedOS } if distro, err := LSBReleaseDistributorID(out); err == nil { diff --git a/cmd/pke/app/util/linux/kernel.go b/cmd/pke/app/util/linux/kernel.go index 56ecf3aa..39805da5 100644 --- a/cmd/pke/app/util/linux/kernel.go +++ b/cmd/pke/app/util/linux/kernel.go @@ -33,6 +33,8 @@ func KernelVersionConstraint(out io.Writer, constraint string) error { if err != nil { return err } + // Red Hat Linux uses underscore: 3.10.0-327.el7.x86_64 + version = bytes.ReplaceAll(version, []byte("_"), []byte("")) v := string(bytes.TrimSpace(version)) ver, err := semver.NewVersion(v) if err != nil {