diff --git a/docs/gitbook/dev/release-guide.md b/docs/gitbook/dev/release-guide.md index 2140f60a..dc186998 100644 --- a/docs/gitbook/dev/release-guide.md +++ b/docs/gitbook/dev/release-guide.md @@ -1,4 +1,4 @@ -# Flagger Release Guide +# Release Guide This document describes how to release Flagger. diff --git a/docs/gitbook/faq.md b/docs/gitbook/faq.md index 3d13f0a0..024be4bd 100644 --- a/docs/gitbook/faq.md +++ b/docs/gitbook/faq.md @@ -33,7 +33,7 @@ Mirroring should be used for requests that are **idempotent** or capable of bein Assuming the app name is podinfo you can define a canary like: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo @@ -146,7 +146,7 @@ spec: You can enable port discovery so that Prometheus will be able to reach port `9090` over mTLS: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary spec: service: @@ -348,7 +348,7 @@ The following spec exposes the `frontend` workload inside the mesh on `frontend. and outside the mesh on `frontend.example.com`. You'll have to specify an Istio ingress gateway for external hosts. ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: frontend @@ -409,7 +409,7 @@ metadata: name: frontend namespace: test ownerReferences: - - apiVersion: flagger.app/v1alpha3 + - apiVersion: flagger.app/v1beta1 blockOwnerDeletion: true controller: true kind: Canary @@ -486,7 +486,7 @@ To expose a workload inside the mesh on `http://backend.test.svc.cluster.local:9 the service spec can contain only the container port and the traffic policy: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: backend @@ -507,7 +507,7 @@ kind: Service metadata: name: backend-primary ownerReferences: - - apiVersion: flagger.app/v1alpha3 + - apiVersion: flagger.app/v1beta1 blockOwnerDeletion: true controller: true kind: Canary @@ -535,7 +535,7 @@ Assuming you have two apps, one that servers the main website and one that serve For each app you can define a canary object as: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: website @@ -552,7 +552,7 @@ spec: rewrite: uri: / --- -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: webapi @@ -583,7 +583,7 @@ Note that host merging only works if the canaries are bounded to a ingress gatew When deploying Istio with global mTLS enabled, you have to set the TLS mode to `ISTIO_MUTUAL`: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary spec: service: @@ -595,7 +595,7 @@ spec: If you run Istio in permissive mode you can disable TLS: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary spec: service: diff --git a/docs/gitbook/how-it-works.md b/docs/gitbook/how-it-works.md index 9defb689..5b714717 100644 --- a/docs/gitbook/how-it-works.md +++ b/docs/gitbook/how-it-works.md @@ -1,9 +1,7 @@ # How it works -[Flagger](https://github.com/weaveworks/flagger) takes a Kubernetes deployment and optionally -a horizontal pod autoscaler (HPA) and creates a series of objects -(Kubernetes deployments, ClusterIP services, virtual service, traffic split or ingress) -to drive the canary analysis and promotion. +[Flagger](https://github.com/weaveworks/flagger) can be configured to automate the release process +for Kubernetes workloads with a custom resource named canary. ### Canary custom resource @@ -13,7 +11,7 @@ and is portable across clusters, service meshes and ingress providers. For a deployment named _podinfo_, a canary release with progressive traffic shifting can be defined as: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo @@ -48,6 +46,9 @@ and at the same time, measures the requests success rate as well as the average You can extend the canary analysis with custom metrics, acceptance and load testing to harden the validation process of your app release process. +If you are running multiple service meshes or ingress controllers in the same cluster, +you can override the global provider for a specific canary with `spec.provider`. + ### Canary target A canary resource can target a Kubernetes Deployment or DaemonSet. diff --git a/docs/gitbook/install/flagger-install-on-kubernetes.md b/docs/gitbook/install/flagger-install-on-kubernetes.md index d9dfbb1f..48bdc517 100644 --- a/docs/gitbook/install/flagger-install-on-kubernetes.md +++ b/docs/gitbook/install/flagger-install-on-kubernetes.md @@ -222,7 +222,7 @@ that have the `prometheus.io/scrape: "true"` annotation. To target a different provider you can specify it in the canary custom resource: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: app diff --git a/docs/gitbook/tutorials/appmesh-progressive-delivery.md b/docs/gitbook/tutorials/appmesh-progressive-delivery.md index cf2d133c..b622b445 100644 --- a/docs/gitbook/tutorials/appmesh-progressive-delivery.md +++ b/docs/gitbook/tutorials/appmesh-progressive-delivery.md @@ -51,7 +51,7 @@ helm upgrade -i flagger-loadtester flagger/loadtester \ Create a canary custom resource: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/contour-progressive-delivery.md b/docs/gitbook/tutorials/contour-progressive-delivery.md index 59760799..99cb302f 100644 --- a/docs/gitbook/tutorials/contour-progressive-delivery.md +++ b/docs/gitbook/tutorials/contour-progressive-delivery.md @@ -63,7 +63,7 @@ kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo Create a canary custom resource \(replace `app.example.com` with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/crossover-progressive-delivery.md b/docs/gitbook/tutorials/crossover-progressive-delivery.md index 31ce7098..49eb1cb1 100644 --- a/docs/gitbook/tutorials/crossover-progressive-delivery.md +++ b/docs/gitbook/tutorials/crossover-progressive-delivery.md @@ -82,7 +82,7 @@ helm upgrade -i flagger-loadtester flagger/loadtester \ Create a canary custom resource: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/flagger-smi-istio.md b/docs/gitbook/tutorials/flagger-smi-istio.md index 902e3c16..7add409f 100644 --- a/docs/gitbook/tutorials/flagger-smi-istio.md +++ b/docs/gitbook/tutorials/flagger-smi-istio.md @@ -106,7 +106,7 @@ kubectl apply -k github.com/weaveworks/flagger//kustomize/tester Create a canary custom resource \(replace example.com with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/gloo-progressive-delivery.md b/docs/gitbook/tutorials/gloo-progressive-delivery.md index 4e3624b6..e5e24774 100644 --- a/docs/gitbook/tutorials/gloo-progressive-delivery.md +++ b/docs/gitbook/tutorials/gloo-progressive-delivery.md @@ -91,7 +91,7 @@ kubectl apply -f ./podinfo-virtualservice.yaml Create a canary custom resource \(replace `app.example.com` with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/istio-ab-testing.md b/docs/gitbook/tutorials/istio-ab-testing.md index deec896c..fc362b84 100644 --- a/docs/gitbook/tutorials/istio-ab-testing.md +++ b/docs/gitbook/tutorials/istio-ab-testing.md @@ -30,7 +30,7 @@ kubectl apply -k github.com/weaveworks/flagger//kustomize/tester Create a canary custom resource \(replace example.com with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/istio-progressive-delivery.md b/docs/gitbook/tutorials/istio-progressive-delivery.md index 5fc944f0..a3de59b2 100644 --- a/docs/gitbook/tutorials/istio-progressive-delivery.md +++ b/docs/gitbook/tutorials/istio-progressive-delivery.md @@ -30,7 +30,7 @@ kubectl apply -k github.com/weaveworks/flagger//kustomize/tester Create a canary custom resource \(replace example.com with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo @@ -260,7 +260,7 @@ Note that mirroring should be used for requests that are **idempotent** or capab You can enable mirroring by replacing `stepWeight/maxWeight` with `iterations` and by setting `canaryAnalysis.mirror` to `true`: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/kubernetes-blue-green.md b/docs/gitbook/tutorials/kubernetes-blue-green.md index be0bcde1..52fe9170 100644 --- a/docs/gitbook/tutorials/kubernetes-blue-green.md +++ b/docs/gitbook/tutorials/kubernetes-blue-green.md @@ -69,7 +69,7 @@ kubectl -n test apply -f ${REPO}/artifacts/loadtester/service.yaml Create a canary custom resource: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/linkerd-progressive-delivery.md b/docs/gitbook/tutorials/linkerd-progressive-delivery.md index 8d32efcb..1bf7a16f 100644 --- a/docs/gitbook/tutorials/linkerd-progressive-delivery.md +++ b/docs/gitbook/tutorials/linkerd-progressive-delivery.md @@ -44,7 +44,7 @@ kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo Create a canary custom resource for the podinfo deployment: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo @@ -366,7 +366,7 @@ Besides weighted routing, Flagger can be configured to route traffic to the cana Edit podinfo canary analysis, set the provider to `nginx`, add the ingress reference, remove the max/step weight and add the match conditions and iterations: ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/nginx-progressive-delivery.md b/docs/gitbook/tutorials/nginx-progressive-delivery.md index 8a8ce8c1..b8e80d84 100644 --- a/docs/gitbook/tutorials/nginx-progressive-delivery.md +++ b/docs/gitbook/tutorials/nginx-progressive-delivery.md @@ -96,7 +96,7 @@ kubectl apply -f ./podinfo-ingress.yaml Create a canary custom resource \(replace `app.example.com` with your own domain\): ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary metadata: name: podinfo diff --git a/docs/gitbook/tutorials/zero-downtime-deployments.md b/docs/gitbook/tutorials/zero-downtime-deployments.md index c85e4442..e72e4f95 100644 --- a/docs/gitbook/tutorials/zero-downtime-deployments.md +++ b/docs/gitbook/tutorials/zero-downtime-deployments.md @@ -166,7 +166,7 @@ The above HPA ensures your app will be scaled up before the pods reach the CPU o To minimise the impact of downscaling operations you can make use of Envoy retry capabilities. ```yaml -apiVersion: flagger.app/v1alpha3 +apiVersion: flagger.app/v1beta1 kind: Canary spec: service: