diff --git a/README.md b/README.md index 83b23cf8..e93803cd 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Flagger documentation can be found at [docs.flagger.app](https://docs.flagger.ap * Install * [Flagger install on Kubernetes](https://docs.flagger.app/install/flagger-install-on-kubernetes) - * [Flagger install on GKE](https://docs.flagger.app/install/flagger-install-on-google-cloud) + * [Flagger install on GKE Istio](https://docs.flagger.app/install/flagger-install-on-google-cloud) * [Flagger install on EKS App Mesh](https://docs.flagger.app/install/flagger-install-on-eks-appmesh) * How it works * [Canary custom resource](https://docs.flagger.app/how-it-works#canary-custom-resource) @@ -35,36 +35,18 @@ Flagger documentation can be found at [docs.flagger.app](https://docs.flagger.ap * [Webhooks](https://docs.flagger.app/how-it-works#webhooks) * [Load testing](https://docs.flagger.app/how-it-works#load-testing) * Usage - * [Canary promotions and rollbacks](https://docs.flagger.app/usage/progressive-delivery) - * [A/B testing](https://docs.flagger.app/usage/ab-testing) + * [Istio canary deployments](https://docs.flagger.app/usage/progressive-delivery) + * [Istio A/B testing](https://docs.flagger.app/usage/ab-testing) + * [App Mesh canary deployments](https://docs.flagger.app/usage/appmesh-progressive-delivery) * [Monitoring](https://docs.flagger.app/usage/monitoring) * [Alerting](https://docs.flagger.app/usage/alerting) * Tutorials * [Canary deployments with Helm charts and Weave Flux](https://docs.flagger.app/tutorials/canary-helm-gitops) -### Install - -Before installing Flagger make sure you have Istio setup up with Prometheus enabled. -If you are new to Istio you can follow my [Istio service mesh walk-through](https://github.com/stefanprodan/istio-gke). - -Deploy Flagger in the `istio-system` namespace using Helm: - -```bash -# add the Helm repository -helm repo add flagger https://flagger.app - -# install or upgrade -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set metricsServer=http://prometheus.istio-system:9090 -``` - -Flagger is compatible with Kubernetes >1.11.0 and Istio >1.0.0. - ### Canary CRD Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services and Istio virtual services). +then creates a series of objects (Kubernetes deployments, ClusterIP services and Istio or App Mesh virtual services). These objects expose the application on the mesh and drive the canary analysis and promotion. Flagger keeps track of ConfigMaps and Secrets referenced by a Kubernetes Deployment and triggers a canary analysis if any of those objects change. @@ -169,7 +151,7 @@ For more details on how the canary analysis and promotion works please [read the ### Roadmap -* Integrate with other service mesh technologies like Linkerd v2 or Consul Mesh +* Integrate with other service mesh technologies like Linkerd v2, Super Gloo or Consul Mesh * Add support for comparing the canary metrics to the primary ones and do the validation based on the derivation between the two ### Contributing diff --git a/docs/gitbook/usage/ab-testing.md b/docs/gitbook/usage/ab-testing.md index fdb08c5d..1578f4c9 100644 --- a/docs/gitbook/usage/ab-testing.md +++ b/docs/gitbook/usage/ab-testing.md @@ -8,6 +8,8 @@ This is particularly useful for frontend applications that require session affin ![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) +### Bootstrap + Create a test namespace with Istio sidecar injection enabled: ```bash @@ -121,6 +123,8 @@ service/abtest-primary virtualservice.networking.istio.io/abtest ``` +### Automated canary promotion + Trigger a canary deployment by updating the container image: ```bash @@ -170,6 +174,8 @@ prod frontend Succeeded 0 2019-03-15T16:15:07Z prod backend Failed 0 2019-03-14T17:05:07Z ``` +### Automated rollback + During the canary analysis you can generate HTTP 500 errors and high latency to test Flagger's rollback. Generate HTTP 500 errors: diff --git a/docs/gitbook/usage/alerting.md b/docs/gitbook/usage/alerting.md index 4c13e68e..42189ef5 100644 --- a/docs/gitbook/usage/alerting.md +++ b/docs/gitbook/usage/alerting.md @@ -15,12 +15,12 @@ helm upgrade -i flagger flagger/flagger \ Once configured with a Slack incoming **webhook**, Flagger will post messages when a canary deployment has been initialised, when a new revision has been detected and if the canary analysis failed or succeeded. -![flagger-slack](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) +![Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) A canary deployment will be rolled back if the progress deadline exceeded or if the analysis reached the maximum number of failed checks: -![flagger-slack-errors](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) +![Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) ### Prometheus Alert Manager diff --git a/docs/gitbook/usage/appmesh-progressive-delivery.md b/docs/gitbook/usage/appmesh-progressive-delivery.md index 992e335c..e4bfa396 100644 --- a/docs/gitbook/usage/appmesh-progressive-delivery.md +++ b/docs/gitbook/usage/appmesh-progressive-delivery.md @@ -229,7 +229,7 @@ prod backend Failed 0 2019-03-14T17:05:07Z If you’ve enabled the Slack notifications, you should receive the following messages: -![flagger-slack](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) +![Flagger Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) ### Automated rollback @@ -283,4 +283,4 @@ Events: If you’ve enabled the Slack notifications, you’ll receive a message if the progress deadline is exceeded, or if the analysis reached the maximum number of failed checks: -![flagger-slack-errors](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) +![Flagger Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) diff --git a/docs/gitbook/usage/monitoring.md b/docs/gitbook/usage/monitoring.md index 103239dd..ce38bbd5 100644 --- a/docs/gitbook/usage/monitoring.md +++ b/docs/gitbook/usage/monitoring.md @@ -6,15 +6,13 @@ Flagger comes with a Grafana dashboard made for canary analysis. Install Grafana ```bash helm upgrade -i flagger-grafana flagger/grafana \ ---namespace=istio-system \ ---set url=http://prometheus:9090 \ ---set user=admin \ ---set password=admin +--namespace=istio-system \ # or appmesh-system +--set url=http://prometheus:9090 ``` The dashboard shows the RED and USE metrics for the primary and canary workloads: -![canary dashboard](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/grafana-canary-analysis.png) +![Canary Dashboard](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/grafana-canary-analysis.png) ### Logging