mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #5842 from simon3z/rc-annotation
Replica Controller Name Annotation in Pods
This commit is contained in:
commit
73322af8e8
@ -17,6 +17,7 @@ limitations under the License.
|
||||
package controller
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sort"
|
||||
"sync"
|
||||
@ -62,6 +63,7 @@ type RealPodControl struct {
|
||||
|
||||
// Time period of main replication controller sync loop
|
||||
const DefaultSyncPeriod = 5 * time.Second
|
||||
const CreatedByAnnotation = "kubernetes.io/created-by"
|
||||
|
||||
func (r RealPodControl) createReplica(namespace string, controller api.ReplicationController) {
|
||||
desiredLabels := make(labels.Set)
|
||||
@ -73,6 +75,20 @@ func (r RealPodControl) createReplica(namespace string, controller api.Replicati
|
||||
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
|
||||
prefix := fmt.Sprintf("%s-", controller.Name)
|
||||
if ok, _ := validation.ValidatePodName(prefix, true); !ok {
|
||||
|
@ -43,6 +43,10 @@ type FakePodControl struct {
|
||||
lock sync.Mutex
|
||||
}
|
||||
|
||||
func init() {
|
||||
api.ForTesting_ReferencesAllowBlankSelfLinks = true
|
||||
}
|
||||
|
||||
func (f *FakePodControl) createReplica(namespace string, spec api.ReplicationController) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
Loading…
Reference in New Issue
Block a user