You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: Compatibility Version For Kubernetes Control Plane Components
3
+
reviewers:
4
+
- jpbetz
5
+
- siyuanfoundation
6
+
content_type: concept
7
+
weight: 70
8
+
---
9
+
10
+
<!-- overview -->
11
+
12
+
Since release v1.32, we introduced configurable version compatibility and emulation options to Kubernetes control plane components to make upgrades safer by providing more control and increasing the granularity of steps available to cluster administrators.
13
+
14
+
<!-- body -->
15
+
16
+
## Emulated Version
17
+
18
+
The emulation option is set by the `--emulated-version` flag of control plane components. It allows the component to emulate the behavior (APIs, features, ...) of an earlier version of Kubernetes.
19
+
20
+
When used, the capabilities available will match the emulated version:
21
+
* Any capabilities present in the binary version that were introduced after the emulation version will be unavailable.
22
+
* Any capabilities removed after the emulation version will be available.
23
+
24
+
This enables a binary from a particular Kubernetes release to emulate the behavior of a previous version with sufficient fidelity that interoperability with other system components can be defined in terms of the emulated version.
25
+
26
+
The `--emulated-version` must be <= `binaryVersion`. See the help message of the `--emulated-version` flag for supported range of emulated versions.
Copy file name to clipboardExpand all lines: content/en/docs/concepts/containers/container-lifecycle-hooks.md
+4
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,10 @@ Resources consumed by the command are counted against the Container.
58
58
* Sleep - Pauses the container for a specified duration.
59
59
This is a beta-level feature default enabled by the `PodLifecycleSleepAction`[feature gate](/docs/reference/command-line-tools-reference/feature-gates/).
60
60
61
+
{{< note >}}
62
+
Enable the `PodLifecycleSleepActionAllowZero` feature gate if you want to set a sleep duration of zero seconds (effectively a no-op) for your Sleep lifecycle hooks.
63
+
{{< /note >}}
64
+
61
65
### Hook handler execution
62
66
63
67
When a Container lifecycle management hook is called,
The `spec.versions[*].selectableFields` field of a {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}} may be used to
319
-
declare which other fields in a custom resource may be used in field selectors
320
-
with the feature of `CustomResourceFieldSelectors`
321
-
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) (This feature gate is enabled by default since Kubernetes v1.31).
319
+
declare which other fields in a custom resource may be used in field selectors.
320
+
322
321
The following example adds the `.spec.color` and `.spec.size` fields as
Copy file name to clipboardExpand all lines: content/en/docs/concepts/overview/working-with-objects/field-selectors.md
+9-1
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,14 @@ Error from server (BadRequest): Unable to find "ingresses" that match label sele
46
46
| Node |`spec.unschedulable`|
47
47
| CertificateSigningRequest |`spec.signerName`|
48
48
49
+
### Custom resources fields
50
+
51
+
All custom resource types support the `metadata.name` and `metadata.namespace` fields.
52
+
53
+
Additionally, the `spec.versions[*].selectableFields` field of a {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}}
54
+
declares which other fields in a custom resource may be used in field selectors. See [selectable fields for custom resources](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#crd-selectable-fields)
55
+
for more information about how to use field selectors with CustomResourceDefinitions.
56
+
49
57
## Supported operators
50
58
51
59
You can use the `=`, `==`, and `!=` operators with field selectors (`=` and `==` mean the same thing). This `kubectl` command, for example, selects all Kubernetes Services that aren't in the `default` namespace:
@@ -72,4 +80,4 @@ You can use field selectors across multiple resource types. This `kubectl` comma
72
80
73
81
```shell
74
82
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
Copy file name to clipboardExpand all lines: content/en/docs/concepts/overview/working-with-objects/names.md
+6
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,12 @@ of the same resource. API resources are distinguished by their API group, resour
32
32
In cases when objects represent a physical entity, like a Node representing a physical host, when the host is re-created under the same name without deleting and re-creating the Node, Kubernetes treats the new host as the old one, which may lead to inconsistencies.
33
33
{{< /note >}}
34
34
35
+
The server may generate a name when `generateName` is provided instead of `name` in a resource create request.
36
+
When `generateName` is used, the provided value is used as a name prefix, which server appends a generated suffix
37
+
to. Even though the name is generated, it may conflict with existing names resulting in a HTTP 409 resopnse. This
38
+
became far less likely to happen in Kubernetes v1.31 and later, since the server will make up to 8 attempt to generate a
39
+
unique name before returning a HTTP 409 response.
40
+
35
41
Below are four types of commonly used name constraints for resources.
0 commit comments