diff --git a/.github/workflows/push_image.yml b/.github/workflows/push_image.yml index dd33dbe664802f1149473aff2f45a807383a1dbb..7d9d2bcc2cce39191dc7b75c65f705944d21b6f3 100644 --- a/.github/workflows/push_image.yml +++ b/.github/workflows/push_image.yml @@ -7,7 +7,7 @@ env: REGISTRY_USER: netobserv+github_ci REGISTRY_PASSWORD: ${{ secrets.QUAY_SECRET }} REGISTRY: quay.io/netobserv - IMAGE: netobserv-agent + IMAGE: netobserv-ebpf-agent IMAGE_ORG: netobserv TAGS: main diff --git a/.github/workflows/push_image_pr.yml b/.github/workflows/push_image_pr.yml index 5e812c0ed71412bdf25d0a4cc07889938b5abaac..47292aad1710a159bbbafe8003143c1f1d8389fe 100644 --- a/.github/workflows/push_image_pr.yml +++ b/.github/workflows/push_image_pr.yml @@ -6,7 +6,7 @@ on: env: REGISTRY_USER: netobserv+github_ci REGISTRY: quay.io/netobserv - IMAGE: netobserv-agent + IMAGE: netobserv-ebpf-agent IMAGE_ORG: netobserv jobs: diff --git a/Dockerfile b/Dockerfile index b05e445a8f5f1d176a34ce6038c6e1b7fe8f5e05..2f871aaf2a140279a630ed5481c7f0660d0090a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN make compile # Create final image from minimal + built binary FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5-240 WORKDIR / -COPY --from=builder /opt/app-root/src/bin/netobserv-agent . +COPY --from=builder /opt/app-root/src/bin/netobserv-ebpf-agent . USER 65532:65532 -ENTRYPOINT ["/netobserv-agent"] +ENTRYPOINT ["/netobserv-ebpf-agent"] diff --git a/Makefile b/Makefile index 54fb6758e9c385bd026f971be0a534b645a1e66b..bd02f1320c76c9f8e497f9095ae93204f2aed7c4 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ IMAGE_ORG ?= $(USER) # IMAGE_TAG_BASE defines the namespace and part of the image name for remote images. # This variable is used to construct full image tags for bundle and catalog images. -IMAGE_TAG_BASE ?= quay.io/$(IMAGE_ORG)/netobserv-agent +IMAGE_TAG_BASE ?= quay.io/$(IMAGE_ORG)/netobserv-ebpf-agent # Image URL to use all building/pushing image targets IMG ?= $(IMAGE_TAG_BASE):$(SW_VERSION) @@ -87,7 +87,7 @@ build: prereqs fmt lint test vendors compile .PHONY: compile compile: @echo "### Compiling project" - GOOS=$(GOOS) go build -ldflags "-X main.version=${SW_VERSION} -X 'main.buildVersion=${BUILD_VERSION}' -X 'main.buildDate=${BUILD_DATE}'" -mod vendor -a -o bin/netobserv-agent cmd/netobserv-agent.go + GOOS=$(GOOS) go build -ldflags "-X main.version=${SW_VERSION} -X 'main.buildVersion=${BUILD_VERSION}' -X 'main.buildDate=${BUILD_DATE}'" -mod vendor -a -o bin/netobserv-ebpf-agent cmd/netobserv-ebpf-agent.go .PHONY: test test: diff --git a/README.md b/README.md index 719e3d32613d26576f8b479d1c59b21129430e68..242a05907584a0180cb6603ddab5b18e448ff947 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Network Observability Agent +# Network Observability eBPF Agent -Network Observability Agent +Network Observability eBPF Agent. ## How to compile @@ -11,7 +11,7 @@ make build ## How to run ``` -sudo bin/netobserv-agent +sudo bin/netobserv-ebpf-agent ``` (Pod deployment will come soon) diff --git a/cmd/netobserv-agent.go b/cmd/netobserv-ebpf-agent.go similarity index 89% rename from cmd/netobserv-agent.go rename to cmd/netobserv-ebpf-agent.go index 12a26a03ccf34cce2d2658593996a3c7e62568f1..d764a1c99ddd7a5b0aaa7011b61756a49249cb57 100644 --- a/cmd/netobserv-agent.go +++ b/cmd/netobserv-ebpf-agent.go @@ -10,7 +10,7 @@ import ( "syscall" "time" - "github.com/netobserv/netobserv-agent/pkg/agent" + "github.com/netobserv/netobserv-ebpf-agent/pkg/agent" "github.com/sirupsen/logrus" ) @@ -49,7 +49,7 @@ func main() { CacheActiveTimeout: maxFlowEvictionPeriod, }) if err != nil { - logrus.WithError(err).Fatal("can't instantiate netobserv-agent") + logrus.WithError(err).Fatal("can't instantiate netobserv-ebpf-agent") } logrus.Infof("push CTRL+C or send SIGTERM to interrupt execution") @@ -62,6 +62,6 @@ func main() { canceler() }() if err := flowsAgent.Run(ctx); err != nil { - logrus.WithError(err).Fatal("can't start netobserv-agent") + logrus.WithError(err).Fatal("can't start netobserv-ebpf-agent") } } diff --git a/deployments/README.md b/deployments/README.md index 823e6c713bdc777d3b8d9ae0720371e074f2dd24..0dd0a27f507aa44533c9b8f881e003485b6c0284 100644 --- a/deployments/README.md +++ b/deployments/README.md @@ -1,6 +1,6 @@ # Deployment example files -This directory contains some example files that show how the netobserv-agent +This directory contains some example files that show how the netobserv-ebpf-agent can be deployed. In production, the agent is deployed by the Network Observability Operator but the files contained here are useful for documentation and manual testing. diff --git a/deployments/flp-daemonset.yml b/deployments/flp-daemonset.yml index 8229e9fe2524092d60974bd84ddc96115c8fb47d..87818e723757f158a4de8ca172a1c4b0cc3ddc01 100644 --- a/deployments/flp-daemonset.yml +++ b/deployments/flp-daemonset.yml @@ -3,24 +3,24 @@ apiVersion: apps/v1 kind: DaemonSet metadata: - name: netobserv-agent + name: netobserv-ebpf-agent labels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent spec: selector: matchLabels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent template: metadata: labels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent spec: serviceAccountName: netobserv-account hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - - name: netobserv-agent - image: quay.io/netobserv/netobserv-agent:main + - name: netobserv-ebpf-agent + image: quay.io/netobserv/netobserv-ebpf-agent:main # imagePullPolicy: Always securityContext: privileged: true diff --git a/deployments/flp-service.yml b/deployments/flp-service.yml index c2f374a34067bc58ac7b845d0f7ebf1de2b7d7e3..2217f3ea0dbbcca8779bfe10c95d007705ceca34 100644 --- a/deployments/flp-service.yml +++ b/deployments/flp-service.yml @@ -3,24 +3,24 @@ apiVersion: apps/v1 kind: DaemonSet metadata: - name: netobserv-agent + name: netobserv-ebpf-agent labels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent spec: selector: matchLabels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent template: metadata: labels: - k8s-app: netobserv-agent + k8s-app: netobserv-ebpf-agent spec: serviceAccountName: netobserv-account hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - - name: netobserv-agent - image: quay.io/netobserv/netobserv-agent:main + - name: netobserv-ebpf-agent + image: quay.io/netobserv/netobserv-ebpf-agent:main # imagePullPolicy: Always securityContext: privileged: true diff --git a/examples/performance/README.md b/examples/performance/README.md index 8c7aad2dec02d51f96663d805a44a5efac92895d..d3e246242fadbb7218bd659794fcb8c2d03e311e 100644 --- a/examples/performance/README.md +++ b/examples/performance/README.md @@ -6,7 +6,7 @@ How to test your setup performance: $ oc apply -f deployment.yml $ oc get pods NAME READY STATUS RESTARTS AGE -netobserv-agent 1/1 Running 0 20s +netobserv-ebpf-agent 1/1 Running 0 20s packet-counter-7b6df8b766-dbv8d 1/1 Running 0 20s $ oc logs -f packet-counter-7b6df8b766-dbv8d ``` diff --git a/examples/performance/deployment.yml b/examples/performance/deployment.yml index 95ecb115e994bdceb2b65ecb2ad65d86be5c3b29..202d5eaa7257008dfa61c90aa229993762a03a05 100644 --- a/examples/performance/deployment.yml +++ b/examples/performance/deployment.yml @@ -38,9 +38,9 @@ spec: apiVersion: v1 kind: Pod metadata: - name: netobserv-agent + name: netobserv-ebpf-agent labels: - run: netobserv-agent + run: netobserv-ebpf-agent spec: # the agent must be privileged hostNetwork: true @@ -55,8 +55,8 @@ spec: run: packet-counter topologyKey: kubernetes.io/hostname containers: - - name: netobserv-agent - image: quay.io/netobserv/netobserv-agent:main + - name: netobserv-ebpf-agent + image: quay.io/netobserv/netobserv-ebpf-agent:main # imagePullPolicy: Always securityContext: privileged: true diff --git a/examples/performance/perftest-iperf.yml b/examples/performance/perftest-iperf.yml index 6bc9cae199c9313916687cce4ad80057f8fd42d3..33df39ad31af9832cf93cc8c42c0cd78130b4eef 100644 --- a/examples/performance/perftest-iperf.yml +++ b/examples/performance/perftest-iperf.yml @@ -40,13 +40,13 @@ spec: command: - iperf3 - -s - # colocate with the netobserv-agent to allow it capturing the generated traffic + # colocate with the netobserv-ebpf-agent to allow it capturing the generated traffic affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - run: netobserv-agent + run: netobserv-ebpf-agent topologyKey: kubernetes.io/hostname --- apiVersion: apps/v1 @@ -76,11 +76,11 @@ spec: - iperf3-server - -t - "0" - # colocate outside the netobserv-agent host to bring load outside + # colocate outside the netobserv-ebpf-agent host to bring load outside affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - run: netobserv-agent + run: netobserv-ebpf-agent topologyKey: kubernetes.io/hostname diff --git a/examples/performance/perftest-millionp.yml b/examples/performance/perftest-millionp.yml index c4732dd9b7838120de82a9f0f61c4c4d40646357..8690b30da36c1061902d8a7d9a81c1009577521e 100644 --- a/examples/performance/perftest-millionp.yml +++ b/examples/performance/perftest-millionp.yml @@ -40,13 +40,13 @@ spec: command: - /udpreceiver - 0.0.0.0:5201 - # colocate with the netobserv-agent to allow it capturing the generated traffic + # colocate with the netobserv-ebpf-agent to allow it capturing the generated traffic affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - run: netobserv-agent + run: netobserv-ebpf-agent topologyKey: kubernetes.io/hostname --- apiVersion: apps/v1 @@ -75,11 +75,11 @@ spec: export HOST=$(getent hosts million-packets-receiver.default.svc.cluster.local | awk '{ print $1 }') echo \"host: $HOST\" /udpsender $HOST:5201 - # colocate outside the netobserv-agent host to bring load outside + # colocate outside the netobserv-ebpf-agent host to bring load outside affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - run: netobserv-agent + run: netobserv-ebpf-agent topologyKey: kubernetes.io/hostname diff --git a/examples/performance/server/packet-counter-collector.go b/examples/performance/server/packet-counter-collector.go index 049b11e11f7fc2550b09458a9d80599fa9a8c871..23ab52e6d9c3fed7fb3349f393fe9dbee2263d60 100644 --- a/examples/performance/server/packet-counter-collector.go +++ b/examples/performance/server/packet-counter-collector.go @@ -5,8 +5,8 @@ import ( "log" "time" - "github.com/netobserv/netobserv-agent/pkg/grpc" - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/grpc" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" "github.com/paulbellamy/ratecounter" ) diff --git a/go.mod b/go.mod index 89cb6a97a8b77af26d78b381435ba6d6793f4f0b..0622ff5ab3eeaafd777b1747543180d7989da25b 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/netobserv/netobserv-agent +module github.com/netobserv/netobserv-ebpf-agent go 1.17 diff --git a/pkg/agent/agent.go b/pkg/agent/agent.go index 371157bac79a1215c225d153013705ac095eea67..dfb3468cf399d7aef7ce7509f8439981ed9b5852 100644 --- a/pkg/agent/agent.go +++ b/pkg/agent/agent.go @@ -4,9 +4,9 @@ import ( "context" "github.com/netobserv/gopipes/pkg/node" - "github.com/netobserv/netobserv-agent/pkg/ebpf" - "github.com/netobserv/netobserv-agent/pkg/exporter" - "github.com/netobserv/netobserv-agent/pkg/flow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/ebpf" + "github.com/netobserv/netobserv-ebpf-agent/pkg/exporter" + "github.com/netobserv/netobserv-ebpf-agent/pkg/flow" "github.com/sirupsen/logrus" ) diff --git a/pkg/agent/agent_test.go b/pkg/agent/agent_test.go index d815a486d558f04bf57a3abeea2711769f18a317..ba0361468ef885ca0b98bc3e8313946abd70cdf3 100644 --- a/pkg/agent/agent_test.go +++ b/pkg/agent/agent_test.go @@ -7,9 +7,9 @@ import ( "time" "github.com/mariomac/guara/pkg/test" - "github.com/netobserv/netobserv-agent/pkg/flow" - "github.com/netobserv/netobserv-agent/pkg/grpc" - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/flow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/grpc" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/pkg/ebpf/tracer.go b/pkg/ebpf/tracer.go index 2319d763060e000965def7cc4b6f2dc33c3016c8..5c962babe5de4d2918bdd9d98e4b9ebc6cfef831 100644 --- a/pkg/ebpf/tracer.go +++ b/pkg/ebpf/tracer.go @@ -12,7 +12,7 @@ import ( "github.com/cilium/ebpf/ringbuf" "github.com/cilium/ebpf/rlimit" - "github.com/netobserv/netobserv-agent/pkg/flow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/flow" "github.com/sirupsen/logrus" "github.com/vishvananda/netlink" ) @@ -49,6 +49,7 @@ func NewFlowTracer(iface string) *FlowTracer { func (m *FlowTracer) Register() error { ilog := log.WithField("iface", m.interfaceName) // Allow the current process to lock memory for eBPF resources. + // TODO: manually invoke unix.Prlimit with lower/reasonable rlimit if err := rlimit.RemoveMemlock(); err != nil { return fmt.Errorf("removing mem lock: %w", err) } diff --git a/pkg/exporter/grpc_proto.go b/pkg/exporter/grpc_proto.go index 4cafb6a36ac89926758cb13c49d86e043bf96588..d81016690f408f9ff4bedb9e69a82389119b3d37 100644 --- a/pkg/exporter/grpc_proto.go +++ b/pkg/exporter/grpc_proto.go @@ -6,9 +6,9 @@ import ( "github.com/sirupsen/logrus" "google.golang.org/protobuf/types/known/timestamppb" - "github.com/netobserv/netobserv-agent/pkg/flow" - "github.com/netobserv/netobserv-agent/pkg/grpc" - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/flow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/grpc" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" ) var glog = logrus.WithField("component", "exporter/GRPCProto") diff --git a/pkg/grpc/client.go b/pkg/grpc/client.go index 008c39155c676b18c74122db75961e02e676b30f..60b364861dc481065bfbaca5a6448b53b01a4380 100644 --- a/pkg/grpc/client.go +++ b/pkg/grpc/client.go @@ -2,7 +2,7 @@ package grpc import ( - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) diff --git a/pkg/grpc/grpc_test.go b/pkg/grpc/grpc_test.go index 0ace2e0f518716fb3d1ad7ec70ac3916400a18b7..5cb08bb78f22e14d91fce7b49556ef497098cf66 100644 --- a/pkg/grpc/grpc_test.go +++ b/pkg/grpc/grpc_test.go @@ -7,7 +7,7 @@ import ( "time" "github.com/mariomac/guara/pkg/test" - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/protobuf/types/known/timestamppb" diff --git a/pkg/grpc/server.go b/pkg/grpc/server.go index da59cc58f5b37b601df774f90910d74f305f9932..0469ee1af048f306f03b9a2812ca5a4c59750142 100644 --- a/pkg/grpc/server.go +++ b/pkg/grpc/server.go @@ -8,7 +8,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/reflection" - "github.com/netobserv/netobserv-agent/pkg/pbflow" + "github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow" ) // CollectorServer wraps a Flow Collector connection & session diff --git a/scripts/shortlived.Dockerfile b/scripts/shortlived.Dockerfile index 206cc00e8cade297acccdcf3eda5134588699cad..f9a62fca1fce17f421b6ff6a7441ba853643b1a6 100644 --- a/scripts/shortlived.Dockerfile +++ b/scripts/shortlived.Dockerfile @@ -1,3 +1,3 @@ -ARG BASE_IMAGE=quay.io/netobserv/netobserv-agent:main +ARG BASE_IMAGE=quay.io/netobserv/netobserv-ebpf-agent:main FROM $BASE_IMAGE LABEL quay.expires-after=2w \ No newline at end of file