use ownerReference to build default spreading contraints in the scheduler

This commit is contained in:
Abdullah Gharaibeh
2021-05-23 16:41:40 -04:00
parent 863e22cc93
commit 6c0976814c
4 changed files with 201 additions and 137 deletions

View File

@@ -19,10 +19,12 @@ package testing
import (
"fmt"
v1 "k8s.io/api/core/v1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/utils/pointer"
)
var zero int64
@@ -170,6 +172,19 @@ func (p *PodWrapper) Namespace(s string) *PodWrapper {
return p
}
// OwnerReference updates the owning controller of the pod.
func (p *PodWrapper) OwnerReference(name string, gvk schema.GroupVersionKind) *PodWrapper {
p.OwnerReferences = []metav1.OwnerReference{
{
APIVersion: gvk.GroupVersion().String(),
Kind: gvk.Kind,
Name: name,
Controller: pointer.BoolPtr(true),
},
}
return p
}
// Container appends a container into PodSpec of the inner pod.
func (p *PodWrapper) Container(s string) *PodWrapper {
p.Spec.Containers = append(p.Spec.Containers, v1.Container{