Skip to content

Commit 25e827a

Browse files
committed
feature-gates: mark NodeFeatureAPI as GA
The feature gate is locked to true. That is, it is not possible to revert back to the gPRC-based communication which makes the gRPC API ready for removal.
1 parent 57fc83f commit 25e827a

10 files changed

+671
-765
lines changed

docs/reference/feature-gates.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ The feature gates are set using the `-feature-gates` command line flag or
1717
| Name | Default | Stage | Since | Until |
1818
| --------------------- | ------- | ------ | ------- | ------ |
1919
| `NodeFeatureAPI` | true | Beta | V0.14 | |
20+
| `NodeFeatureAPI` | true | GA | V0.17 | |
2021
| `DisableAutoPrefix` | false | Alpha | V0.16 | |
2122
| `NodeFeatureGroupAPI` | false | Alpha | V0.16 | |
2223

docs/reference/master-commandline-reference.md

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ documentation](../feature-gates.md).
3939
Example:
4040

4141
```bash
42-
nfd-master -feature-gates NodeFeatureAPI=false
42+
nfd-master -feature-gates NodeFeatureGroupAPI=true
4343
```
4444

4545
### -prune
@@ -181,9 +181,6 @@ The `-enable-leader-election` flag enables leader election for NFD-Master.
181181
It is advised to turn on this flag when running more than one instance of
182182
NFD-Master.
183183

184-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
185-
feature gate is disabled.
186-
187184
Default: false
188185

189186
```bash
@@ -347,9 +344,6 @@ nfd-master -options='{"noPublish": true}'
347344
The `-nfd-api-parallelism` flag can be used to specify the maximum
348345
number of concurrent node updates.
349346

350-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
351-
feature gate is disabled.
352-
353347
Default: 10
354348

355349
Example:
@@ -443,9 +437,6 @@ The resync means nfd-master replaying all NodeFeature and NodeFeatureRule object
443437
thus effectively re-syncing all nodes in the cluster (i.e. ensuring labels, annotations,
444438
extended resources and taints are in place).
445439

446-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
447-
feature gate is disabled.
448-
449440
Default: 1 hour.
450441

451442
Example:

docs/reference/master-configuration-reference.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,6 @@ The resync means nfd-master replaying all NodeFeature and NodeFeatureRule object
156156
thus effectively re-syncing all nodes in the cluster (i.e. ensuring labels, annotations,
157157
extended resources and taints are in place).
158158

159-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
160-
feature gate is disabled.
161-
162159
Default: 1 hour.
163160

164161
Example:
@@ -231,9 +228,6 @@ leaderElection:
231228
The `nfdApiParallelism` option can be used to specify the maximum
232229
number of concurrent node updates.
233230

234-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
235-
feature gate is disabled.
236-
237231
Default: 10
238232

239233
Example:

docs/reference/worker-commandline-reference.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ documentation](../feature-gates.md).
3939
Example:
4040

4141
```bash
42-
nfd-master -feature-gates NodeFeatureAPI=false
42+
nfd-master -feature-gates NodeFeatureGroupAPI=true
4343
```
4444

4545
### -config
@@ -153,9 +153,6 @@ Kubernetes API server. It is needed for manipulating
153153
[NodeFeature](../usage/custom-resources.md#nodefeature) objects. An empty value
154154
(which is also the default) implies in-cluster kubeconfig.
155155

156-
Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
157-
feature gate is disabled.
158-
159156
Default: *empty*
160157

161158
Example:

docs/usage/customization-guide.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,6 @@ labels directly.
4040
Note that RBAC rules must be created for each extension for them to be able to
4141
create and manipulate NodeFeature objects in their namespace.
4242

43-
The NodeFeature CRD API can be disabled with the
44-
[NodeFeatureAPI](../reference/feature-gates.md#nodefeatureapi) feature gate
45-
(`-feature-gates NodeFeatureAPI=false` on command line). The `-feature-gates`
46-
command line flag must be specified for both nfd-master and nfd-worker as it
47-
will enable the gRPC communication between them. Note that the gRPC API is
48-
**DEPRECATED** and will be removed in a future release, at which point the
49-
NodeFeature API cannot be disabled.
50-
5143
### A NodeFeature example
5244

5345
Consider the following referential example:

docs/usage/nfd-gc.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ default garbage collector interval is set to 1h which is the value when no
2424

2525
## Configuration
2626

27-
In Helm deployments (see
28-
[garbage collector parameters](../deployment/helm.md#garbage-collector-parameters))
29-
NFD-GC will only be deployed when `featureGates.NodeFeatureAPI` or
30-
`topologyUpdater.enable` is set to true.
27+
In Helm deployments see
28+
[garbage collector parameters](../deployment/helm.md#garbage-collector-parameters)
29+
for altering the nfd-gc configuration.

docs/usage/nfd-master.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,6 @@ and creates node labels accordingly. The feature data used as the input is
3030
received from nfd-worker instances through
3131
[NodeFeature](custom-resources.md#nodefeature-custom-resource) objects.
3232

33-
> **NOTE**: when gRPC (**DEPRECATED**) is used for communicating
34-
> the features (by setting the flag `-feature-gates NodeFeatureAPI=false` on both
35-
> nfd-master and nfd-worker, or via Helm values.featureGates.NodeFeatureAPI=false),
36-
> (re-)labelling only happens when a request is received from nfd-worker.
37-
> That is, in practice rules are evaluated and labels for each node are created
38-
> on intervals specified by the
39-
> [`core.sleepInterval`](../reference/worker-configuration-reference.md#coresleepinterval)
40-
> configuration option of nfd-worker instances. This means that modification or
41-
> creation of NodeFeatureRule objects does not instantly cause the node
42-
> labels to be updated. Instead, the changes only come visible in node labels
43-
> as nfd-worker instances send their labelling requests. This limitation is not
44-
> present when gRPC interface is disabled
45-
> and [NodeFeature](custom-resources.md#nodefeature-custom-resource) API is used.
46-
4733
## Master configuration
4834

4935
NFD-Master supports dynamic configuration through a configuration file. The

pkg/features/features.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ var (
3535
)
3636

3737
var DefaultNFDFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
38-
NodeFeatureAPI: {Default: true, PreRelease: featuregate.Beta},
38+
NodeFeatureAPI: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
3939
DisableAutoPrefix: {Default: false, PreRelease: featuregate.Alpha},
4040
NodeFeatureGroupAPI: {Default: false, PreRelease: featuregate.Alpha},
4141
}

pkg/nfd-worker/nfd-worker_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,10 @@ func TestRun(t *testing.T) {
208208
})
209209
}
210210

211+
// TODO: remove this test with the rest of the TLS code and docs.
212+
// Also drop the certs from test/data/.
211213
func TestRunTls(t *testing.T) {
214+
t.Skip("gRPC cannot be enabled, NodeFeatureAPI GA")
212215
masterArgs := &master.Args{
213216
CaFile: data.FilePath("ca.crt"),
214217
CertFile: data.FilePath("nfd-test-master.crt"),

0 commit comments

Comments
 (0)