add deprecated warning for node beta labels in pv/sc/rc/csi storage capacity
- (pv) deprecated label using warning for node affinity - (storageclass) deprecated node labels: allowedTopologies.matchLabelExpressions.key - (CSIStorageCapacity) deprecated node labels - (RuntimeClass) deprecated node labels
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
nodeapi "k8s.io/kubernetes/pkg/api/node"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/core/pods"
|
||||
)
|
||||
@@ -60,14 +61,6 @@ func GetWarningsForPodTemplate(ctx context.Context, fieldPath *field.Path, podTe
|
||||
return warningsForPodSpecAndMeta(fieldPath, &podTemplate.Spec, &podTemplate.ObjectMeta, oldSpec, oldMeta)
|
||||
}
|
||||
|
||||
var deprecatedNodeLabels = map[string]string{
|
||||
`beta.kubernetes.io/arch`: `deprecated since v1.14; use "kubernetes.io/arch" instead`,
|
||||
`beta.kubernetes.io/os`: `deprecated since v1.14; use "kubernetes.io/os" instead`,
|
||||
`failure-domain.beta.kubernetes.io/region`: `deprecated since v1.17; use "topology.kubernetes.io/region" instead`,
|
||||
`failure-domain.beta.kubernetes.io/zone`: `deprecated since v1.17; use "topology.kubernetes.io/zone" instead`,
|
||||
`beta.kubernetes.io/instance-type`: `deprecated since v1.17; use "node.kubernetes.io/instance-type" instead`,
|
||||
}
|
||||
|
||||
var deprecatedAnnotations = []struct {
|
||||
key string
|
||||
prefix string
|
||||
@@ -92,7 +85,7 @@ func warningsForPodSpecAndMeta(fieldPath *field.Path, podSpec *api.PodSpec, meta
|
||||
|
||||
// use of deprecated node labels in selectors/affinity/topology
|
||||
for k := range podSpec.NodeSelector {
|
||||
if msg, deprecated := deprecatedNodeLabels[k]; deprecated {
|
||||
if msg, deprecated := nodeapi.DeprecatedNodeLabels[k]; deprecated {
|
||||
warnings = append(warnings, fmt.Sprintf("%s: %s", fieldPath.Child("spec", "nodeSelector").Key(k), msg))
|
||||
}
|
||||
}
|
||||
@@ -101,7 +94,7 @@ func warningsForPodSpecAndMeta(fieldPath *field.Path, podSpec *api.PodSpec, meta
|
||||
if n.RequiredDuringSchedulingIgnoredDuringExecution != nil {
|
||||
for i, t := range n.RequiredDuringSchedulingIgnoredDuringExecution.NodeSelectorTerms {
|
||||
for j, e := range t.MatchExpressions {
|
||||
if msg, deprecated := deprecatedNodeLabels[e.Key]; deprecated {
|
||||
if msg, deprecated := nodeapi.DeprecatedNodeLabels[e.Key]; deprecated {
|
||||
warnings = append(
|
||||
warnings,
|
||||
fmt.Sprintf(
|
||||
@@ -119,7 +112,7 @@ func warningsForPodSpecAndMeta(fieldPath *field.Path, podSpec *api.PodSpec, meta
|
||||
}
|
||||
for i, t := range n.PreferredDuringSchedulingIgnoredDuringExecution {
|
||||
for j, e := range t.Preference.MatchExpressions {
|
||||
if msg, deprecated := deprecatedNodeLabels[e.Key]; deprecated {
|
||||
if msg, deprecated := nodeapi.DeprecatedNodeLabels[e.Key]; deprecated {
|
||||
warnings = append(
|
||||
warnings,
|
||||
fmt.Sprintf(
|
||||
@@ -137,7 +130,7 @@ func warningsForPodSpecAndMeta(fieldPath *field.Path, podSpec *api.PodSpec, meta
|
||||
}
|
||||
}
|
||||
for i, t := range podSpec.TopologySpreadConstraints {
|
||||
if msg, deprecated := deprecatedNodeLabels[t.TopologyKey]; deprecated {
|
||||
if msg, deprecated := nodeapi.DeprecatedNodeLabels[t.TopologyKey]; deprecated {
|
||||
warnings = append(warnings, fmt.Sprintf(
|
||||
"%s: %s is %s",
|
||||
fieldPath.Child("spec", "topologySpreadConstraints").Index(i).Child("topologyKey"),
|
||||
|
Reference in New Issue
Block a user