Skip to content

Commit

Permalink
feature-gates: mark NodeFeatureAPI as GA
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
marquiz committed Jul 12, 2024
1 parent 98e9091 commit 675684a
Show file tree
Hide file tree
Showing 9 changed files with 668 additions and 765 deletions.
1 change: 1 addition & 0 deletions docs/reference/feature-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ The feature gates are set using the `-feature-gates` command line flag or
| Name | Default | Stage | Since | Until |
| --------------------- | ------- | ------ | ------- | ------ |
| `NodeFeatureAPI` | true | Beta | V0.14 | |
| `NodeFeatureAPI` | true | GA | V0.17 | |
| `DisableAutoPrefix` | false | Alpha | V0.16 | |
| `NodeFeatureGroupAPI` | false | Alpha | V0.16 | |

Expand Down
11 changes: 1 addition & 10 deletions docs/reference/master-commandline-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ documentation](../feature-gates.md).
Example:

```bash
nfd-master -feature-gates NodeFeatureAPI=false
nfd-master -feature-gates NodeFeatureGroupAPI=true
```

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

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: false

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

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: 10

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

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: 1 hour.

Example:
Expand Down
6 changes: 0 additions & 6 deletions docs/reference/master-configuration-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,6 @@ The resync means nfd-master replaying all NodeFeature and NodeFeatureRule object
thus effectively re-syncing all nodes in the cluster (i.e. ensuring labels, annotations,
extended resources and taints are in place).

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: 1 hour.

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

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: 10

Example:
Expand Down
5 changes: 1 addition & 4 deletions docs/reference/worker-commandline-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ documentation](../feature-gates.md).
Example:

```bash
nfd-master -feature-gates NodeFeatureAPI=false
nfd-master -feature-gates NodeFeatureGroupAPI=true
```

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

Does not have effect if the [NodeFeatureAPI](feature-gates.md#nodefeatureapi)
feature gate is disabled.

Default: *empty*

Example:
Expand Down
8 changes: 0 additions & 8 deletions docs/usage/customization-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ labels directly.
Note that RBAC rules must be created for each extension for them to be able to
create and manipulate NodeFeature objects in their namespace.

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

### A NodeFeature example

Consider the following referential example:
Expand Down
7 changes: 3 additions & 4 deletions docs/usage/nfd-gc.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ default garbage collector interval is set to 1h which is the value when no

## Configuration

In Helm deployments (see
[garbage collector parameters](../deployment/helm.md#garbage-collector-parameters))
NFD-GC will only be deployed when `featureGates.NodeFeatureAPI` or
`topologyUpdater.enable` is set to true.
In Helm deployments see
[garbage collector parameters](../deployment/helm.md#garbage-collector-parameters)
for altering the nfd-gc configuration.
14 changes: 0 additions & 14 deletions docs/usage/nfd-master.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,6 @@ and creates node labels accordingly. The feature data used as the input is
received from nfd-worker instances through
[NodeFeature](custom-resources.md#nodefeature-custom-resource) objects.

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

NFD-Master supports dynamic configuration through a configuration file. The
Expand Down
2 changes: 1 addition & 1 deletion pkg/features/features.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ var (
)

var DefaultNFDFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
NodeFeatureAPI: {Default: true, PreRelease: featuregate.Beta},
NodeFeatureAPI: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
DisableAutoPrefix: {Default: false, PreRelease: featuregate.Alpha},
NodeFeatureGroupAPI: {Default: false, PreRelease: featuregate.Alpha},
}
Loading

0 comments on commit 675684a

Please sign in to comment.