tetragon

Форк
0
/
policies.go 
42 строки · 1.1 Кб
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Tetragon
3

4
package filters
5

6
import (
7
	"context"
8

9
	v1 "github.com/cilium/cilium/pkg/hubble/api/v1"
10
	hubbleFilters "github.com/cilium/cilium/pkg/hubble/filters"
11
	"github.com/cilium/tetragon/api/v1/tetragon"
12
)
13

14
// filterByPolicyName returns a FilterFunc. The FilterFunc returns true if and only if any of the
15
// specified policy names select the event.
16
func filterByPolicyName(values []string) hubbleFilters.FilterFunc {
17
	return func(ev *v1.Event) bool {
18
		policyName := GetPolicyName(ev)
19
		if policyName == "" {
20
			return false
21
		}
22
		for _, v := range values {
23
			if policyName == v {
24
				return true
25
			}
26
		}
27
		return false
28
	}
29
}
30

31
// PolicyNamesFilter implements filtering based on Tetragon policy names
32
type PolicyNamesFilter struct{}
33

34
// OnBuildFilter builds a Tetragon policy name filter
35
func (f *PolicyNamesFilter) OnBuildFilter(_ context.Context, filter *tetragon.Filter) ([]hubbleFilters.FilterFunc, error) {
36
	var fs []hubbleFilters.FilterFunc
37

38
	if filter.PolicyNames != nil {
39
		fs = append(fs, filterByPolicyName(filter.PolicyNames))
40
	}
41
	return fs, nil
42
}
43

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.