Skip to content

Instantly share code, notes, and snippets.

@gnufied
Last active November 22, 2017 13:33
Show Gist options
  • Save gnufied/9f95650ec3864a10bf613ff7106fb302 to your computer and use it in GitHub Desktop.
Save gnufied/9f95650ec3864a10bf613ff7106fb302 to your computer and use it in GitHub Desktop.
-- Inside node_auth.test
^^^^^^^^^^ Original object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"/api/v1/namespaces/ns/persistentvolumeclaims/mypvc", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"1796", Generation:0
, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initialize
rs)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:core.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource
.int64Amount{value:1, scale:0}, d:resource.infDecAmount{Dec:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacit
y:core.ResourceList(nil), Conditions:[]core.PersistentVolumeClaimCondition(nil)}}
!!!! Outgoing json patch is {"Status":{"Phase":"Bound"}}
--- Inside apply_patch function:
********** Patch json is {"Status":{"Phase":"Bound"}}
********** Calling strategic merge function **********
---- The output is from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go#L263
********** Updated object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"1796", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0
, ext:63646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}
, Spec:core.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:resource.infDecAm
ount{Dec:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions:[]core.Persist
entVolumeClaimCondition(nil)}}
--- Inside noderestriction admission controller
********** Old Object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63
646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:c
ore.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:resource.infDecAmount{Dec
:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions:[]core.PersistentVolum
eClaimCondition(nil)}}
********** New Object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63
646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:c
ore.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:resource.infDecAmount{Dec
:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions:[]core.PersistentVolum
eClaimCondition(nil)}}
--- Inside apply_patch function again
********** Patch json is {"Status":{"Phase":"Bound"}}
Got a conflict
---- The output is from line - https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go#L347
********** Updated object after conflict is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"1796", Generation:0, CreationTimestamp:v1.Time{Time:tim
e.Time{wall:0x0, ext:63646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil),
ClusterName:""}, Spec:core.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:re
source.infDecAmount{Dec:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions
:[]core.PersistentVolumeClaimCondition(nil)}}
--- Inside nodestriction admission controller again
********** Old Object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63
646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:c
ore.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:resource.infDecAmount{Dec
:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions:[]core.PersistentVolum
eClaimCondition(nil)}}
********** New Object is &core.PersistentVolumeClaim{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"mypvc", GenerateName:"", Namespace:"ns", SelfLink:"", UID:"fff05c83-cf86-11e7-83e4-0242ac110002", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63
646953238, loc:(*time.Location)(0x957dda0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:c
ore.PersistentVolumeClaimSpec{AccessModes:[]core.PersistentVolumeAccessMode{"ReadOnlyMany"}, Selector:(*v1.LabelSelector)(nil), Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList{"storage":resource.Quantity{i:resource.int64Amount{value:1, scale:0}, d:resource.infDecAmount{Dec
:(*inf.Dec)(nil)}, s:"1", Format:"DecimalSI"}}}, VolumeName:"", StorageClassName:(*string)(nil), VolumeMode:(*core.PersistentVolumeMode)(nil)}, Status:core.PersistentVolumeClaimStatus{Phase:"Pending", AccessModes:[]core.PersistentVolumeAccessMode(nil), Capacity:core.ResourceList(nil), Conditions:[]core.PersistentVolum
eClaimCondition(nil)}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment