promote PodNodeSelector to stable; document detailed behavior (#7134)
* promote PodNodeSelector to stable; document detailed behavior * respond to feedback
This commit is contained in:
committed by
k8s-ci-robot
parent
e4580789e2
commit
eb562c04be
@@ -434,7 +434,7 @@ This admission controller defaults and limits what node selectors may be used wi
|
|||||||
|
|
||||||
#### Configuration File Format
|
#### Configuration File Format
|
||||||
|
|
||||||
PodNodeSelector uses a configuration file to set options for the behavior of the backend.
|
`PodNodeSelector` uses a configuration file to set options for the behavior of the backend.
|
||||||
Note that the configuration file format will move to a versioned file in a future release.
|
Note that the configuration file format will move to a versioned file in a future release.
|
||||||
This file may be json or yaml and has the following format:
|
This file may be json or yaml and has the following format:
|
||||||
|
|
||||||
@@ -445,7 +445,7 @@ podNodeSelectorPluginConfig:
|
|||||||
namespace2: <node-selectors-labels>
|
namespace2: <node-selectors-labels>
|
||||||
```
|
```
|
||||||
|
|
||||||
Reference the PodNodeSelector configuration file from the file provided to the API server's command line flag `--admission-control-config-file`:
|
Reference the `PodNodeSelector` configuration file from the file provided to the API server's command line flag `--admission-control-config-file`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
kind: AdmissionConfiguration
|
kind: AdmissionConfiguration
|
||||||
@@ -457,7 +457,7 @@ plugins:
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Configuration Annotation Format
|
#### Configuration Annotation Format
|
||||||
PodNodeSelector uses the annotation key `scheduler.alpha.kubernetes.io/node-selector` to assign node selectors to namespaces.
|
`PodNodeSelector` uses the annotation key `scheduler.kubernetes.io/node-selector` to assign node selectors to namespaces.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -468,6 +468,19 @@ metadata:
|
|||||||
name: namespace3
|
name: namespace3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Internal Behavior
|
||||||
|
This admission controller has the following behavior:
|
||||||
|
1. If the `Namespace` has an annotation with a key `scheduler.kubernetes.io/nodeSelector`, use its value as the
|
||||||
|
node selector.
|
||||||
|
1. If the namespace lacks such an annotation, use the `clusterDefaultNodeSelector` defined in the `PodNodeSelector`
|
||||||
|
plugin configuration file as the node selector.
|
||||||
|
1. Evaluate the pod's node selector against the namespace node selector for conflicts. Conflicts result in rejection.
|
||||||
|
1. Evaluate the pod's node selector against the namespace-specific whitelist defined the plugin configuration file.
|
||||||
|
Conflicts result in rejection.
|
||||||
|
|
||||||
|
**Note:** `PodTolerationRestriction` is more versatile and powerful than `PodNodeSelector` and can encompass the scenarios supported by `PodNodeSelector`.
|
||||||
|
{: .note}
|
||||||
|
|
||||||
### PersistentVolumeClaimResize
|
### PersistentVolumeClaimResize
|
||||||
|
|
||||||
This admission controller implements additional validations for checking incoming `PersistentVolumeClaim` resize requests.
|
This admission controller implements additional validations for checking incoming `PersistentVolumeClaim` resize requests.
|
||||||
|
|||||||
Reference in New Issue
Block a user