mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-13 11:25:19 +00:00
Promote kubescheduler.config.k8s.io to v1betav1
This commit is contained in:
@@ -8,7 +8,7 @@ go_library(
|
||||
deps = [
|
||||
"//pkg/scheduler/apis/config:go_default_library",
|
||||
"//pkg/scheduler/apis/config/v1:go_default_library",
|
||||
"//pkg/scheduler/apis/config/v1alpha2:go_default_library",
|
||||
"//pkg/scheduler/apis/config/v1beta1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
||||
@@ -38,7 +38,7 @@ go_test(
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||
"//staging/src/k8s.io/kube-scheduler/config/v1alpha2:go_default_library",
|
||||
"//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
|
||||
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
|
||||
"//vendor/k8s.io/utils/pointer:go_default_library",
|
||||
"//vendor/sigs.k8s.io/yaml:go_default_library",
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
kubeschedulerconfigv1 "k8s.io/kubernetes/pkg/scheduler/apis/config/v1"
|
||||
kubeschedulerconfigv1alpha2 "k8s.io/kubernetes/pkg/scheduler/apis/config/v1alpha2"
|
||||
kubeschedulerconfigv1beta1 "k8s.io/kubernetes/pkg/scheduler/apis/config/v1beta1"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -41,6 +41,6 @@ func init() {
|
||||
func AddToScheme(scheme *runtime.Scheme) {
|
||||
utilruntime.Must(kubeschedulerconfig.AddToScheme(scheme))
|
||||
utilruntime.Must(kubeschedulerconfigv1.AddToScheme(scheme))
|
||||
utilruntime.Must(kubeschedulerconfigv1alpha2.AddToScheme(scheme))
|
||||
utilruntime.Must(scheme.SetVersionPriority(kubeschedulerconfigv1alpha2.SchemeGroupVersion))
|
||||
utilruntime.Must(kubeschedulerconfigv1beta1.AddToScheme(scheme))
|
||||
utilruntime.Must(scheme.SetVersionPriority(kubeschedulerconfigv1beta1.SchemeGroupVersion))
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/kube-scheduler/config/v1alpha2"
|
||||
"k8s.io/kube-scheduler/config/v1beta1"
|
||||
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
"k8s.io/utils/pointer"
|
||||
"sigs.k8s.io/yaml"
|
||||
@@ -38,9 +38,9 @@ func TestCodecsDecodePluginConfig(t *testing.T) {
|
||||
wantProfiles []config.KubeSchedulerProfile
|
||||
}{
|
||||
{
|
||||
name: "v1alpha2 all plugin args in default profile",
|
||||
name: "v1beta1 all plugin args in default profile",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
@@ -142,15 +142,15 @@ profiles:
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "v1alpha2 plugins can include version and kind",
|
||||
name: "v1beta1 plugins can include version and kind",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
- name: NodeLabel
|
||||
args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: NodeLabelArgs
|
||||
presentLabels: ["bars"]
|
||||
`),
|
||||
@@ -169,22 +169,22 @@ profiles:
|
||||
{
|
||||
name: "plugin group and kind should match the type",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
- name: NodeLabel
|
||||
args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: InterPodAffinityArgs
|
||||
`),
|
||||
wantErr: "decoding .profiles[0].pluginConfig[0]: args for plugin NodeLabel were not of type NodeLabelArgs.kubescheduler.config.k8s.io, got InterPodAffinityArgs.kubescheduler.config.k8s.io",
|
||||
},
|
||||
{
|
||||
// TODO: do not replicate this case for v1beta1.
|
||||
name: "v1alpha2 case insensitive RequestedToCapacityRatioArgs",
|
||||
name: "v1beta1 case insensitive RequestedToCapacityRatioArgs",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
@@ -225,7 +225,7 @@ profiles:
|
||||
{
|
||||
name: "out-of-tree plugin args",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
@@ -251,7 +251,7 @@ profiles:
|
||||
{
|
||||
name: "empty and no plugin args",
|
||||
data: []byte(`
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: KubeSchedulerConfiguration
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
@@ -337,16 +337,16 @@ func TestCodecsEncodePluginConfig(t *testing.T) {
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "v1alpha2 in-tree and out-of-tree plugins",
|
||||
version: v1alpha2.SchemeGroupVersion,
|
||||
obj: &v1alpha2.KubeSchedulerConfiguration{
|
||||
Profiles: []v1alpha2.KubeSchedulerProfile{
|
||||
name: "v1beta1 in-tree and out-of-tree plugins",
|
||||
version: v1beta1.SchemeGroupVersion,
|
||||
obj: &v1beta1.KubeSchedulerConfiguration{
|
||||
Profiles: []v1beta1.KubeSchedulerProfile{
|
||||
{
|
||||
PluginConfig: []v1alpha2.PluginConfig{
|
||||
PluginConfig: []v1beta1.PluginConfig{
|
||||
{
|
||||
Name: "InterPodAffinity",
|
||||
Args: runtime.RawExtension{
|
||||
Object: &v1alpha2.InterPodAffinityArgs{
|
||||
Object: &v1beta1.InterPodAffinityArgs{
|
||||
HardPodAffinityWeight: pointer.Int32Ptr(5),
|
||||
},
|
||||
},
|
||||
@@ -354,7 +354,7 @@ func TestCodecsEncodePluginConfig(t *testing.T) {
|
||||
{
|
||||
Name: "VolumeBinding",
|
||||
Args: runtime.RawExtension{
|
||||
Object: &v1alpha2.VolumeBindingArgs{
|
||||
Object: &v1beta1.VolumeBindingArgs{
|
||||
BindTimeoutSeconds: pointer.Int64Ptr(300),
|
||||
},
|
||||
},
|
||||
@@ -362,11 +362,11 @@ func TestCodecsEncodePluginConfig(t *testing.T) {
|
||||
{
|
||||
Name: "RequestedToCapacityRatio",
|
||||
Args: runtime.RawExtension{
|
||||
Object: &v1alpha2.RequestedToCapacityRatioArgs{
|
||||
Shape: []v1alpha2.UtilizationShapePoint{
|
||||
Object: &v1beta1.RequestedToCapacityRatioArgs{
|
||||
Shape: []v1beta1.UtilizationShapePoint{
|
||||
{Utilization: 1, Score: 2},
|
||||
},
|
||||
Resources: []v1alpha2.ResourceSpec{
|
||||
Resources: []v1beta1.ResourceSpec{
|
||||
{Name: "lower", Weight: 2},
|
||||
},
|
||||
},
|
||||
@@ -375,8 +375,8 @@ func TestCodecsEncodePluginConfig(t *testing.T) {
|
||||
{
|
||||
Name: "NodeResourcesLeastAllocated",
|
||||
Args: runtime.RawExtension{
|
||||
Object: &v1alpha2.NodeResourcesLeastAllocatedArgs{
|
||||
Resources: []v1alpha2.ResourceSpec{
|
||||
Object: &v1beta1.NodeResourcesLeastAllocatedArgs{
|
||||
Resources: []v1beta1.ResourceSpec{
|
||||
{Name: "mem", Weight: 2},
|
||||
},
|
||||
},
|
||||
@@ -392,7 +392,7 @@ func TestCodecsEncodePluginConfig(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
want: `apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
want: `apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
clientConnection:
|
||||
acceptContentTypes: ""
|
||||
burst: 0
|
||||
@@ -411,17 +411,17 @@ leaderElection:
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
hardPodAffinityWeight: 5
|
||||
kind: InterPodAffinityArgs
|
||||
name: InterPodAffinity
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
bindTimeoutSeconds: 300
|
||||
kind: VolumeBindingArgs
|
||||
name: VolumeBinding
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: RequestedToCapacityRatioArgs
|
||||
resources:
|
||||
- Name: lower
|
||||
@@ -431,7 +431,7 @@ profiles:
|
||||
Utilization: 1
|
||||
name: RequestedToCapacityRatio
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: NodeResourcesLeastAllocatedArgs
|
||||
resources:
|
||||
- Name: mem
|
||||
@@ -443,8 +443,8 @@ profiles:
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "v1alpha2 in-tree and out-of-tree plugins from internal",
|
||||
version: v1alpha2.SchemeGroupVersion,
|
||||
name: "v1beta1 in-tree and out-of-tree plugins from internal",
|
||||
version: v1beta1.SchemeGroupVersion,
|
||||
obj: &config.KubeSchedulerConfiguration{
|
||||
Profiles: []config.KubeSchedulerProfile{
|
||||
{
|
||||
@@ -477,7 +477,7 @@ profiles:
|
||||
},
|
||||
},
|
||||
},
|
||||
want: `apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
want: `apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
bindTimeoutSeconds: 0
|
||||
clientConnection:
|
||||
acceptContentTypes: ""
|
||||
@@ -505,19 +505,19 @@ podMaxBackoffSeconds: 0
|
||||
profiles:
|
||||
- pluginConfig:
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
hardPodAffinityWeight: 5
|
||||
kind: InterPodAffinityArgs
|
||||
name: InterPodAffinity
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
kind: NodeResourcesMostAllocatedArgs
|
||||
resources:
|
||||
- Name: cpu
|
||||
Weight: 1
|
||||
name: NodeResourcesMostAllocated
|
||||
- args:
|
||||
apiVersion: kubescheduler.config.k8s.io/v1alpha2
|
||||
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||
bindTimeoutSeconds: 300
|
||||
kind: VolumeBindingArgs
|
||||
name: VolumeBinding
|
||||
|
||||
Reference in New Issue
Block a user