Skip to content

Commit

Permalink
chore(pkg/driver): restored uek kernel check.
Browse files Browse the repository at this point in the history
Signed-off-by: Federico Di Pierro <[email protected]>
  • Loading branch information
FedeDP authored and poiana committed May 17, 2024
1 parent ae5a30b commit 6b4ddd4
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
22 changes: 22 additions & 0 deletions pkg/driver/distro/distro_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,28 @@ func TestDiscoverDistro(t *testing.T) {
distroExpected: &bottlerocket{},
errExpected: false,
},
{
// os-release ID "ol" maps to oracle
krInput: "5.10.0-2047.510.5.5.el7uek.x86_64",
preFn: func() error {
type brCfg struct {
OsID string `ini:"ID"`
}
f := ini.Empty()
err := f.ReflectFrom(&brCfg{
OsID: "ol",
})
if err != nil {
return err
}
return f.SaveTo(osReleaseFile)
},
postFn: func() {
_ = os.Remove(osReleaseFile)
},
distroExpected: &ol{},
errExpected: false,
},
{
// No os-release but "centos-release" file present maps to centos
krInput: "5.10.0",
Expand Down
46 changes: 46 additions & 0 deletions pkg/driver/distro/oracle.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright (C) 2024 The Falco Authors
//
// 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 driverdistro

import (
"strings"

"github.com/falcosecurity/driverkit/pkg/kernelrelease"

drivertype "github.com/falcosecurity/falcoctl/pkg/driver/type"
)

func init() {
distros["ol"] = &ol{generic: &generic{}}
}

type ol struct {
*generic
}

//nolint:gocritic // the method shall not be able to modify kr
func (o *ol) PreferredDriver(kr kernelrelease.KernelRelease, allowedDriverTypes []drivertype.DriverType) drivertype.DriverType {
for _, allowedDrvType := range allowedDriverTypes {
// Skip dkms on UEK hosts because it will always fail
if allowedDrvType.String() == drivertype.TypeKmod && strings.Contains(kr.String(), "uek") {
continue
}
if allowedDrvType.Supported(kr) {
return allowedDrvType
}
}
return nil
}

0 comments on commit 6b4ddd4

Please sign in to comment.