{"id":29357151,"url":"https://github.com/aleyi17/infrasight-controller","last_synced_at":"2026-05-05T08:36:24.381Z","repository":{"id":286704394,"uuid":"962118574","full_name":"ALEYI17/infrasight-controller","owner":"ALEYI17","description":"Kubernetes controller for managing and deploying eBPF-based monitoring agents across cluster nodes using custom CRDs. Part of the InfraSight observability stack.","archived":false,"fork":false,"pushed_at":"2025-07-08T21:48:37.000Z","size":7986,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T22:35:54.316Z","etag":null,"topics":["ebpf","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ALEYI17.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T17:16:02.000Z","updated_at":"2025-07-08T21:48:40.000Z","dependencies_parsed_at":"2025-06-09T23:24:28.926Z","dependency_job_id":null,"html_url":"https://github.com/ALEYI17/infrasight-controller","commit_stats":null,"previous_names":["aleyi17/kube-ebpf-monitor","aleyi17/infrasight-controller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ALEYI17/infrasight-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALEYI17%2Finfrasight-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALEYI17%2Finfrasight-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALEYI17%2Finfrasight-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALEYI17%2Finfrasight-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ALEYI17","download_url":"https://codeload.github.com/ALEYI17/infrasight-controller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALEYI17%2Finfrasight-controller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264403541,"owners_count":23602614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebpf","kubernetes"],"created_at":"2025-07-09T06:00:38.806Z","updated_at":"2026-05-05T08:36:24.376Z","avatar_url":"https://github.com/ALEYI17.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎛️ InfraSight Controller\n\nThe **InfraSight Controller** is a Kubernetes-native way to deploy and manage the InfraSight eBPF telemetry agents across your cluster nodes.\n\nIt leverages [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) to define a custom controller and CRD (`EbpfDaemonSet`) that enables fine-grained control over how the eBPF agents (from [`ebpf_loader`](https://github.com/ALEYI17/ebpf_loader)) are deployed via DaemonSets.\n\n## 🚀 Overview\n\nThis controller automates the deployment of eBPF agent DaemonSets in a Kubernetes cluster. Each agent is configured via the `EbpfDaemonSet` custom resource and deployed with the necessary permissions, host volumes, and runtime settings.\n\n## 📦 Features\n\n- ⚙️ Built with **Kubebuilder**\n- 🎯 Deploys a **DaemonSet** with necessary volumes and security contexts\n- ✅ Includes **webhooks** for:\n  - Defaulting unset values\n  - Validating configuration (e.g., image format, resource limits, node selectors)\n- 🔄 Reconciles updates to the `EbpfDaemonSet` CR\n- 🧪 Supports eBPF probes like `execve`, `accept`, and others\n\n## 🧾 `EbpfDaemonSetSpec` Definition\n\n```go\ntype EbpfDaemonSetSpec struct {\n  Image         string                      `json:\"image,omitempty\"`\n  NodeSelector  map[string]string           `json:\"nodeSelector,omitempty\"`\n  Tolerations   []corev1.Toleration         `json:\"tolerations,omitempty\"`\n  Resources     corev1.ResourceRequirements `json:\"resources,omitempty\"`\n  RunPrivileged bool                        `json:\"runPrivileged,omitempty\"`\n  EnableProbes  []string                    `json:\"enableProbes\"`\n  ServerAddress string                      `json:\"serverAddress\"`\n  ServerPort    string                      `json:\"serverPort\"`\n}\n````\n\nEach field allows customizing the agent behavior, deployment affinity, and runtime options.\n\n## 🧪 Project Status\n\n\u003e 🚧 **Alpha stage** — `v1alpha1`\n\u003e\n\u003e This project is under active development. APIs may change.\n\n## 🛠️ Deployment Instructions\n\nAt the moment, the controller is not published as a Helm chart or image registry, so to deploy it manually:\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/ALEYI17/infrasight-controller.git\n   cd infrasight-controller\n   ```\n\n2. Build and push the image:\n\n   ```bash\n   make docker-build docker-push IMG=\u003cyour-registry\u003e/\u003cimage\u003e:\u003ctag\u003e\n   ```\n\n3. Deploy cert-manager (required for webhook certificates):\n\n   ```bash\n   kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.2/cert-manager.yaml\n   ```\n\n4. Deploy the controller to your cluster:\n\n   ```bash\n   make deploy IMG=\u003cyour-registry\u003e/\u003cimage\u003e:\u003ctag\u003e\n   ```\n\n5. To undeploy:\n\n   ```bash\n   make undeploy\n   ```\n\nYou can follow the [Kubebuilder book tutorial](https://book.kubebuilder.io/cronjob-tutorial/running) for a full walkthrough.\n\n## 📄 Example CR\n\nA sample `EbpfDaemonSet` is available at:\n\n```\nconfig/samples/ebpf_v1alpha1_ebpfdaemonset.yaml\n```\n\nExample snippet:\n\n```yaml\napiVersion: ebpf.monitoring.dev/v1alpha1\nkind: EbpfDaemonSet\nmetadata:\n  name: example-ebpfds\nspec:\n  image: aley17/ebpf_loader:latest\n  enableProbes:\n    - execve\n    - accept\n  serverAddress: ebpf-server.default.svc\n  serverPort: \"8080\"\n```\n\n## 📚 Related Repositories\n\nThis is part of the **[InfraSight](https://github.com/ALEYI17/InfraSight)** platform:\n\n- [`infrasight-controller`](https://github.com/ALEYI17/infrasight-controller): Kubernetes controller to manage agents\n- [`ebpf_loader`](https://github.com/ALEYI17/ebpf_loader): Agent that collects and sends eBPF telemetry from nodes\n- [`ebpf_server`](https://github.com/ALEYI17/ebpf_server): Receives and stores events (e.g., to ClickHouse)\n- [`ebpf_deploy`](https://github.com/ALEYI17/ebpf_deploy): Helm charts to deploy the stack\n- [`InfraSight_ml`](https://github.com/ALEYI17/InfraSight_ml): Machine learning models for anomaly detection.\n- [`InfraSight_sentinel`](https://github.com/ALEYI17/InfraSight_sentinel): Rules engine that generates alerts based on predefined detection logic.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleyi17%2Finfrasight-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faleyi17%2Finfrasight-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleyi17%2Finfrasight-controller/lists"}