cleanup, adding config maps to k8s implementer

pull/99/head
Karolis Rusenas 2017-09-12 19:16:39 +03:00
parent 339e6e1233
commit 0681512747
5 changed files with 19 additions and 5 deletions

View File

@ -44,7 +44,7 @@ func (b *Bot) requestApproval(req *types.Approval) error {
[]slack.AttachmentField{
slack.AttachmentField{
Title: "Approval required!",
Value: req.Message + "\n" + fmt.Sprintf("To vote for change type 'lgtm <identifier>' to reject it: 'reject <identifier>."),
Value: req.Message + "\n" + fmt.Sprintf("To vote for change type '%s lgtm <identifier>' to reject it: '%s reject <identifier>.", b.name, b.name),
Short: false,
},
slack.AttachmentField{
@ -106,7 +106,8 @@ func (b *Bot) processApprovedResponse(approvalResponse *approvalResponse) error
continue
}
fmt.Println("approving: ", identifier)
approval, err := b.approvalsManager.Approve(identifier)
fmt.Println("user: ", approvalResponse.User)
approval, err := b.approvalsManager.Approve(identifier, approvalResponse.User)
if err != nil {
log.WithFields(log.Fields{
"error": err,

View File

@ -3,6 +3,9 @@ package constants
// DefaultDockerRegistry - default docker registry
const DefaultDockerRegistry = "https://index.docker.io"
// DefaultNamespace - default namespace to initialise configmaps based kv
const DefaultNamespace = "kube-system"
// WebhookEndpointEnv if set - enables webhook notifications
const WebhookEndpointEnv = "WEBHOOK_ENDPOINT"

View File

@ -59,14 +59,12 @@ func (p *Provider) isApproved(event *types.Event, plan *UpdatePlan) (bool, error
Deadline: time.Now().Add(time.Duration(plan.Config.ApprovalDeadline) * time.Hour),
}
approval.Message = fmt.Sprintf("New image is available for deployment %s/%s (%s).",
approval.Message = fmt.Sprintf("New image is available for release %s/%s (%s).",
plan.Namespace,
plan.Name,
approval.Delta(),
)
fmt.Println("requesting approval, ns: ", plan.Namespace)
return false, p.approvalManager.Create(approval)
}

View File

@ -5,6 +5,7 @@ import (
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
core_v1 "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"k8s.io/client-go/rest"
@ -21,6 +22,7 @@ type Implementer interface {
Update(deployment *v1beta1.Deployment) error
Secret(namespace, name string) (*v1.Secret, error)
Pods(namespace, labelSelector string) (*v1.PodList, error)
ConfigMaps(namespace string) core_v1.ConfigMapInterface
}
// KubernetesImplementer - default kubernetes client implementer, uses
@ -112,3 +114,8 @@ func (i *KubernetesImplementer) Secret(namespace, name string) (*v1.Secret, erro
func (i *KubernetesImplementer) Pods(namespace, labelSelector string) (*v1.PodList, error) {
return i.client.Pods(namespace).List(meta_v1.ListOptions{LabelSelector: labelSelector})
}
// ConfigMaps - returns an interface to config maps for a specified namespace
func (i *KubernetesImplementer) ConfigMaps(namespace string) core_v1.ConfigMapInterface {
return i.client.ConfigMaps(namespace)
}

View File

@ -11,6 +11,7 @@ import (
"github.com/rusenask/keel/util/codecs"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
core_v1 "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
)
@ -76,6 +77,10 @@ func (i *fakeImplementer) Pods(namespace, labelSelector string) (*v1.PodList, er
return i.podList, nil
}
func (i *fakeImplementer) ConfigMaps(namespace string) core_v1.ConfigMapInterface {
return nil
}
type fakeSender struct {
sentEvent types.EventNotification
}