Skip to content

Commit 504347e

Browse files
docs: simplify installation release manifests and update documentation
This commit simplifies the published manifests down to 'install.yaml' and 'install-full.yaml'. Co-authored-by: ajaysundar.k <ajaysundar.k@gmail.com> Signed-off-by: AvineshTripathi <avineshtripathi1@gmail.com>
1 parent 6b3ee84 commit 504347e

3 files changed

Lines changed: 49 additions & 59 deletions

File tree

Makefile

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -218,22 +218,14 @@ build-installer: build-manifests-temp ## Generate CRDs and deployment manifests
218218
# Generate CRDs only
219219
$(KUSTOMIZE) build config/crd > dist/crds.yaml
220220
@echo "Generated dist/crds.yaml"
221-
# Generate controller deployment without CRDs
221+
# Generate standard installation (core controller only) manifest without CRDs
222222
cp $(BUILD_DIR)/manifests.yaml dist/install.yaml
223223
@echo "Generated dist/install.yaml with image ${IMG_PREFIX}:${IMG_TAG}"
224-
# Generate controller deployment with metrics
225-
$(MAKE) build-manifests-temp ENABLE_METRICS=true
226-
cp $(BUILD_DIR)/manifests.yaml dist/install-with-metrics.yaml
227-
@echo "Generated dist/install-with-metrics.yaml with image ${IMG_PREFIX}:${IMG_TAG}"
228-
# Generate controller deployment with secure metrics
229-
$(MAKE) build-manifests-temp ENABLE_METRICS=true ENABLE_TLS=true
230-
cp $(BUILD_DIR)/manifests.yaml dist/install-with-secure-metrics.yaml
231-
@echo "Generated dist/install-with-secure-metrics.yaml with image ${IMG_PREFIX}:${IMG_TAG}"
232-
# Generate controller deployment with webhook
233-
$(MAKE) build-manifests-temp ENABLE_TLS=true ENABLE_WEBHOOK=true
234-
cp $(BUILD_DIR)/manifests.yaml dist/install-with-webhook.yaml
235-
@echo "Generated dist/install-with-webhook.yaml with image ${IMG_PREFIX}:${IMG_TAG}"
236-
@echo "NOTE: Install crds.yaml first, then install.yaml, install-with-metrics.yaml, install-with-secure-metrics.yaml, or install-with-webhook.yaml. Deployment runs on any available node by default."
224+
# Generate full installation (with features: Metrics, TLS, webhook) manifest
225+
$(MAKE) build-manifests-temp ENABLE_METRICS=true ENABLE_TLS=true ENABLE_WEBHOOK=true
226+
cp $(BUILD_DIR)/manifests.yaml dist/install-full.yaml
227+
@echo "Generated dist/install-full.yaml (Features: Metrics, TLS, Webhook - Requires cert-manager)"
228+
@echo "Check https://node-readiness-controller.sigs.k8s.io/user-guide/installation.html for installation instructions."
237229

238230
## --------------------------------------
239231
## Deployment

docs/book/src/releases.md

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This page details the official releases of the Node Readiness Controller.
66

77
**Date:** 2026-02-28
88

9-
This release brings several new features, including a webhook component, metrics manifests natively integrated with Kustomize, and major documentation improvements.
9+
This release brings several new features, including a validating admission webhook that validates `NodeReadinessRule` configurations, prevents conflicting rules with overlapping node selectors, and warns against risky `NoExecute` enforcement. It also introduces metrics manifests natively integrated with Kustomize, which includes support for secure metrics via TLS. Finally, this release includes major documentation improvements.
1010

1111
### Release Notes
1212

@@ -52,39 +52,36 @@ registry.k8s.io/node-readiness-controller/node-readiness-reporter:v0.2.0
5252

5353
### Installation
5454

