Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export BPFMAN_AGENT_IMG
export BPFMAN_OPERATOR_IMG

# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
ENVTEST_K8S_VERSION = 1.25.0
ENVTEST_K8S_VERSION = 1.35.0

.DEFAULT_GOAL := help

Expand Down
1 change: 1 addition & 0 deletions apis/v1alpha1/zz_generated.register.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -1014,7 +1014,7 @@ metadata:
capabilities: Basic Install
categories: OpenShift Optional
containerImage: quay.io/bpfman/bpfman-operator:latest
createdAt: "2026-05-06T17:44:26Z"
createdAt: "2026-05-07T21:25:40Z"
description: The bpfman Operator is designed to manage eBPF programs for applications.
features.operators.openshift.io/cnf: "false"
features.operators.openshift.io/cni: "false"
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/bpfman.io_bpfapplications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
creationTimestamp: null
name: bpfapplications.bpfman.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/bpfman.io_bpfapplicationstates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
creationTimestamp: null
name: bpfapplicationstates.bpfman.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/bpfman.io_clusterbpfapplications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
creationTimestamp: null
name: clusterbpfapplications.bpfman.io
spec:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
creationTimestamp: null
name: clusterbpfapplicationstates.bpfman.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/bpfman.io_configs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
creationTimestamp: null
name: configs.bpfman.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/bpfman.io_bpfapplications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
name: bpfapplications.bpfman.io
spec:
group: bpfman.io
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/bpfman.io_bpfapplicationstates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
name: bpfapplicationstates.bpfman.io
spec:
group: bpfman.io
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/bpfman.io_clusterbpfapplications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
name: clusterbpfapplications.bpfman.io
spec:
group: bpfman.io
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
name: clusterbpfapplicationstates.bpfman.io
spec:
group: bpfman.io
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/bpfman.io_configs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
controller-gen.kubebuilder.io/version: v0.20.1
name: configs.bpfman.io
spec:
group: bpfman.io
Expand Down
20 changes: 11 additions & 9 deletions controllers/bpfman-agent/test_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
clientGoFake "k8s.io/client-go/kubernetes/fake"
)

