Skip to content

Commit 0e1aaa6

Browse files
committed
Update documentation to reflect changes in configuration paths for predefined and custom feature sets, ensuring clarity in setup and validation rules.
1 parent e16826d commit 0e1aaa6

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

enhancements/microshift/enabling-user-specified-featuregates.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ MicroShift does not deploy these operators and must a different approach which i
6666
6767
The implementation includes:
6868

69-
1. **FeatureGate Configuration**: Extend MicroShift's configuration file to include `featureGates` section with fields inspired by OpenShift's FeatureGate CRD spec (`featureSet` and `customNoUpgrade`)
69+
1. **FeatureGate Configuration**: Extend MicroShift's configuration file to include `apiServer.featureGates` section with fields inspired by OpenShift's FeatureGate CRD spec (`featureSet` and `customNoUpgrade`)
7070
2. **Predefined Feature Sets**: Support for predefined feature sets like `TechPreviewNoUpgrade` and `DevPreviewNoUpgrade`
7171
3. **Custom Feature Gates**: Support for individual feature gate enablement/disablement via `customNoUpgrade` configuration
7272
4. **API Server Propagation**: All configured featureGates will be passed to the kube-apiserver, which handles propagation to other Kubernetes components (kubelet, kube-controller-manager, kube-scheduler). Service restarts are the responsibility of the cluster admin.
@@ -82,8 +82,8 @@ The implementation includes:
8282
##### First Time Configuring Feature Gates
8383
1. MicroShift Administrator identifies a need for specific feature gates (e.g., `CPUManagerPolicyAlphaOptions`)
8484
2. Administrator chooses between two configuration approaches:
85-
- **Predefined Feature Set**: Configure `featureGates.featureSet: TechPreviewNoUpgrade` or `DevPreviewNoUpgrade` for a curated set of preview features
86-
- **Custom Feature Gates**: Configure `featureGates.featureSet: CustomNoUpgrade` and specify individual features in `featureGates.customNoUpgrade.enabled/disabled` lists
85+
- **Predefined Feature Set**: Configure `apiServer.featureGates.featureSet: TechPreviewNoUpgrade` or `DevPreviewNoUpgrade` for a curated set of preview features
86+
- **Custom Feature Gates**: Configure `apiServer.featureGates.featureSet: CustomNoUpgrade` and specify individual features in `apiServer.featureGates.customNoUpgrade.enabled/disabled` lists
8787
3. Administrator updates `/etc/microshift/config.yaml` with the chosen configuration
8888
4. Administrator restarts MicroShift service
8989
5. MicroShift detects the custom FeatureGate configuration.
@@ -138,24 +138,26 @@ The resource consumption impact will be minimal as this enhancement only adds co
138138

139139
#### Configuration Schema Extension
140140

141-
The MicroShift configuration file will be extended to include a new `featureGates` section with a structure inspired by the OpenShift FeatureGate CRD specification. MicroShift users will configure feature gates in `/etc/microshift/config.yaml`:
141+
The MicroShift configuration file will be extended to include a new `apiServer.featureGates` section with a structure inspired by the OpenShift FeatureGate CRD specification. MicroShift users will configure feature gates in `/etc/microshift/config.yaml`:
142142

143143
**Predefined Feature Set Configuration:**
144144
```yaml
145-
featureGates:
146-
featureSet: TechPreviewNoUpgrade
145+
apiServer:
146+
featureGates:
147+
featureSet: TechPreviewNoUpgrade
147148
```
148149
149150
**Custom Feature Gates Configuration:**
150151
```yaml
151-
featureGates:
152-
featureSet: CustomNoUpgrade
153-
customNoUpgrade:
154-
enabled:
155-
- "CPUManagerPolicyAlphaOptions"
156-
- "MemoryQoS"
157-
disabled:
158-
- "SomeDefaultEnabledFeature"
152+
apiServer:
153+
featureGates:
154+
featureSet: CustomNoUpgrade
155+
customNoUpgrade:
156+
enabled:
157+
- "CPUManagerPolicyAlphaOptions"
158+
- "MemoryQoS"
159+
disabled:
160+
- "SomeDefaultEnabledFeature"
159161
```
160162
161163
**Configuration Rules:**
@@ -204,8 +206,8 @@ Each component will then internally process these settings according to its capa
204206
#### Validation and Error Handling
205207

206208
- **Configuration Parsing**: MicroShift will replicate OpenShift's schema rules as start-time validation checks:
207-
- **Conflicting Feature Gate Settings**: A feature gate appears in both `.customNoUpgrade.enabled` and `.customNoUpgrade.disabled`
208-
- **Conflicting Feature Set Settings**: Feature gates are defined under `.customNoUpgrade.[enabled|disabled]` but `.featureSet:` is not `customNoUpgrade`.
209+
- **Conflicting Feature Gate Settings**: A feature gate appears in both `.apiServer.featureGates.customNoUpgrade.enabled` and `.apiServer.featureGates.customNoUpgrade.disabled`
210+
- **Conflicting Feature Set Settings**: Feature gates are defined under `.apiServer.featureGates.customNoUpgrade.[enabled|disabled]` but `.apiServer.featureGates.featureSet:` is not `customNoUpgrade`.
209211
- **API Server Validation**: The kube-apiserver does not validate the feature gates it receives from MicroShift before propagating them. This behavior is the same on OpenShift
210212
- **Component-level Validation**: Unrecognized feature-gate values are ignored by components. The component will only log them as a warning
211213
- **Startup Failures**: May occur when featureGate settings conflict (i.e. a featureGate is both enabled and disabled)
@@ -366,7 +368,7 @@ Any changes to the MicroShift configuration schema must be backwards compatible
366368
### Reverting Custom Feature Gate Configurations To Default
367369

368370
**Recovery Procedures:**
369-
- To restore MicroShift to a stable and supported state, users must run `$ sudo microshift-cleanup-data --all`, set `.featureGates: {}`, and restart MicroShift
371+
- To restore MicroShift to a stable and supported state, users must run `$ sudo microshift-cleanup-data --all`, set `.apiServer.featureGates: {}`, and restart MicroShift
370372

371373
### Upgrade / Rollback
372374
- Upgrades when custom feature gates are configured cause MicroShift to fail to start. See [Attempt to Upgrade Node with Custom Feature Gates](#attempt-to-upgrade-node-with-custom-feature-gates).

0 commit comments

Comments
 (0)