Philip Laine and GitHub
0ffcaca94b
Make network router read only file system by default ( #213 )
...
This changes the router and sidecar to run with read only file system by
default. This is good practice in Kubernetes and often required in most
clusters.
Fixes #144
Fixes #114
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Enhanced DNS configuration handling in containerized deployments with
stricter filesystem access controls and improved security measures.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/netbirdio/kubernetes-operator/pull/213?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack )
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-18 11:21:35 +02:00
7744dc08f5
Bump github.com/netbirdio/netbird from 0.70.4 to 0.71.2 ( #260 )
...
Bumps
[github.com/netbirdio/netbird](https://github.com/netbirdio/netbird )
from 0.70.4 to 0.71.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/netbirdio/netbird/releases ">github.com/netbirdio/netbird's
releases</a>.</em></p>
<blockquote>
<h2>v0.71.2</h2>
<h2>What's Changed</h2>
<ul>
<li>[management] Avoid peer IP reallocation when account settings update
preserves the network range by <a
href="https://github.com/lixmal "><code>@lixmal</code></a> in <a
href="https://redirect.github.com/netbirdio/netbird/pull/6173 ">netbirdio/netbird#6173</a></li>
<li>[management] Avoid context cancellation in
<code>cancelPeerRoutines</code> by <a
href="https://github.com/mlsmaycon "><code>@mlsmaycon</code></a> in <a
href="https://redirect.github.com/netbirdio/netbird/pull/6175 ">netbirdio/netbird#6175</a></li>
<li>[client] Clean up legacy 32-bit and HKCU registry entries on Windows
install by <a href="https://github.com/lixmal "><code>@lixmal</code></a>
in <a
href="https://redirect.github.com/netbirdio/netbird/pull/6176 ">netbirdio/netbird#6176</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/netbirdio/netbird/compare/v0.71.1...v0.71.2 ">https://github.com/netbirdio/netbird/compare/v0.71.1...v0.71.2 </a></p>
<h2>v0.71.1</h2>
<h2>What's Changed</h2>
<ul>
<li>[client] Mirror v4 exit selection onto v6 pair and honour
SkipAutoApply per route by <a
href="https://github.com/lixmal "><code>@lixmal</code></a> in <a
href="https://redirect.github.com/netbirdio/netbird/pull/6150 ">netbirdio/netbird#6150</a></li>
<li>[client] Drop DNS probes for passive health projection by <a
href="https://github.com/lixmal "><code>@lixmal</code></a> in <a
href="https://redirect.github.com/netbirdio/netbird/pull/5971 ">netbirdio/netbird#5971</a></li>
<li>[proxy] auth token generation on mapping by <a
href="https://github.com/crn4 "><code>@crn4</code></a> in <a
href="https://redirect.github.com/netbirdio/netbird/pull/6157 ">netbirdio/netbird#6157</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/netbirdio/netbird/compare/v0.71.0...v0.71.1 ">https://github.com/netbirdio/netbird/compare/v0.71.0...v0.71.1 </a></p>
<h2>v0.71.0</h2>
<h2>Release Notes for v0.71.0</h2>
<h3>What's New</h3>
<p><strong>IPv6 overlay addressing</strong>
NetBird's overlay is now dual-stack. Every account gets its own IPv6
prefix (default <code>/64</code>, configurable from <code>/48</code> to
<code>/120</code>), and peers can receive both an IPv4 and an IPv6
overlay address. DNS serves AAAA
and reverse PTR records alongside A records, ACLs apply to both families
automatically, network routes accept IPv6 CIDRs (with masquerade), exit
nodes that route <code>0.0.0.0/0</code> get a matching <code>::/0</code>
route, and
domain routes resolve both A and AAAA.</p>
<p>Rollout is group-gated: new accounts enable IPv6 for the
<strong>All</strong> group by default; existing accounts opt in under
<strong>Settings > Network</strong>. Assignment is also gated on a
per-peer capability, so older clients keep
working on IPv4 until they upgrade. Hosts can opt out individually with
<code>netbird up --disable-ipv6</code></p>
<p>Read more in the <a
href="https://netbird.io/knowledge-hub/ipv6-overlay-addressing ">IPv6
Overlay Addressing announcement</a> and the <a
href="https://docs.netbird.io/manage/settings/ipv6 ">IPv6
documentation</a>.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5631 ">netbirdio/netbird#5631</a>
by <a href="https://github.com/lixmal "><code>@lixmal</code></a></p>
<p><strong>MFA for local users</strong>
Local users (non-IdP) can now enable multi-factor authentication,
closing a gap for deployments that don't federate auth through an
external provider.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5804 ">netbirdio/netbird#5804</a>
by <a href="https://github.com/jnfrati "><code>@jnfrati</code></a></p>
<p><strong>Bring your own proxy (backend ready)</strong>
Backend support for per-account reverse-proxy lifecycle has landed:
proxy tokens, per-account cluster allow-lists, conflict detection, and
one-proxy-per-account enforcement. Full rollout (dashboard, docs) comes
in a later release.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5627 ">netbirdio/netbird#5627</a>
by <a href="https://github.com/crn4 "><code>@crn4</code></a></p>
<h4>Client Improvements</h4>
<ul>
<li>Included <strong>MTU and SSH auth config in debug bundle</strong> by
<a href="https://github.com/lixmal "><code>@lixmal</code></a>.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/6071 ">netbirdio/netbird#6071</a></li>
<li>Added <strong>public key to debug bundle config.txt</strong> by <a
href="https://github.com/lixmal "><code>@lixmal</code></a>.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/6092 ">netbirdio/netbird#6092</a></li>
<li>iOS: <strong>structured ResolvedIPs collection for domain
routes</strong> by <a
href="https://github.com/pappz "><code>@pappz</code></a>.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/6090 ">netbirdio/netbird#6090</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/netbirdio/netbird/commit/3f91f49277e1841bdfccda06ae7baa0430e6de2e "><code>3f91f49</code></a>
Clean up legacy 32-bit and HKCU registry entries on Windows install (<a
href="https://redirect.github.com/netbirdio/netbird/issues/6176 ">#6176</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/347c5bf317794729a044ce9f866f29e357d386d9 "><code>347c5bf</code></a>
Avoid context cancellation in <code>cancelPeerRoutines</code> (<a
href="https://redirect.github.com/netbirdio/netbird/issues/6175 ">#6175</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/22e2519d7113dffec718198e54474cc0a6d71c87 "><code>22e2519</code></a>
[management] Avoid peer IP reallocation when account settings update
preserve...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/e916f12cca508dfea584e7b72cf99a135acebc2b "><code>e916f12</code></a>
[proxy] auth token generation on mapping (<a
href="https://redirect.github.com/netbirdio/netbird/issues/6157 ">#6157</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/9ed2e2a5b463077f8abe3e3926695f5dc9411e29 "><code>9ed2e2a</code></a>
[client] Drop DNS probes for passive health projection (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5971 ">#5971</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/2ccae7ec479c106efb6d7a7edff4bb55affb2aa4 "><code>2ccae7e</code></a>
[client] Mirror v4 exit selection onto v6 pair and honour SkipAutoApply
per r...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/07e5450117dd0451aaeefc18729a822115587e69 "><code>07e5450</code></a>
[management] Bracket IPv6 reverse-proxy target hosts when building URL
Host f...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/3f914090cbb345707a88b5edb20d9c1351873b4c "><code>3f91409</code></a>
[client] Bracket IPv6 in embed listeners, expand debug bundle (<a
href="https://redirect.github.com/netbirdio/netbird/issues/6134 ">#6134</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/ea9fab4396fc5513f7c62e3465dd361dc8bb9e91 "><code>ea9fab4</code></a>
[management] Allocate and preserve IPv6 overlay addresses for embedded
proxy ...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/77b479286e399660ef2bdcbe7983363946660574 "><code>77b4792</code></a>
[management] fix offline statuses for public proxy clusters (<a
href="https://redirect.github.com/netbirdio/netbird/issues/6133 ">#6133</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/netbirdio/netbird/compare/v0.70.4...v0.71.2 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: Philip Laine <philip.laine@gmail.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-18 11:02:55 +02:00
Philip Laine and GitHub
c56f8de162
Fix sidecar injection when pod annotations is nil. ( #250 )
...
When a pod does not have any annotations the injector will fail. This
change adds a test for the case and also fixes the issue.
Fixes #246
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-13 12:54:52 +02:00
Philip Laine and GitHub
360ef52aa3
Add build version to NetBird client user agent. ( #248 )
...
This also fix the runtime import aliases to avoid conflicts with stdlib
runtime.
2026-05-13 12:43:46 +02:00
Philip Laine and GitHub
ae34898735
Rename Helm chart and Docker image and move to GHCR ( #233 )
...
This change does a few things, none of these are breaking.
It changes the registry from Docker Hub to GHCR, as we dont have the
same rate limiting issues with unauthenticated pulls.
It changes the release process to push the Helm chart as an OCI artifact
removing the need for GH pages.
It renames both the image and chart from kubernetes-operator to
netbird-operator. This name is cleaner and easier for people to
understand in a sea of Helm charts. Funnily enough this is not a
breaking change as the release name is used and not the chart name. So
in place upgrades just work.
Fixes #207
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-06 12:26:32 +02:00
Philip Laine and GitHub
ea9f1cb081
Modernize for Go 1.26 ( #232 )
...
This change replaces all uses of pointer utils with the new `new`
function which does the same job.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-05 13:53:44 +02:00
Philip Laine and GitHub
69afe3aade
Fix SPDX license header ( #231 )
...
This change adds SPDX license headers to all files and eforces it with
the linter.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-05 12:59:36 +02:00
Philip Laine and GitHub
0c542db9d7
Fix group reconcile removing peers ( #226 )
...
This changes the group reconcile to get the existing group first and
then update it in place. If not done like this peers will be removed
from the group on the next reconcile.
Fixes #221
2026-05-05 11:12:50 +02:00
Philip Laine and GitHub
f8a383f533
Pin the default client image with digest ( #227 )
...
This changes the default client image from latest to a pinned digest. It
also enforces that the default image version tag matches the version of
the Netbird dependency.
This makes testing a lot easier and also ensures that we wont get
untested behavior introduced if the client makes a breaking change.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-05-05 11:12:37 +02:00
Philip Laine and GitHub
74012deb27
Enforce import ordering and aliases ( #216 )
...
This change ensures import ordering and aliases is standardized.
Something that is extra important when working with Kuberentes apis that
have "standard" import aliases.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-30 13:39:11 +02:00
Philip Laine and GitHub
37d48b5ca8
Set best practice defaults for network router deployment ( #214 )
...
This change sets some Kubernetes best practices as defaults. Such as
topology spread and pod disruption budget.
It also exposes log level and image settings in the root struct to make
it easier to override commonly configured settings.
Fixes #77
Fixes #162
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-28 15:18:15 +02:00
Philip Laine and GitHub
91036022c0
Add path component to finalizer ( #202 )
...
The Kubernetes client warns about not having a path component in the
finalizer. This change adds a unqiue path component for each reconciler
kind.
2026-04-23 19:18:06 +02:00
Philip Laine and GitHub
9838f0dccc
Add sidecar profile ( #192 )
...
This change adds a new SidecarProfile resource which allows configuring
client sidecar injection into pods. It replaces the older annotation
based solution. This removes any pod specific configuration from the
setup key and puts it all in this side car configuration.
Fixes #188
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-23 19:17:53 +02:00
Philip Laine and GitHub
876a0e1eb3
Update Gateway API to use new resources ( #201 )
...
We dont want to promote the use of the "old" resources with NB prefix so
the Gateway API integration should only support the new ones.
---------
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-23 16:11:15 +02:00
Philip Laine and GitHub
99ef70603f
Allow references to groups by name ( #195 )
...
Group names are unique so we can safely use the name as a reference
method to groups. This makes assigning resources created in the cluster
to groups that already exist a lot easier.
2026-04-23 13:12:09 +02:00
Philip Laine and GitHub
1daeb670ba
Make network resource names unique ( #196 )
...
Network resource names are unique per Netbird account. This change moves
the existing name to the description and uses the UID for the name of
the resource instead.
2026-04-23 11:59:07 +02:00
b77bcd74ab
Bump github.com/netbirdio/netbird from 0.66.4 to 0.69.0 ( #187 )
...
Bumps
[github.com/netbirdio/netbird](https://github.com/netbirdio/netbird )
from 0.66.4 to 0.69.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/netbirdio/netbird/releases ">github.com/netbirdio/netbird's
releases</a>.</em></p>
<blockquote>
<h2>v0.69.0</h2>
<h2>Release Notes for v0.69.0</h2>
<h3>What's New</h3>
<p><strong>Reverse Proxy IP Reputation Integration</strong>
Now you can use CrowdSec to block malicious traffic based on IP
reputation on your exposed service in the reverse proxy.</p>
<p>This feature requires self-hosted installations to add another
container to their deployment. See instructions in the <a
href="https://docs.netbird.io/selfhosted/migration/enable-reverse-proxy#step-7-optional-enable-crowd-sec-ip-reputation ">reverse
proxy migration documentation</a>.</p>
<blockquote>
<p>For Cloud users, support is coming soon.</p>
</blockquote>
<p>Learn more about <a
href="https://docs.netbird.io/manage/reverse-proxy ">here</a>.</p>
<p><strong>macOS p2p connectivity improvements</strong>
We've improved macOS p2p connectivity with a better routing exclusion
mechanism to avoid loops. Now the client doesn't add /32 routes per
remote candidate addresses avoiding limitations on accessing remote
peer's local addresses via tunnel connections. Learn more about <a
href="https://redirect.github.com/netbirdio/netbird/pull/5918 ">this
change</a>.</p>
<blockquote>
<p>To use the old behavior run:</p>
<p><code>sudo netbird service reconfigure --service-env
"NB_USE_LEGACY_ROUTING=true"</code></p>
</blockquote>
<h4>Client Improvements</h4>
<ul>
<li>Added <strong>PCP support</strong>. This change adds support for the
PCP protocol to the client to improve the rate of P2P connectivity.
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5219 ">netbirdio/netbird#5219</a></li>
<li>Added <strong>--disable-networks flag</strong> to block network
selection for users.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5896 ">netbirdio/netbird#5896</a></li>
<li>Fixed <strong>clearing service env vars with --service-env
""</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5893 ">netbirdio/netbird#5893</a></li>
<li>Guarded against <strong>container DNAT bypass of ACL rules in
iptables</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5697 ">netbirdio/netbird#5697</a></li>
<li>Populated <strong>NetworkAddresses on iOS for posture
checks</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5900 ">netbirdio/netbird#5900</a></li>
<li>Reconnected <strong>conntrack netlink listener on error</strong>.<br
/>
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5885 ">netbirdio/netbird#5885</a></li>
<li>Replaced <strong>exclusion routes with scoped default + IP_BOUND_IF
on macOS</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5918 ">netbirdio/netbird#5918</a></li>
<li>Fixed <strong>incorrect SSH client config combining Host and Match
directives</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5903 ">netbirdio/netbird#5903</a></li>
<li>Fixed <strong>WGIface.Close deadlock when DNS filter hook re-enters
GetDevice</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5916 ">netbirdio/netbird#5916</a></li>
</ul>
<h4>Management Improvements</h4>
<ul>
<li>Enforced <strong>peer or peer groups requirement for network
routers</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5894 ">netbirdio/netbird#5894</a></li>
<li>Reused <strong>single cache store across all management server
consumers</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5889 ">netbirdio/netbird#5889</a></li>
<li>Fixed <strong>lint error on Google Workspace
integration</strong>.<br />
<a
href="https://redirect.github.com/netbirdio/netbird/pull/5907 ">netbirdio/netbird#5907</a></li>
</ul>
<h4>Proxy Enhancements</h4>
<ul>
<li>Added <strong>CrowdSec IP reputation integration for reverse
proxy</strong>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/netbirdio/netbird/commit/3098f48b25e2a613d8f70466243d992c498e0fd2 "><code>3098f48</code></a>
[client] fix ios network addresses mac filter (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5906 ">#5906</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/7f023ce8014084385e677e67c541677336e25431 "><code>7f023ce</code></a>
[client] Android debug bundle support (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5888 ">#5888</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/e3611265159bd372f77ca404d32c86127e036525 "><code>e361126</code></a>
[client] Fix WGIface.Close deadlock when DNS filter hook re-enters
GetDevice ...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/95213f715714177b7c9672b3f264f84c9a31cf04 "><code>95213f7</code></a>
[client] Use Match host+exec instead of Host+Match in SSH client config
(<a
href="https://redirect.github.com/netbirdio/netbird/issues/5903 ">#5903</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/2e0e3a3601d90a5d7a6b39dc16ebde2522fdf580 "><code>2e0e3a3</code></a>
[client] Replace exclusion routes with scoped default + IP_BOUND_IF on
macOS ...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/8ae8f2098fb4bb7a9177b3f2d8d908a413b8fc49 "><code>8ae8f20</code></a>
[management] chores: fix lint error on google workspace (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5907 ">#5907</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/a39787d6796ee26e1f6ad9c67ea33a9da7bf8d66 "><code>a39787d</code></a>
[infrastructure] Add CrowdSec LAPI container to self-hosted setup script
(<a
href="https://redirect.github.com/netbirdio/netbird/issues/5880 ">#5880</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/53b04e512af0d94f619e870467115c43d200830b "><code>53b04e5</code></a>
[management] Reuse a single cache store across all management server
consumer...</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/633dde8d1f5985afc52071462c42857cb844b9ac "><code>633dde8</code></a>
[client] Reconnect conntrack netlink listener on error (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5885 ">#5885</a>)</li>
<li><a
href="https://github.com/netbirdio/netbird/commit/7e4542adde54ebe71a3a47f5228c5915c9c1052a "><code>7e4542a</code></a>
fix(client): populate NetworkAddresses on iOS for posture checks (<a
href="https://redirect.github.com/netbirdio/netbird/issues/5900 ">#5900</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/netbirdio/netbird/compare/v0.66.4...v0.69.0 ">compare
view</a></li>
</ul>
</details>
<br />
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Philip Laine <philip.laine@gmail.com >
2026-04-23 09:50:41 +02:00
Philip Laine and GitHub
6768a76c9c
Add network router and resource ( #189 )
...
This change adds two new resources, NetworkRouter and NetworkResource,
which enable clusters to expose Kubernetes services to Netbird.
The NetworkRouter is responsible for creating the network, group, setup
key and routing peer all of which are unique to the isntance. Along with
the deployment of the client in the cluster.
The NetworkResource exposes a service by linking to the specific router
it wants to expose to. This makes coupling between the resource and
network easy to understand.
Routers also set a DNS zone which is used to give names to resources
based on the name and namespace of the service being exposed.
Part of #172
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-23 08:55:49 +02:00
Philip Laine and GitHub
af11e31b28
Add ready conditon and cleanup finalizer and status patching ( #186 )
...
This change adds a ready condition. It also sets a standard for status
fields and documentation. It makes use of helper functions from FluxCD
to better manage patching of finalizers and status.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-21 15:42:11 +02:00
Philip Laine and GitHub
1bcd58a7cd
Implement mock for Netbird API and client ( #184 )
...
This makes testing of the operator a lot simpler by enabling a quick way
to implement the crud endpoints for all the resources used.
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-15 10:25:45 +02:00
Philip Laine and GitHub
9c4ca73712
Implement group resource ( #181 )
...
This change implements a new group resource.
It also sets the standard for a resource reference will be done through
out the controller. A resource reference can either be done by ID or as
a local named reference to the actual resource. This allows end users to
chose if they want to manage things completely in the cluster or not.
Part of #172
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-15 10:16:10 +02:00
Philip Laine and GitHub
26479a19c0
Implement new setup key resource ( #178 )
...
This change implements a new resource called SetupKey that manages the
lifecycle of setup keys and stores them in secrets.
A major change here is that we are also switching to using SSA for
resource management.
Part of #172
Signed-off-by: Philip Laine <philip.laine@gmail.com >
2026-04-13 12:20:35 +02:00
Philip Laine and GitHub
f1c382e6f2
Revert "Cleanup routing peer deployment creation" ( #159 )
...
Reverts netbirdio/kubernetes-operator#155
2026-03-23 17:56:43 +01:00
Philip Laine and GitHub
a20570b692
Cleanup resource delete reconcile ( #158 )
...
This fixes resource delete to always run even when there are no
finalizers.
2026-03-23 15:52:14 +01:00
Philip Laine and GitHub
3a36cb6961
Cleanup routing peer deployment creation ( #155 )
...
This refactors the deployment creation for the routing peer to use the
create or update method. Keeping this a lot cleaner. It also changes to
set controller reference using the util method.
2026-03-23 11:44:09 +01:00