Commit 73322af8 authored by Brian Grant's avatar Brian Grant

Merge pull request #5842 from simon3z/rc-annotation

Replica Controller Name Annotation in Pods
parents e8b28c59 253ce4b6
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package controller package controller
import ( import (
"encoding/json"
"fmt" "fmt"
"sort" "sort"
"sync" "sync"
...@@ -62,6 +63,7 @@ type RealPodControl struct { ...@@ -62,6 +63,7 @@ type RealPodControl struct {
// Time period of main replication controller sync loop // Time period of main replication controller sync loop
const DefaultSyncPeriod = 5 * time.Second const DefaultSyncPeriod = 5 * time.Second
const CreatedByAnnotation = "kubernetes.io/created-by"
func (r RealPodControl) createReplica(namespace string, controller api.ReplicationController) { func (r RealPodControl) createReplica(namespace string, controller api.ReplicationController) {
desiredLabels := make(labels.Set) desiredLabels := make(labels.Set)
...@@ -73,6 +75,20 @@ func (r RealPodControl) createReplica(namespace string, controller api.Replicati ...@@ -73,6 +75,20 @@ func (r RealPodControl) createReplica(namespace string, controller api.Replicati
desiredAnnotations[k] = v desiredAnnotations[k] = v
} }
createdByRef, err := api.GetReference(&controller)
if err != nil {
util.HandleError(fmt.Errorf("unable to get controller reference: %v", err))
return
}
createdByRefJson, err := json.Marshal(createdByRef)
if err != nil {
util.HandleError(fmt.Errorf("unable to serialize controller reference: %v", err))
return
}
desiredAnnotations[CreatedByAnnotation] = string(createdByRefJson)
// use the dash (if the name isn't too long) to make the pod name a bit prettier // use the dash (if the name isn't too long) to make the pod name a bit prettier
prefix := fmt.Sprintf("%s-", controller.Name) prefix := fmt.Sprintf("%s-", controller.Name)
if ok, _ := validation.ValidatePodName(prefix, true); !ok { if ok, _ := validation.ValidatePodName(prefix, true); !ok {
......
...@@ -43,6 +43,10 @@ type FakePodControl struct { ...@@ -43,6 +43,10 @@ type FakePodControl struct {
lock sync.Mutex lock sync.Mutex
} }
func init() {
api.ForTesting_ReferencesAllowBlankSelfLinks = true
}
func (f *FakePodControl) createReplica(namespace string, spec api.ReplicationController) { func (f *FakePodControl) createReplica(namespace string, spec api.ReplicationController) {
f.lock.Lock() f.lock.Lock()
defer f.lock.Unlock() defer f.lock.Unlock()
......
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