Philip LaineandGitHub 627e388cb3 Change GC label to avoid triggering reconcile when updating timestamp (#380)
This removes the use of timestamp to do GC for orphaned endpoint slices.
Instead we delete any endpoint slice copy that no longer exist by
including the upstream endpoint slice name in a label. This has the same
effect as the timestamp but avoids updating the label value on each
reconcile.

Supersedes #377

<!-- codesmith:footer -->
---
<a
href="https://app.blacksmith.sh/netbirdio/codesmith/kubernetes-operator/pr/380"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v2.svg"><img
alt="View with Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"></picture></a>
<a
href="https://backend.blacksmith.sh/track/enable-autofix?expires=1787313622&installation_model_id=427504&pr_number=380&repository=netbirdio%2Fkubernetes-operator&return_to=https%3A%2F%2Fgithub.com%2Fnetbirdio%2Fkubernetes-operator%2Fpull%2F380&signature=f09d17ae5a5b00dcedbdbb84ceb75de82025ba1bec2039d1f7ebd63f47bf8dd0"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img
alt="Autofix with Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>/codesmith</code> with what you
need. Autofix is disabled.</sup>

<!-- codesmith:autofix:disabled -->
<!-- /codesmith:footer -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved cleanup of stale egress endpoint slices without relying on
time-based labels.
* Ensured managed endpoint slices keep stable, deterministic
identification across reconciliations.
  * Reduced unnecessary endpoint-slice replacement during updates.
* **Refactor**
* Reorganized egress port computation to simplify reconciliation logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-23 16:29:06 +02:00
2026-07-17 08:06:53 +02:00
2026-07-17 08:06:53 +02:00
2026-07-17 08:06:53 +02:00
2026-05-05 12:59:36 +02:00
2026-07-23 12:04:50 +02:00
2026-06-01 16:06:57 +02:00
2025-03-19 15:12:18 +01:00
2026-07-23 12:04:50 +02:00
2026-07-23 12:04:50 +02:00
2025-01-24 13:01:03 +01:00
2026-07-17 08:06:53 +02:00
2026-07-17 08:06:53 +02:00

NetBird Kubernetes Operator

The NetBird Kubernetes Operator automates the provisioning of NetBird network access for services running in your cluster. It extends the Kubernetes API with CRDs, letting you manage NetBird peers, routes, and groups declaratively, the same way you manage the rest of your infrastructure.

Features

  • Declarative peer management - define NetBird peers as Kubernetes resources and let the operator handle provisioning and lifecycle
  • Automatic secret management - setup keys and credentials are stored and rotated as Kubernetes secrets
  • Namespace-scoped or cluster-wide - deploy per-namespace for multi-tenant clusters or cluster-wide for full coverage
  • Works with any NetBird deployment - compatible with NetBird Cloud and self-hosted instances

Getting Started

For full setup instructions, see the Getting Started documentation.

Once your secret is configured, install the operator with Helm.

helm upgrade --install --create-namespace -n netbird netbird-operator oci://ghcr.io/netbirdio/helm-charts/netbird-operator

API

Kind API Version
SetupKey netbird.io/v1alpha1
Group netbird.io/v1alpha1
NetworkRouter netbird.io/v1alpha1
NetworkResource netbird.io/v1alpha1
NetworkEgress netbird.io/v1alpha1
SidecarProfile netbird.io/v1alpha1
ClusterProxy netbird.io/v1alpha1
S
Description
Kubernetes operator for Netbird
Readme BSD-3-Clause
1.2 MiB
Languages
Go 97.8%
Makefile 1.2%
Go Template 0.9%
Dockerfile 0.1%