Commit 4f84a1cb authored by Ayush Pateria's avatar Ayush Pateria

Pass pod labels to controller revision

parent 8de89d9f
...@@ -18,7 +18,6 @@ package history ...@@ -18,7 +18,6 @@ package history
import ( import (
"bytes" "bytes"
"encoding/json"
"fmt" "fmt"
"hash/fnv" "hash/fnv"
"sort" "sort"
...@@ -63,11 +62,12 @@ func ControllerRevisionName(prefix string, hash uint32) string { ...@@ -63,11 +62,12 @@ func ControllerRevisionName(prefix string, hash uint32) string {
// returned error is not nil, the returned ControllerRevision is invalid for use. // returned error is not nil, the returned ControllerRevision is invalid for use.
func NewControllerRevision(parent metav1.Object, func NewControllerRevision(parent metav1.Object,
parentKind schema.GroupVersionKind, parentKind schema.GroupVersionKind,
podLabels map[string]string,
selector labels.Selector, selector labels.Selector,
data runtime.RawExtension, data runtime.RawExtension,
revision int64, revision int64,
collisionCount *int32) (*apps.ControllerRevision, error) { collisionCount *int32) (*apps.ControllerRevision, error) {
labelMap := getPodLabelsFromData(data) labelMap := podLabels
blockOwnerDeletion := true blockOwnerDeletion := true
isController := true isController := true
cr := &apps.ControllerRevision{ cr := &apps.ControllerRevision{
...@@ -452,31 +452,3 @@ func (fh *fakeHistory) ReleaseControllerRevision(parent metav1.Object, revision ...@@ -452,31 +452,3 @@ func (fh *fakeHistory) ReleaseControllerRevision(parent metav1.Object, revision
} }
return clone, fh.indexer.Update(clone) return clone, fh.indexer.Update(clone)
} }
func getPodLabelsFromData(data runtime.RawExtension) map[string]string {
var dat map[string]interface{}
labelMap := make(map[string]string)
if err := json.Unmarshal(data.Raw, &dat); err != nil {
return labelMap
}
spec, ok := dat["spec"].(map[string]interface{})
if !ok {
return labelMap
}
template, ok := spec["template"].(map[string]interface{})
if !ok {
return labelMap
}
metadata, ok := template["metadata"].(map[string]interface{})
if !ok {
return labelMap
}
labels, ok := metadata["labels"].(map[string]interface{})
if !ok {
return labelMap
}
for key, value := range labels {
labelMap[key] = value.(string)
}
return labelMap
}
...@@ -316,8 +316,10 @@ func newRevision(set *apps.StatefulSet, revision int64, collisionCount *int32) ( ...@@ -316,8 +316,10 @@ func newRevision(set *apps.StatefulSet, revision int64, collisionCount *int32) (
if err != nil { if err != nil {
return nil, err return nil, err
} }
podLabels := set.Spec.Template.Labels
cr, err := history.NewControllerRevision(set, cr, err := history.NewControllerRevision(set,
controllerKind, controllerKind,
podLabels,
selector, selector,
runtime.RawExtension{Raw: patch}, runtime.RawExtension{Raw: patch},
revision, revision,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment