diff --git a/Makefile b/Makefile index 15771dcc..2374df72 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,12 @@ run-smi: -slack-url=https://hooks.slack.com/services/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 \ -slack-channel="devops-alerts" +run-gloo: + go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=gloo -namespace=gloo \ + -metrics-server=https://prometheus.istio.weavedx.com \ + -slack-url=https://hooks.slack.com/services/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 \ + -slack-channel="devops-alerts" + build: docker build -t weaveworks/flagger:$(TAG) . -f Dockerfile diff --git a/artifacts/flagger/account.yaml b/artifacts/flagger/account.yaml index d31e7568..b7cf0e28 100644 --- a/artifacts/flagger/account.yaml +++ b/artifacts/flagger/account.yaml @@ -64,6 +64,21 @@ rules: resources: - trafficsplits verbs: ["*"] + - apiGroups: + - gloo.solo.io + resources: + - settings + - upstreams + - upstreamgroups + - proxies + - virtualservices + verbs: ["*"] + - apiGroups: + - gateway.solo.io + resources: + - virtualservices + - gateways + verbs: ["*"] - nonResourceURLs: - /version verbs: diff --git a/charts/flagger/templates/rbac.yaml b/charts/flagger/templates/rbac.yaml index 782e1df1..cb5c52ef 100644 --- a/charts/flagger/templates/rbac.yaml +++ b/charts/flagger/templates/rbac.yaml @@ -60,6 +60,21 @@ rules: resources: - trafficsplits verbs: ["*"] + - apiGroups: + - gloo.solo.io + resources: + - settings + - upstreams + - upstreamgroups + - proxies + - virtualservices + verbs: ["*"] + - apiGroups: + - gateway.solo.io + resources: + - virtualservices + - gateways + verbs: ["*"] - nonResourceURLs: - /version verbs: diff --git a/pkg/router/gloo.go b/pkg/router/gloo.go index 62303e20..7cf735c4 100644 --- a/pkg/router/gloo.go +++ b/pkg/router/gloo.go @@ -152,8 +152,10 @@ func (gr *GlooRouter) writeUpstreamGroupRuleForCanary(canary *flaggerv1.Canary, targetName := canary.Spec.TargetRef.Name if oldUg, err := gr.ugClient.Read(ug.Metadata.Namespace, ug.Metadata.Name, solokitclients.ReadOpts{}); err != nil { - // ignore not exist errors.. - if !solokiterror.IsNotExist(err) { + if solokiterror.IsNotExist(err) { + gr.logger.With("canary", fmt.Sprintf("%s.%s", canary.Name, canary.Namespace)). + Infof("UpstreamGroup %s created", ug.Metadata.Name) + } else { return fmt.Errorf("RoutingRule %s.%s read failed: %v", targetName, canary.Namespace, err) } } else { @@ -181,6 +183,5 @@ func (gr *GlooRouter) writeUpstreamGroupRuleForCanary(canary *flaggerv1.Canary, if err != nil { return fmt.Errorf("UpstreamGroup %s.%s update failed: %v", targetName, canary.Namespace, err) } - gr.logger.With("canary", fmt.Sprintf("%s.%s", canary.Name, canary.Namespace)).Infof("UpstreamGroup %s updated", ug.Metadata.Name) return nil }