Skip to content

Commit

Permalink
wip debug
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Aug 20, 2020
1 parent 9d72e7b commit aebb312
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 9 deletions.
12 changes: 10 additions & 2 deletions pkg/apis/core/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/klog"
// "runtime/debug"
)

const (
Expand Down Expand Up @@ -2927,8 +2929,12 @@ type PodSpec struct {
}

func (ps *PodSpec) Workloads() []CommonInfo {
if len(ps.WorkloadInfo) == 0 {
klog.Infof("debug workload called. stack:")
// debug.PrintStack()

// if len(ps.WorkloadInfo) == 0 {
if ps.VirtualMachine != nil {
klog.Infof("debug vm resource: %v", ps.VirtualMachine.Resources)
ps.WorkloadInfo = make([]CommonInfo, 1)
ps.WorkloadInfo[0].Name = ps.VirtualMachine.Name
ps.WorkloadInfo[0].Image = ps.VirtualMachine.Image
Expand All @@ -2940,6 +2946,7 @@ func (ps *PodSpec) Workloads() []CommonInfo {
} else {
ps.WorkloadInfo = make([]CommonInfo, len(ps.Containers))
for i := range ps.Containers {
klog.Infof("debug container resource: %v", ps.Containers[i].Resources)
ps.WorkloadInfo[i].Name = ps.Containers[i].Name
ps.WorkloadInfo[i].Image = ps.Containers[i].Image
ps.WorkloadInfo[i].ImagePullPolicy = ps.Containers[i].ImagePullPolicy
Expand All @@ -2949,11 +2956,12 @@ func (ps *PodSpec) Workloads() []CommonInfo {
ps.WorkloadInfo[i].VolumeMounts = ps.Containers[i].VolumeMounts
}
}
}
//}
return ps.WorkloadInfo
}

func (ps *PodSpec) SetWorkloads() {
klog.Infof("debug SetWorkloads called")
// Update mutable fields
if len(ps.WorkloadInfo) != 0 {
if ps.VirtualMachine != nil {
Expand Down
6 changes: 6 additions & 0 deletions pkg/apis/core/validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -3709,6 +3709,9 @@ func ValidatePodUpdate(newPod, oldPod *core.Pod) field.ErrorList {
allErrs = append(allErrs, ValidatePodSpecificAnnotationUpdates(newPod, oldPod, fldPath.Child("annotations"))...)
specPath := field.NewPath("spec")

klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", newPod.Spec, newPod.Spec.WorkloadInfo)

// validate updateable fields:
// 1. spec.containers[*].image
// 2. spec.initContainers[*].image
Expand Down Expand Up @@ -3847,6 +3850,9 @@ func ValidatePodUpdate(newPod, oldPod *core.Pod) field.ErrorList {
// munge spec.nics
mungedPod.Spec.Nics = oldPod.Spec.Nics

// munge spec.workloadinfo
mungedPod.Spec.WorkloadInfo = oldPod.Spec.WorkloadInfo

// Allow only additions to tolerations updates.
mungedPod.Spec.Tolerations = oldPod.Spec.Tolerations
allErrs = append(allErrs, validateOnlyAddedTolerations(newPod.Spec.Tolerations, oldPod.Spec.Tolerations, specPath.Child("tolerations"))...)
Expand Down
3 changes: 3 additions & 0 deletions pkg/registry/core/pod/strategy.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"strconv"
"strings"
"time"
"k8s.io/klog"

"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -168,6 +169,8 @@ var StatusStrategy = podStatusStrategy{Strategy}
func (podStatusStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
newPod := obj.(*api.Pod)
oldPod := old.(*api.Pod)
klog.Infof("debug5 newpod %v, spec: %v", newPod.Name, newPod.Spec)

newPod.Spec = oldPod.Spec
newPod.DeletionTimestamp = nil

Expand Down
18 changes: 11 additions & 7 deletions plugin/pkg/admission/podresourceallocation/admission.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,15 @@ func (p *Plugin) Admit(attributes admission.Attributes, o admission.ObjectInterf
return apierrors.NewBadRequest("Resource was marked with kind Pod but was unable to be converted")
}

klog.V(4).Infof("debug3: newpod %v: spec: %v, workloadInfo: %v", pod.Name, pod.Spec, pod.Spec.WorkloadInfo)

op := attributes.GetOperation()
// mutation to set defaults is done in admission plugin rather than in defaults
// because doing it here allows us to support create/update from older client versions
switch op {
case admission.Create:
klog.V(4).Infof("debug2: newpod %v: spec: %v, workloadInfo: %v", pod.Name, pod.Spec, pod.Spec.WorkloadInfo)

podQoS := qos.GetPodQOS(pod)
for i := range pod.Spec.Workloads() {
// set container resize policy to nil for best-effort class
Expand Down Expand Up @@ -117,8 +121,8 @@ func (p *Plugin) Admit(attributes admission.Attributes, o admission.ObjectInterf

case admission.Update:
oldPod, ok := attributes.GetOldObject().(*api.Pod)
klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", pod.Spec, pod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: oldpod %v: spec: %v, workloadInfo: %v", oldPod.Name, oldPod.Spec, oldPod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: newpod %v: spec: %v, workloadInfo: %v", pod.Name, pod.Spec, pod.Spec.WorkloadInfo)

if !ok {
return apierrors.NewBadRequest("Resource was marked with kind Pod but was unable to be converted")
Expand All @@ -140,13 +144,13 @@ func (p *Plugin) Admit(attributes admission.Attributes, o admission.ObjectInterf
}
}

klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", pod.Spec, pod.Spec.WorkloadInfo)
klog.V(4).Infof("debug: SetWorkloads")
//klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", pod.Spec, pod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: SetWorkloads")
pod.Spec.SetWorkloads()

klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", pod.Spec, pod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: oldpod: spec: %v, workloadInfo: %v", oldPod.Spec, oldPod.Spec.WorkloadInfo)
//klog.V(4).Infof("debug: newpod: spec: %v, workloadInfo: %v", pod.Spec, pod.Spec.WorkloadInfo)
}
return nil
}
Expand Down

0 comments on commit aebb312

Please sign in to comment.