Expand Down Expand Up @@ -187,18 +188,19 @@ func runReconciler(t *testing.T, ctx context.Context, r reconcile.Reconciler, re

// registerBpfApplicationScheme is a helper to register bpf application schemes for the mock reconciler.
func registerBpfApplicationScheme(s *runtime.Scheme, isClusterScoped bool, bpfApp runtime.Object) {
gv := schema.GroupVersion{Group: bpfmaniov1alpha1.GroupVersion.Group, Version: bpfmaniov1alpha1.GroupVersion.Version}
if isClusterScoped {
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplication{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplicationList{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplicationState{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplicationStateList{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplication{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplicationList{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplicationState{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplicationStateList{})
} else {
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplication{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplicationList{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplicationState{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplicationStateList{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplication{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplicationList{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplicationState{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplicationStateList{})
}
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, bpfApp)
s.AddKnownTypes(gv, bpfApp)
}

type MockNetNsCache map[string]*uint64
Expand Down
8 changes: 5 additions & 3 deletions controllers/bpfman-operator/cl_application_program_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
meta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/utils/ptr"
Expand Down Expand Up @@ -172,9 +173,10 @@ func appProgramReconcile(t *testing.T, multiCondition bool) {

// Register operator types with the runtime scheme.
s := scheme.Scheme
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, app)
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplicationState{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.ClusterBpfApplicationStateList{})
gv := schema.GroupVersion{Group: bpfmaniov1alpha1.GroupVersion.Group, Version: bpfmaniov1alpha1.GroupVersion.Version}
s.AddKnownTypes(gv, app)
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplicationState{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.ClusterBpfApplicationStateList{})

// Create a fake client to mock API calls.
cl := fake.NewClientBuilder().WithStatusSubresource(app).WithRuntimeObjects(objs...).Build()
Expand Down
5 changes: 3 additions & 2 deletions controllers/bpfman-operator/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import (
"k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/utils/ptr"
Expand Down Expand Up @@ -307,7 +308,7 @@ func setupTestEnvironment(isOpenShift, hasMonitoring bool) (*BpfmanConfigReconci

// Register operator types with the runtime scheme.
s := scheme.Scheme
s.AddKnownTypes(v1alpha1.SchemeGroupVersion, &v1alpha1.Config{})
s.AddKnownTypes(schema.GroupVersion{Group: v1alpha1.GroupVersion.Group, Version: v1alpha1.GroupVersion.Version}, &v1alpha1.Config{})
s.AddKnownTypes(corev1.SchemeGroupVersion, &corev1.ConfigMap{})
s.AddKnownTypes(appsv1.SchemeGroupVersion, &appsv1.DaemonSet{})
s.AddKnownTypes(storagev1.SchemeGroupVersion, &storagev1.CSIDriver{})
Expand Down Expand Up @@ -411,7 +412,7 @@ func hasOwnerReference(config *v1alpha1.Config, o client.Object) error {
if or[0].Controller == nil || *or[0].Controller != true {
return fmt.Errorf("owner ref of %q has Controller=%v, expected true", name, or[0].Controller)
}
expectedGVK := v1alpha1.SchemeGroupVersion.WithKind("Config")
expectedGVK := schema.GroupVersion{Group: v1alpha1.GroupVersion.Group, Version: v1alpha1.GroupVersion.Version}.WithKind("Config")
if or[0].APIVersion != expectedGVK.GroupVersion().String() || or[0].Kind != expectedGVK.Kind {
return fmt.Errorf("owner ref of %q has APIVersion=%q Kind=%q, expected APIVersion=%q Kind=%q",
name, or[0].APIVersion, or[0].Kind, expectedGVK.GroupVersion().String(), expectedGVK.Kind)
Expand Down
8 changes: 5 additions & 3 deletions controllers/bpfman-operator/ns_application_program_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
meta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/utils/ptr"
Expand Down Expand Up @@ -131,9 +132,10 @@ func appNsProgramReconcile(t *testing.T, multiCondition bool) {

// Register operator types with the runtime scheme.
s := scheme.Scheme
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, App)
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplicationState{})
s.AddKnownTypes(bpfmaniov1alpha1.SchemeGroupVersion, &bpfmaniov1alpha1.BpfApplicationStateList{})
gv := schema.GroupVersion{Group: bpfmaniov1alpha1.GroupVersion.Group, Version: bpfmaniov1alpha1.GroupVersion.Version}
s.AddKnownTypes(gv, App)
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplicationState{})
s.AddKnownTypes(gv, &bpfmaniov1alpha1.BpfApplicationStateList{})

// Create a fake client to mock API calls.
cl := fake.NewClientBuilder().WithStatusSubresource(App).WithRuntimeObjects(objs...).Build()
Expand Down
43 changes: 21 additions & 22 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ require (
github.com/stretchr/testify v1.11.1
go.uber.org/zap v1.27.1
google.golang.org/grpc v1.78.0
k8s.io/api v0.34.3
k8s.io/apimachinery v0.34.3
k8s.io/client-go v0.34.3
k8s.io/code-generator v0.34.3
k8s.io/cri-api v0.35.0
sigs.k8s.io/controller-runtime v0.22.4
k8s.io/api v0.35.4
k8s.io/apimachinery v0.35.4
k8s.io/client-go v0.35.4
k8s.io/code-generator v0.35.4
k8s.io/cri-api v0.35.4
sigs.k8s.io/controller-runtime v0.23.3
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20260125163108-a19ec76a3c5d
sigs.k8s.io/controller-tools v0.17.1
sigs.k8s.io/controller-tools v0.20.1
sigs.k8s.io/yaml v1.6.0
)

Expand Down Expand Up @@ -54,7 +54,7 @@ require (
github.com/jpillora/backoff v1.0.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/spdystream v0.5.1 // indirect
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/netobserv/flowlogs-pipeline v1.10.0-community // indirect
Expand All @@ -74,17 +74,16 @@ require (
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
go.opentelemetry.io/otel v1.38.0 // indirect
go.opentelemetry.io/otel v1.41.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect
go.opentelemetry.io/otel/metric v1.38.0 // indirect
go.opentelemetry.io/otel/metric v1.41.0 // indirect
go.opentelemetry.io/otel/sdk v1.38.0 // indirect
go.opentelemetry.io/otel/trace v1.38.0 // indirect
go.opentelemetry.io/otel/trace v1.41.0 // indirect
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
golang.org/x/tools/go/expect v0.1.1-deprecated // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251124214823-79d6a2a48846 // indirect
google.golang.org/protobuf v1.36.11 // indirect
Expand All @@ -93,12 +92,12 @@ require (
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/apiserver v0.34.3 // indirect
k8s.io/component-base v0.34.3 // indirect
k8s.io/gengo/v2 v2.0.0-20250820003526-c297c0c1eb9d // indirect
k8s.io/apiserver v0.35.4 // indirect
k8s.io/component-base v0.35.4 // indirect
k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
)

require (
Expand Down Expand Up @@ -130,19 +129,19 @@ require (
github.com/prometheus/procfs v0.17.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/mod v0.29.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/sync v0.19.0
golang.org/x/sys v0.40.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/term v0.38.0 // indirect
golang.org/x/text v0.32.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.38.0 // indirect
golang.org/x/tools v0.40.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.34.3 // indirect
k8s.io/apiextensions-apiserver v0.35.4 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
Expand Down
Loading
Loading