Skip to content

Commit

Permalink
kep-3983: revise beta requirements
Browse files Browse the repository at this point in the history
Signed-off-by: Sohan Kunkerkar <[email protected]>
  • Loading branch information
sohankunkerkar committed Nov 18, 2024
1 parent aacf050 commit fb5ba8b
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions keps/sig-node/3983-drop-in-configuration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*

## Summary

Add support for a drop-in configuration directory for the Kubelet. This directory can be specified via a `--config-dir` flag, and configuration files will be processed in alphanumeric order. The flag will be empty by default and if not specified, drop-in support will not be enabled. During the alpha phase, we introduced an environment variable called `KUBELET_CONFIG_DROPIN_DIR_ALPHA` to control the drop-in configuration directory for testing purposes. In the beta phase, we plan to set the default value for the `--config-dir` flag to `/etc/kubernetes/kubelet.conf.d`, while allowing users to opt out of it by setting the value to an empty string. Additionally, we will enhance the feature with E2E testing and streamline the configuration process. As part of this optimization, we will remove the `KUBELET_CONFIG_DROPIN_DIR_ALPHA` environment variable, simplifying configuration management. The feature will be enabled by default during the beta phase, and we will evaluate its status in future releases.
Add support for a drop-in configuration directory for the Kubelet. This directory can be specified via a `--config-dir` flag, and configuration files will be processed in alphanumeric order. The flag will be empty by default and if not specified, drop-in support will not be enabled. During the alpha phase, we introduced an environment variable called `KUBELET_CONFIG_DROPIN_DIR_ALPHA` to control the drop-in configuration directory for testing purposes. In the beta phase, we plan to leave `--config-dir` flag unset by default, encouraging users to opt in by specifying their desired configuration directory. Additionally, we will enhance the feature with E2E testing and streamline the configuration process. As part of this optimization, we will remove the `KUBELET_CONFIG_DROPIN_DIR_ALPHA` environment variable, simplifying configuration management. The feature will be enabled by default during the beta phase, and we will evaluate its status in future releases.


## Motivation
Expand Down Expand Up @@ -204,7 +204,7 @@ Add ability to support drop-in configuration directory.
Add ability to augment the feature's capabilities with a focus on robustness and testing, which includes:
- Ensure the correct kubelet configuration is displayed when queried using the `kubectl get --raw "/api/v1/nodes/{node-name}/proxy/configz"` command, particularly verifying the contents of the kubelet.conf.d directory.
- Remove the environment variable `KUBELET_CONFIG_DROPIN_DIR_ALPHA`, introduced during the Alpha phase, to streamline the user experience by simplifying configuration management.
- Set the default value of `--config-dir` to `/etc/kubernetes/kubelet.conf.d`. Users can disable this field by setting it to an empty string.
- Leave the `--config-dir` flag empty by default. Users can configure it by specifying a path.
- Add a version compatibility check for drop-in files to ensure alignment with the expected Kubelet configuration API version and catch discrepancies when future versions are introduced.
- Provide official guidance on the Kubernetes website for merging lists and structures in the kubelet configuration file, including documentation for the `/configz` endpoint.

Expand Down Expand Up @@ -233,7 +233,7 @@ All behavior change is encapsulated within the Kubelet, so there is no version s
- [] Feature gate
N/A

In addition to configuring the KUBELET_CONFIG_DROPIN_DIR_ALPHA environment variable, administrators must explicitly set the --config-dir flag in the kubelet's command-line interface (CLI) to enable this feature. Starting from the beta phase, specifying the --config-dir flag is the only way to enable this feature. The default value for `--config-dir` will be set to `/etc/kubernetes/kubelet.conf.d`, which means the feature will be enabled by default. Users can disable it by setting the value to an empty string.
In addition to configuring the KUBELET_CONFIG_DROPIN_DIR_ALPHA environment variable, administrators must explicitly set the --config-dir flag in the kubelet's command-line interface (CLI) to enable this feature. Starting from the beta phase, specifying the --config-dir flag is the only way to enable this feature. The default value for `--config-dir` is an empty string, which means the feature is disabled by default.

The decision to use an environment variable (KUBELET_CONFIG_DROPIN_DIR_ALPHA) over a feature gate was made to avoid potential conflicts in configuration settings. With the current configuration flow, feature gates could lead to unexpected behavior when CLI settings conflict with the kubelet.conf.d directory. The potential issue arises when the CLI initially sets the feature gate to "off," but the kubelet configuration specifies it as "on." In this scenario, the kubelet would start with the feature gate "off," switch it to "on" during configuration rendering, and then have conflicting settings when reading the kubelet.conf.d directory, leading to unexpected behavior. By using an environment variable during the alpha phase, we provided a simpler and more predictable way to control the drop-in configuration directory for testing. In the beta phase, we are removing this environment variable to streamline configuration management and enhance the user experience.

Expand Down

0 comments on commit fb5ba8b

Please sign in to comment.