diff --git a/pkg/helm/client.go b/pkg/helm/client.go index 401ff10be..7b294b118 100644 --- a/pkg/helm/client.go +++ b/pkg/helm/client.go @@ -33,9 +33,14 @@ import ( rest "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" "strconv" + "math/rand" + "time" ) // Client manages client side of the helm-tiller protocol +func init() { + rand.Seed(time.Now().UnixNano()) +} type Client struct { opts options } @@ -376,6 +381,7 @@ func (h *Client) rollback(ctx context.Context, req *rls.RollbackReleaseRequest) client, err := clientset.NewForConfig(config) event, err := makeEventForRollBack(req) event.InvolvedObject.Name = (req.Name + "-v" + strconv.Itoa(int(req.Version))) + event.ObjectMeta.Name = event.InvolvedObject.Name + "-" + RandStringRunes(5) if err != nil { return resp, err } @@ -506,7 +512,6 @@ func makeEventForRollBack(req *rls.RollbackReleaseRequest) (*api.Event, error) { } event := &api.Event{ ObjectMeta: api.ObjectMeta{ - Name: "releaseRollback", Namespace: "default", //TODO handle namespace }, InvolvedObject: api.ObjectReference{ @@ -520,3 +525,14 @@ func makeEventForRollBack(req *rls.RollbackReleaseRequest) (*api.Event, error) { } return event, nil } + + +var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + +func RandStringRunes(n int) string { + b := make([]rune, n) + for i := range b { + b[i] = letterRunes[rand.Intn(len(letterRunes))] + } + return string(b) +} \ No newline at end of file