Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Kubernetes operator] add admission controller #3234

Open
mlsmaycon opened this issue Jan 24, 2025 · 0 comments
Open

[Kubernetes operator] add admission controller #3234

mlsmaycon opened this issue Jan 24, 2025 · 0 comments
Assignees

Comments

@mlsmaycon
Copy link
Collaborator

An admission controller is a piece of code that intercepts requests to the Kubernetes API server prior to the persistence of the resource but after the request is authenticated and authorized. This is particularly interesting when you want a certain action to be performed on your deployment or pods but want to keep your definition clean.

From the NetBird user and administrator perspective, using an admission controller pattern will allow individuals to define when to add a NetBird side-car container to their workloads with minimal template configuration. This way, they will be able to expose Kubernetes pods to remote users and systems.

Task:

Create a controller that will listen to deployments, pods, and daemon-set creation, and if they have a defined annotation, it will inject a NetBird sidecar into the resource. The controller will need a CRD to configure setup keys using secrets and optional custom management URLs, which, if missing, will default to https://api.netbird.io/.

In this first iteration, we won't need an API client, and the expectation is that the administrator will configure the CRDs on NetBird's management dashboard. We might add a CRD field to cover the expiration date of the key and issue log events to warn administrators when the time is near.

As part of this development, we need to add a helm chart with pre-defined RBAC and Service accounts and CI/CD workflows for testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants