Skip to content

Commit f017991

Browse files
committed
docs: adding FEATURE-GATES.md file
Basic instructions on how to use feature gates. Signed-off-by: Beraldo Leal <[email protected]>
1 parent ab1a554 commit f017991

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

docs/FEATURE-GATES.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Feature Gates
2+
3+
Feature Gates in the Openshift Sandboxed Containers operator allow
4+
administrators to enable or disable specific features. These features are
5+
controlled through the `FeatureGates` struct in the operator's configuration,
6+
providing a flexible approach to testing new features and managing the rollout
7+
of stable functionalities.
8+
9+
## Maturity Levels
10+
11+
Our feature gates adhere to simplified lifecycle stages inspired by Kubernetes:
12+
13+
- **DevPreview**:
14+
- Disabled by default.
15+
- May contain bugs; enabling the feature could expose these bugs.
16+
- No long-term support guarantees.
17+
18+
- **TechPreview**:
19+
- Usually disabled by default.
20+
- Support for the feature will not be dropped, but details may change.
21+
- Recommended for non-business-critical usage due to potential for changes.
22+
23+
- **GA (General Availability)**:
24+
- Enabled by default
25+
- Well-tested and considered safe.
26+
- Stable features will be maintained in future software releases.
27+
28+
## Disclaimer
29+
30+
> [!WARNING]
31+
> Remember, the availability and default state of each feature may change between
32+
> releases as features progress through their maturity levels. Always refer to
33+
> the latest documentation for up-to-date information on feature support and
34+
> configuration.
35+
36+
## Configuring Feature Gates
37+
38+
Feature gates can be enabled or disabled by editing the `osc-feature-gates` ConfigMap
39+
resource. Each feature gate allows you to toggle specific functionalities,
40+
adjusting your cluster's behavior as needed.
41+
42+
### Enabling and disabling features
43+
44+
To enable a feature, you modify your `ConfigMap` object like so:
45+
46+
```yaml
47+
apiVersion: v1
48+
kind: ConfigMap
49+
metadata:
50+
name: osc-feature-gates
51+
namespace: openshift-sandboxed-containers-operator
52+
data:
53+
timeTravel: "true"
54+
quantumEntanglementSync: "false"
55+
autoHealingWithAI: "true"
56+
```
57+
58+
In this example, `timeTravel` is explicitly enabled, while
59+
`quantumEntanglementSync` is disabled, and `autoHealingWithAI` is enabled,
60+
showcasing how to manage the state of each feature individually. Regardless the
61+
default values they have.

0 commit comments

Comments
 (0)