55+
**Prerequisites**: If you plan to install with all optional features enabled (`install-full.yaml`), you must have [cert-manager](https://cert-manager.io/docs/installation/) installed in your cluster.
56+
5557
To install the CRDs, apply the `crds.yaml` manifest for this version:
5658

5759
```sh
5860
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/crds.yaml
5961
```
6062

61-
To install the controller, apply the `install.yaml` manifest for this version:
62-
63-
```sh
64-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install.yaml
65-
```
66-
67-
Alternatively, to install with metrics enabled:
63+
To install the controller, choose one of the following manifests based on your requirements:
6864

69-
```sh
70-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install-with-metrics.yaml
71-
```
65+
| Manifest | Contents | Prerequisites |
66+
| :--- | :--- | :--- |
67+
| **`install.yaml`** | Core Controller | None |
68+
| **`install-full.yaml`** | Core Controller + Metrics (Secure) + Validation Webhook | `cert-manager` |
7269

73-
To install with secure metrics enabled:
70+
**Standard Installation (Minimal):**
71+
The simplest way to deploy the controller with no external dependencies.
7472

7573
```sh
76-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install-with-secure-metrics.yaml
74+
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install.yaml
7775
```
7876

79-
To install with webhook enabled:
77+
**Full Installation (Production Ready):**
78+
Includes secure metrics (TLS-protected) and validating webhooks for rule conflict prevention. **Requires [cert-manager](https://cert-manager.io/docs/installation/)** to be installed in your cluster.
8079

8180
```sh
82-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install-with-webhook.yaml
81+
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/v0.2.0/install-full.yaml
8382
```
8483

85-
Note: secure metrics and webhook requires cert-manager crds to be installed in the cluster.
86-
87-
This will deploy the controller into any available node in the `nrr-system` namespace in your cluster. Check [here](https://node-readiness-controller.sigs.k8s.io/user-guide/installation.html) for more installation instructions.
84+
This will deploy the controller into any available node in the `nrr-system` namespace in your cluster. Check [here](https://node-readiness-controller.sigs.k8s.io/user-guide/installation.html) for more detailed installation instructions.
8885

8986
### Contributors
9087

docs/book/src/user-guide/installation.md

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
Follow this guide to install the Node Readiness Controller in your Kubernetes cluster.
44

5+
## Prerequisites
6+
7+
If you plan to use the `install-full.yaml` option (which includes secure metrics and the validating admission webhook), you must first have [cert-manager](https://cert-manager.io/docs/installation/) installed in your cluster.
8+
59
## Deployment Options
610

7-
### Option 1: Install Official Release (Recommended)
11+
### Option 1: Official Release (Recommended)
812

913
First, to install the CRDs, apply the `crds.yaml` manifest:
1014

@@ -16,32 +20,29 @@ kubectl wait --for condition=established --timeout=30s crd/nodereadinessrules.re
1620

1721
```
1822

19-
To install the controller, apply the `install.yaml` manifest:
20-
21-
```sh
22-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install.yaml
23-
```
23+
#### 2. Install the Controller
2424

25-
Alternatively, to install with metrics enabled:
25+
Choose one of the two following manifests based on your requirements:
2626

27-
```sh
28-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-metrics.yaml
29-
```
27+
| Manifest | Contents | Prerequisites |
28+
| :--- | :--- | :--- |
29+
| **`install.yaml`** | Core Controller | None |
30+
| **`install-full.yaml`** | Core Controller + Metrics (Secure) + Validation Webhook | `cert-manager` |
3031

31-
To install with secure metrics enabled:
32+
**Standard Installation (Minimal):**
33+
The simplest way to deploy the controller with no external dependencies.
3234

3335
```sh
34-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-secure-metrics.yaml
36+
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install.yaml
3537
```
3638

37-
To install with webhook enabled:
39+
**Full Installation (Production Ready):**
40+
Includes secure metrics (TLS-protected) and validating webhooks for rule conflict prevention. **Requires [cert-manager](https://cert-manager.io/docs/installation/)** to be installed in your cluster.
3841

3942
```sh
40-
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-webhook.yaml
43+
kubectl apply -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-full.yaml
4144
```
4245

43-
Note: Secure metrics and webhooks require cert-manager to be installed in the cluster.
44-
4546
This will deploy the controller into the `nrr-system` namespace on any available node in your cluster.
4647

4748
#### Controller priority
@@ -61,16 +62,22 @@ REPO="registry.k8s.io/node-readiness-controller/node-readiness-controller"
6162
TAG=$(skopeo list-tags docker://$REPO | jq .'Tags[-1]' | tr -d '"')
6263
docker pull $REPO:$TAG
6364
```
64-
### Option 2: Deploy Using Kustomize
65+
### Option 2: Advanced Deployment (Kustomize)
66+
67+
If you need deeper customization, you can use Kustomize directly from the source.
6568

6669
```sh
67-
# 1. Install Custom Resource Definitions (CRDs)
70+
# 1. Install CRDs
6871
kubectl apply -k config/crd
6972

70-
# 2. Deploy Controller and RBAC
73+
# 2. Deploy Controller with default configuration
7174
kubectl apply -k config/default
7275
```
7376

77+
You can enable optional components (Metrics, TLS, Webhook) by creating a `kustomization.yaml` that includes the relevant components from the `config/` directory. For reference on how these components can be combined, see the `deploy-with-metrics`, `deploy-with-tls`, `deploy-with-webhook`, and `deploy-full` targets in the projects [`Makefile`](https://github.com/kubernetes-sigs/node-readiness-controller/blob/main/Makefile).
78+
79+
---
80+
7481
## Verification
7582

7683
After installation, verify that the controller is running successfully.
@@ -111,14 +118,8 @@ The controller uses a **finalizer** (`readiness.node.x-k8s.io/cleanup-taints`) o
111118
# If installed via release manifest
112119
kubectl delete -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install.yaml
113120
114-
# Or if using the metrics manifest
115-
kubectl delete -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-metrics.yaml
116-
117-
# Or if using the secure metrics manifest
118-
kubectl delete -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-secure-metrics.yaml
119-
120-
# Or if using the webhook manifest
121-
kubectl delete -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-with-webhook.yaml
121+
# Or if using the full manifest
122+
kubectl delete -f https://github.com/kubernetes-sigs/node-readiness-controller/releases/download/${VERSION}/install-full.yaml
122123
123124
# OR if using Kustomize
124125
kubectl delete -k config/default

0 commit comments

Comments
 (0)