pkg/upgradereadiness/catalog.go
Rama main · réplica de lectura del repositorio original.
package upgradereadiness
const ReviewedThrough = "1.37"
var (
versionSkewReferences = []Reference{{
Title: "Kubernetes version skew policy",
URL: "https://kubernetes.io/releases/version-skew-policy/",
}}
manifestAPIReferences = []Reference{{
Title: "Kubernetes deprecated API migration guide",
URL: "https://kubernetes.io/docs/reference/using-api/deprecation-guide/",
}}
cloudMetricsPermissionReference = Reference{
Title: "Radar Cloud metrics permission",
URL: "https://github.com/skyhook-io/radar/blob/main/docs/authentication.md#cloud-mode-helm-bindings",
}
gitRepoReferences = []Reference{
{Title: "Kubernetes volumes: gitRepo", URL: "https://kubernetes.io/docs/concepts/storage/volumes/#gitrepo"},
{Title: "Kubernetes 1.36 removal announcement", URL: "https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/#removal-of-the-gitrepo-volume-driver"},
}
externalIPReferences = []Reference{{
Title: "Service externalIPs deprecation",
URL: "https://kubernetes.io/blog/2026/05/14/kubernetes-v1-36-deprecation-and-removal-of-service-externalips/",
}}
changelog136References = []Reference{{
Title: "Kubernetes 1.36 urgent upgrade notes",
URL: "https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.36.md#urgent-upgrade-notes",
}}
cgroupReferences = []Reference{
{Title: "Kubernetes kubelet metrics reference", URL: "https://kubernetes.io/docs/reference/instrumentation/metrics/"},
{Title: "Kubernetes 1.35 cgroup v1 deprecation", URL: "https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.35.md#deprecation"},
{Title: "KEP-4569: cgroup v1 maintenance mode", URL: "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4569-cgroup-v1-maintenance-mode"},
{Title: "KEP-5573: Remove cgroup v1 support", URL: "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/5573-remove-cgroup-v1"},
}
runtimeReferences = []Reference{{Title: "Kubernetes kubelet metrics reference", URL: "https://kubernetes.io/docs/reference/instrumentation/metrics/"}, {Title: "Kubernetes CRI cgroup driver support policy", URL: "https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/"}}
drainReferences = []Reference{{Title: "Safely drain a node", URL: "https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/"}, {Title: "Configure PodDisruptionBudgets", URL: "https://kubernetes.io/docs/tasks/run-application/configure-pdb/"}, {Title: "PodDisruptionBudget API", URL: "https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/"}}
admissionReferences = []Reference{{Title: "Admission webhook good practices", URL: "https://kubernetes.io/docs/concepts/cluster-administration/admission-webhooks-good-practices/"}, {Title: "Dynamic admission control", URL: "https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/"}}
admissionMatchPolicyReferences = []Reference{{Title: "Match all API versions", URL: "https://kubernetes.io/docs/concepts/cluster-administration/admission-webhooks-good-practices/#match-all-versions"}}
admissionBackendReferences = []Reference{
{Title: "Admission webhook failure policy", URL: "https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy"},
{Title: "Webhook availability guidance", URL: "https://kubernetes.io/docs/concepts/cluster-administration/admission-webhooks-good-practices/#ha-deployment"},
}
admissionAuthReviewReferences = []Reference{{Title: "Limit admission webhook scope", URL: "https://kubernetes.io/docs/concepts/cluster-administration/admission-webhooks-good-practices/#webhook-limit-scope"}}
crdConversionReferences = []Reference{{Title: "CRD webhook conversion", URL: "https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion"}}
apiServiceReferences = []Reference{{Title: "Kubernetes API aggregation layer", URL: "https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/"}, {Title: "APIService API", URL: "https://kubernetes.io/docs/reference/kubernetes-api/apiregistration/api-service-v1/"}}
strictIPReferences = []Reference{{Title: "KEP-4858: stricter validation of IP and CIDR fields", URL: "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4858-ip-cidr-validation"}}
gkeExecProbeReferences = []Reference{{Title: "GKE exec probe timeout behavior", URL: "https://cloud.google.com/kubernetes-engine/docs/deprecations/exec-probe-timeouts"}}
changelog137References = []Reference{{Title: "Kubernetes 1.37 release notes", URL: "https://github.com/kubernetes/kubernetes/blob/release-1.37/CHANGELOG/CHANGELOG-1.37.md"}}
featureGateLifecycleReferences137 = []Reference{
{Title: "Kubernetes 1.36 versioned feature lifecycle", URL: "https://github.com/kubernetes/kubernetes/blob/release-1.36/test/compatibility_lifecycle/reference/versioned_feature_list.yaml"},
{Title: "Kubernetes 1.37 versioned feature lifecycle", URL: "https://github.com/kubernetes/kubernetes/blob/release-1.37/test/compatibility_lifecycle/reference/versioned_feature_list.yaml"},
}
removedFeatureGateReferences137 = map[string][]Reference{
"AnonymousAuthConfigurableEndpoints": append([]Reference(nil), featureGateLifecycleReferences137...),
"APIServerTracing": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"AnyVolumeDataSource": {{Title: "Remove the AnyVolumeDataSource feature gate", URL: "https://github.com/kubernetes/kubernetes/pull/135336"}},
"AuthorizeNodeWithSelectors": append([]Reference(nil), featureGateLifecycleReferences137...),
"AuthorizeWithSelectors": append([]Reference(nil), featureGateLifecycleReferences137...),
"BtreeWatchCache": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"ConsistentListFromCache": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"GangScheduling": {{Title: "Merge scheduling feature gates into GenericWorkload", URL: "https://github.com/kubernetes/kubernetes/pull/139520"}},
"JobBackoffLimitPerIndex": append([]Reference(nil), featureGateLifecycleReferences137...),
"JobPodReplacementPolicy": append([]Reference(nil), featureGateLifecycleReferences137...),
"JobSuccessPolicy": append([]Reference(nil), featureGateLifecycleReferences137...),
"LogarithmicScaleDown": append([]Reference(nil), featureGateLifecycleReferences137...),
"OrderedNamespaceDeletion": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"PodLifecycleSleepAction": append([]Reference(nil), featureGateLifecycleReferences137...),
"PodLifecycleSleepActionAllowZero": append([]Reference(nil), featureGateLifecycleReferences137...),
"PreventStaticPodAPIReferences": {{Title: "Remove PreventStaticPodAPIReferences", URL: "https://github.com/kubernetes/kubernetes/pull/140226"}},
"RelaxedDNSSearchValidation": {{Title: "Remove RelaxedDNSSearchValidation", URL: "https://github.com/kubernetes/kubernetes/pull/139217"}},
"ResilientWatchCacheInitialization": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"RetryGenerateName": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"SchedulerQueueingHints": append([]Reference(nil), featureGateLifecycleReferences137...),
"SidecarContainers": {{Title: "Remove SidecarContainers", URL: "https://github.com/kubernetes/kubernetes/pull/137755"}},
"StreamingCollectionEncodingToJSON": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"StreamingCollectionEncodingToProtobuf": {{Title: "Remove locked GA feature gates", URL: "https://github.com/kubernetes/kubernetes/pull/138907"}},
"StructuredAuthenticationConfiguration": append([]Reference(nil), featureGateLifecycleReferences137...),
"WorkloadAwarePreemption": {{Title: "Merge scheduling feature gates into GenericWorkload", URL: "https://github.com/kubernetes/kubernetes/pull/139520"}},
}
lockedFeatureGateReferences137 = map[string][]Reference{
"DeclarativeValidationTakeover": {{Title: "Lock DeclarativeValidationTakeover to its default", URL: "https://github.com/kubernetes/kubernetes/pull/139212"}},
"DisableCPUQuotaWithExclusiveCPUs": append([]Reference(nil), featureGateLifecycleReferences137...),
"DRAExtendedResource": append([]Reference(nil), featureGateLifecycleReferences137...),
"DRAPrioritizedList": {{Title: "Lock DRAPrioritizedList to its default", URL: "https://github.com/kubernetes/kubernetes/pull/139110"}},
"DRAResourceClaimDeviceStatus": append([]Reference(nil), featureGateLifecycleReferences137...),
"HostnameOverride": {{Title: "Lock HostnameOverride to its default", URL: "https://github.com/kubernetes/kubernetes/pull/139116"}},
"HPAConfigurableTolerance": append([]Reference(nil), featureGateLifecycleReferences137...),
"InPlacePodVerticalScalingInitContainers": append([]Reference(nil), featureGateLifecycleReferences137...),
"NodeDeclaredFeatures": append([]Reference(nil), featureGateLifecycleReferences137...),
"PLEGOnDemandRelist": append([]Reference(nil), featureGateLifecycleReferences137...),
"PodReadyToStartContainersCondition": append([]Reference(nil), featureGateLifecycleReferences137...),
"RelaxedServiceNameValidation": append([]Reference(nil), featureGateLifecycleReferences137...),
"WatchCacheInitializationPostStartHook": append([]Reference(nil), featureGateLifecycleReferences137...),
}
componentFlagReferences137 = []Reference{{Title: "Remove no-op cloud provider controller registrations", URL: "https://github.com/kubernetes/kubernetes/pull/138002"}}
podGroupAdmissionReferences137 = []Reference{{Title: "Remove the PodGroupWorkloadExists admission plugin", URL: "https://github.com/kubernetes/kubernetes/pull/139008"}, {Title: "Kubernetes 1.37 changelog", URL: "https://github.com/kubernetes/kubernetes/blob/release-1.37/CHANGELOG/CHANGELOG-1.37.md"}}
cAdvisorRemovalReferences137 = []Reference{{Title: "Remove deprecated cAdvisor flags and metrics", URL: "https://github.com/kubernetes/kubernetes/pull/139870"}, {Title: "Kubernetes 1.37 changelog", URL: "https://github.com/kubernetes/kubernetes/blob/release-1.37/CHANGELOG/CHANGELOG-1.37.md"}}
eventRecordQPSReferences137 = []Reference{
{Title: "Make eventRecordQPS zero mean unlimited", URL: "https://github.com/kubernetes/kubernetes/pull/117119"},
{Title: "Kubelet 1.36 passes eventRecordQPS to client-go", URL: "https://github.com/kubernetes/kubernetes/blob/v1.36.0/cmd/kubelet/app/server.go#L726-L730"},
{Title: "client-go 1.36 default QPS is 5", URL: "https://github.com/kubernetes/kubernetes/blob/v1.36.0/staging/src/k8s.io/client-go/rest/config.go#L46-L49"},
{Title: "client-go 1.36 applies its default when QPS is zero", URL: "https://github.com/kubernetes/kubernetes/blob/v1.36.0/staging/src/k8s.io/client-go/rest/config.go#L370-L375"},
}
schedulingAPIReferences137 = []Reference{{Title: "Promote Workload and PodGroup APIs to v1beta1", URL: "https://github.com/kubernetes/kubernetes/pull/140184"}}
kubeadmV1Beta3References137 = []Reference{{Title: "Remove kubeadm v1beta3 and PublicKeysECDSA", URL: "https://github.com/kubernetes/kubernetes/pull/136016"}}
kubeadmFeatureGateReferences137 = map[string][]Reference{
"NodeLocalCRISocket": {{Title: "Remove the NodeLocalCRISocket feature gate", URL: "https://github.com/kubernetes/kubernetes/pull/138645"}},
"PublicKeysECDSA": append([]Reference(nil), kubeadmV1Beta3References137...),
}
metricReferences137 = map[string][]Reference{
"resourceclaim_controller_creates_total": {{Title: "Harmonize DRA ResourceClaim creation metrics", URL: "https://github.com/kubernetes/kubernetes/pull/138542"}},
"scheduler_resourceclaim_creates_total": {{Title: "Harmonize DRA ResourceClaim creation metrics", URL: "https://github.com/kubernetes/kubernetes/pull/138542"}},
"resourceclaim_controller_resource_claims": {{Title: "Harmonize DRA ResourceClaim creation metrics", URL: "https://github.com/kubernetes/kubernetes/pull/138542"}},
"container_cpu_load_average_10s": append([]Reference(nil), cAdvisorRemovalReferences137...),
"container_cpu_load_d_average_10s": append([]Reference(nil), cAdvisorRemovalReferences137...),
"container_tasks_state": append([]Reference(nil), cAdvisorRemovalReferences137...),
"container_application_*": append([]Reference(nil), cAdvisorRemovalReferences137...),
}
ipvsDeprecationReferences = []Reference{
{Title: "KEP-5495: Deprecate IPVS mode in kube-proxy", URL: "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/5495-deprecate-ipvs-mode-in-kube-proxy"},
{Title: "Add the KubeProxyIPVS feature gate", URL: "https://github.com/kubernetes/kubernetes/pull/139397"},
}
nftablesDefaultReferences = []Reference{
{Title: "KEP-5343: Make nftables the default kube-proxy backend", URL: "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/5343-nftables-to-default"},
{Title: "Warn when kube-proxy mode uses the implicit default", URL: "https://github.com/kubernetes/kubernetes/pull/139957"},
}
kubeProxyModeReferences = append(append([]Reference(nil), ipvsDeprecationReferences...), nftablesDefaultReferences...)
selinuxMountReferences = []Reference{
{Title: "SELinux volume label changes", URL: "https://kubernetes.io/blog/2026/04/22/breaking-changes-in-selinux-volume-labeling/"},
{Title: "Graduate SELinuxMount to GA", URL: "https://github.com/kubernetes/kubernetes/pull/139956"},
}
)