You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: rewrite README with Helm as primary install method
Restructure around user journey: install, configure, upgrade,
uninstall. Move Helm to top as recommended method. Add full
configuration table. Remove demo/contributor sections to focus
on end users.
@@ -6,107 +6,92 @@ Kubernetes controller that automatically assigns node roles based on a configura
6
6
7
7
By default, `kubeadm` enables the NodeRestriction admission controller that restricts what labels `kubelet` can self-apply on node registration. The `node-role.kubernetes.io/*` label is restricted and can't be set in cloud init scripts or during other node bootstrap processes.
8
8
9
-
## Features
10
-
11
-
- Watches node add/update events via Kubernetes informer
12
-
- Patches nodes with role labels derived from a configurable source label
13
-
- Leader election via Lease for safe multi-replica deployments
14
-
- Exponential backoff with permanent error detection for patch retries
15
-
- Rate-limited Kubernetes API client to prevent API server overload
16
-
- Prometheus metrics for successful and failed patch operations
17
-
- Health (`/healthz`) and readiness (`/readyz`) endpoints
18
-
- Graceful shutdown on SIGINT/SIGTERM with context propagation
1. Nodes are labeled with a source label (e.g., `nodeGroup=gpu-worker`)
74
+
2. The controller watches node add/update events via a Kubernetes informer
75
+
3. When a node has the source label, the controller patches it with `node-role.kubernetes.io/<value>`
76
+
4. Leader election via Lease ensures only one replica is active
94
77
95
-
-`node_role_patch_success_total` - Successful node patch operations (labeled by role)
96
-
-`node_role_patch_failure_total` - Failed node patch operations (labeled by role)
78
+
**Example:** A node with `nodeGroup=gpu-worker` gets `node-role.kubernetes.io/gpu-worker`.
97
79
98
-
Available at the `/metrics` endpoint on port `8080`.
80
+
## Metrics
99
81
100
-
## Validation
82
+
| Metric | Description |
83
+
|--------|-------------|
84
+
|`node_role_patch_success_total`| Successful patch operations (labeled by role) |
85
+
|`node_role_patch_failure_total`| Failed patch operations (labeled by role) |
101
86
102
-
The image comes with SLSA attestation verifying it was built in this repo. You can verify using [Sigstore](https://docs.sigstore.dev/about/overview/) CLI or the in-cluster policy controller.
87
+
Available at `/metrics` on port `8080`. Health at `/healthz`, readiness at `/readyz`.
103
88
104
-
### Manual
89
+
##Image Verification
105
90
106
-
> Update the image digest to the version you are using.
91
+
Every release includes [SLSA](https://slsa.dev) provenance attestation:
0 commit comments