mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 18:53:35 +00:00
rebase: update replaced k8s.io modules to v0.33.0
Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
committed by
mergify[bot]
parent
dd77e72800
commit
107407b44b
52
e2e/vendor/k8s.io/kubernetes/pkg/api/service/warnings.go
generated
vendored
52
e2e/vendor/k8s.io/kubernetes/pkg/api/service/warnings.go
generated
vendored
@ -18,8 +18,8 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/netip"
|
||||
|
||||
utilvalidation "k8s.io/apimachinery/pkg/util/validation"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/core/helper"
|
||||
@ -37,20 +37,20 @@ func GetWarningsForService(service, oldService *api.Service) []string {
|
||||
|
||||
if helper.IsServiceIPSet(service) {
|
||||
for i, clusterIP := range service.Spec.ClusterIPs {
|
||||
warnings = append(warnings, getWarningsForIP(field.NewPath("spec").Child("clusterIPs").Index(i), clusterIP)...)
|
||||
warnings = append(warnings, utilvalidation.GetWarningsForIP(field.NewPath("spec").Child("clusterIPs").Index(i), clusterIP)...)
|
||||
}
|
||||
}
|
||||
|
||||
for i, externalIP := range service.Spec.ExternalIPs {
|
||||
warnings = append(warnings, getWarningsForIP(field.NewPath("spec").Child("externalIPs").Index(i), externalIP)...)
|
||||
warnings = append(warnings, utilvalidation.GetWarningsForIP(field.NewPath("spec").Child("externalIPs").Index(i), externalIP)...)
|
||||
}
|
||||
|
||||
if len(service.Spec.LoadBalancerIP) > 0 {
|
||||
warnings = append(warnings, getWarningsForIP(field.NewPath("spec").Child("loadBalancerIP"), service.Spec.LoadBalancerIP)...)
|
||||
warnings = append(warnings, utilvalidation.GetWarningsForIP(field.NewPath("spec").Child("loadBalancerIP"), service.Spec.LoadBalancerIP)...)
|
||||
}
|
||||
|
||||
for i, cidr := range service.Spec.LoadBalancerSourceRanges {
|
||||
warnings = append(warnings, getWarningsForCIDR(field.NewPath("spec").Child("loadBalancerSourceRanges").Index(i), cidr)...)
|
||||
warnings = append(warnings, utilvalidation.GetWarningsForCIDR(field.NewPath("spec").Child("loadBalancerSourceRanges").Index(i), cidr)...)
|
||||
}
|
||||
|
||||
if service.Spec.Type == api.ServiceTypeExternalName && len(service.Spec.ExternalIPs) > 0 {
|
||||
@ -62,45 +62,3 @@ func GetWarningsForService(service, oldService *api.Service) []string {
|
||||
|
||||
return warnings
|
||||
}
|
||||
|
||||
func getWarningsForIP(fieldPath *field.Path, address string) []string {
|
||||
// IPv4 addresses with leading zeros CVE-2021-29923 are not valid in golang since 1.17
|
||||
// This will also warn about possible future changes on the golang std library
|
||||
// xref: https://issues.k8s.io/108074
|
||||
ip, err := netip.ParseAddr(address)
|
||||
if err != nil {
|
||||
return []string{fmt.Sprintf("%s: IP address was accepted, but will be invalid in a future Kubernetes release: %v", fieldPath, err)}
|
||||
}
|
||||
// A Recommendation for IPv6 Address Text Representation
|
||||
//
|
||||
// "All of the above examples represent the same IPv6 address. This
|
||||
// flexibility has caused many problems for operators, systems
|
||||
// engineers, and customers.
|
||||
// ..."
|
||||
// https://datatracker.ietf.org/doc/rfc5952/
|
||||
if ip.Is6() && ip.String() != address {
|
||||
return []string{fmt.Sprintf("%s: IPv6 address %q is not in RFC 5952 canonical format (%q), which may cause controller apply-loops", fieldPath, address, ip.String())}
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
||||
func getWarningsForCIDR(fieldPath *field.Path, cidr string) []string {
|
||||
// IPv4 addresses with leading zeros CVE-2021-29923 are not valid in golang since 1.17
|
||||
// This will also warn about possible future changes on the golang std library
|
||||
// xref: https://issues.k8s.io/108074
|
||||
prefix, err := netip.ParsePrefix(cidr)
|
||||
if err != nil {
|
||||
return []string{fmt.Sprintf("%s: IP prefix was accepted, but will be invalid in a future Kubernetes release: %v", fieldPath, err)}
|
||||
}
|
||||
// A Recommendation for IPv6 Address Text Representation
|
||||
//
|
||||
// "All of the above examples represent the same IPv6 address. This
|
||||
// flexibility has caused many problems for operators, systems
|
||||
// engineers, and customers.
|
||||
// ..."
|
||||
// https://datatracker.ietf.org/doc/rfc5952/
|
||||
if prefix.Addr().Is6() && prefix.String() != cidr {
|
||||
return []string{fmt.Sprintf("%s: IPv6 prefix %q is not in RFC 5952 canonical format (%q), which may cause controller apply-loops", fieldPath, cidr, prefix.String())}
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
30
e2e/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go
generated
vendored
30
e2e/vendor/k8s.io/kubernetes/pkg/api/v1/pod/util.go
generated
vendored
@ -23,6 +23,8 @@ import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
)
|
||||
|
||||
// FindPort locates the container port for the given pod and portName. If the
|
||||
@ -416,3 +418,31 @@ func IsRestartableInitContainer(initContainer *v1.Container) bool {
|
||||
}
|
||||
return *initContainer.RestartPolicy == v1.ContainerRestartPolicyAlways
|
||||
}
|
||||
|
||||
// We will emit status.observedGeneration if the feature is enabled OR if status.observedGeneration is already set.
|
||||
// This protects against an infinite loop of kubelet trying to clear the value after the FG is turned off, and
|
||||
// the API server preserving existing values when an incoming update tries to clear it.
|
||||
func GetPodObservedGenerationIfEnabled(pod *v1.Pod) int64 {
|
||||
if pod.Status.ObservedGeneration != 0 || utilfeature.DefaultFeatureGate.Enabled(features.PodObservedGenerationTracking) {
|
||||
return pod.Generation
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// We will emit condition.observedGeneration if the feature is enabled OR if condition.observedGeneration is already set.
|
||||
// This protects against an infinite loop of kubelet trying to clear the value after the FG is turned off, and
|
||||
// the API server preserving existing values when an incoming update tries to clear it.
|
||||
func GetPodObservedGenerationIfEnabledOnCondition(podStatus *v1.PodStatus, generation int64, conditionType v1.PodConditionType) int64 {
|
||||
if podStatus == nil {
|
||||
return 0
|
||||
}
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.PodObservedGenerationTracking) {
|
||||
return generation
|
||||
}
|
||||
for _, condition := range podStatus.Conditions {
|
||||
if condition.Type == conditionType && condition.ObservedGeneration != 0 {
|
||||
return generation
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
Reference in New Issue
Block a user