From 82e490a875e41475f8d219d329b6bf72963657d0 Mon Sep 17 00:00:00 2001 From: Johnson Shi Date: Fri, 13 Aug 2021 12:11:44 -0700 Subject: [PATCH] Add osm tutorial and docs Signed-off-by: Johnson Shi --- .gitbook.yaml | 1 + README.md | 29 +- charts/flagger/README.md | 11 +- charts/loadtester/README.md | 2 +- docs/diagrams/flagger-osm-traffic-split.png | Bin 0 -> 126630 bytes docs/gitbook/README.md | 3 +- docs/gitbook/SUMMARY.md | 1 + .../install/flagger-install-on-kubernetes.md | 20 +- .../tutorials/osm-progressive-delivery.md | 355 ++++++++++++++++++ docs/gitbook/usage/deployment-strategies.md | 4 +- kustomize/README.md | 10 +- 11 files changed, 415 insertions(+), 21 deletions(-) create mode 100644 docs/diagrams/flagger-osm-traffic-split.png create mode 100644 docs/gitbook/tutorials/osm-progressive-delivery.md diff --git a/.gitbook.yaml b/.gitbook.yaml index d13970bf..1c8ec9fc 100644 --- a/.gitbook.yaml +++ b/.gitbook.yaml @@ -13,3 +13,4 @@ redirects: usage/skipper-progressive-delivery: tutorials/skipper-progressive-delivery.md usage/crossover-progressive-delivery: tutorials/crossover-progressive-delivery.md usage/traefik-progressive-delivery: tutorials/traefik-progressive-delivery.md + usage/osm-progressive-delivery: tutorials/osm-progressive-delivery.md diff --git a/README.md b/README.md index 25245e57..80bb1ce7 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ by gradually shifting traffic to the new version while measuring metrics and run ![flagger-overview](https://raw.githubusercontent.com/fluxcd/flagger/main/docs/diagrams/flagger-overview.png) Flagger implements several deployment strategies (Canary releases, A/B testing, Blue/Green mirroring) -using a service mesh (App Mesh, Istio, Linkerd) +using a service mesh (App Mesh, Istio, Linkerd, Open Service Mesh) or an ingress controller (Contour, Gloo, NGINX, Skipper, Traefik) for traffic routing. For release analysis, Flagger can query Prometheus, Datadog, New Relic or CloudWatch and for alerting it uses Slack, MS Teams, Discord and Rocket. @@ -43,6 +43,7 @@ Flagger documentation can be found at [docs.flagger.app](https://docs.flagger.ap * [NGINX Ingress](https://docs.flagger.app/tutorials/nginx-progressive-delivery) * [Skipper](https://docs.flagger.app/tutorials/skipper-progressive-delivery) * [Traefik](https://docs.flagger.app/tutorials/traefik-progressive-delivery) + * [Open Service Mesh (OSM)](https://docs.flagger.app/tutorials/osm-progressive-delivery) * [Kubernetes Blue/Green](https://docs.flagger.app/tutorials/kubernetes-blue-green) ### Who is using Flagger @@ -70,7 +71,7 @@ metadata: namespace: test spec: # service mesh provider (optional) - # can be: kubernetes, istio, linkerd, appmesh, nginx, skipper, contour, gloo, supergloo, traefik + # can be: kubernetes, istio, linkerd, appmesh, nginx, skipper, contour, gloo, supergloo, traefik, osm # for SMI TrafficSplit can be: smi:v1alpha1, smi:v1alpha2, smi:v1alpha3 provider: istio # deployment reference @@ -182,19 +183,19 @@ For more details on how the canary analysis and promotion works please [read the **Service Mesh** -| Feature | App Mesh | Istio | Linkerd | SMI | Kubernetes CNI | -| ------------------------------------------ | ------------------ | ------------------ | ------------------ | ----------------- | ----------------- | -| Canary deployments (weighted traffic) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | -| A/B testing (headers and cookies routing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | -| Blue/Green deployments (traffic switch) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Blue/Green deployments (traffic mirroring) | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | -| Webhooks (acceptance/load testing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Manual gating (approve/pause/resume) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Request success rate check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | -| Request duration check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | -| Custom metric checks | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Feature | App Mesh | Istio | Linkerd | Open Service Mesh | SMI | Kubernetes CNI | +| ------------------------------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| Canary deployments (weighted traffic) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | +| A/B testing (headers and cookies routing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | +| Blue/Green deployments (traffic switch) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Blue/Green deployments (traffic mirroring) | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | +| Webhooks (acceptance/load testing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Manual gating (approve/pause/resume) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Request success rate check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | +| Request duration check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | +| Custom metric checks | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -For SMI compatible service mesh solutions like Open Service Mesh, Consul Connect or Nginx Service Mesh, +For other SMI compatible service mesh solutions like Consul Connect or Nginx Service Mesh, [Prometheus MetricTemplates](https://docs.flagger.app/usage/metrics#prometheus) can be used to implement the request success rate and request duration checks. diff --git a/charts/flagger/README.md b/charts/flagger/README.md index 98a51cc3..3ef10c6d 100644 --- a/charts/flagger/README.md +++ b/charts/flagger/README.md @@ -7,7 +7,7 @@ Flagger can run automated application analysis, testing, promotion and rollback * A/B Testing (HTTP headers and cookies traffic routing) * Blue/Green (traffic switching and mirroring) -Flagger works with service mesh solutions (Istio, Linkerd, AWS App Mesh) and with Kubernetes ingress controllers +Flagger works with service mesh solutions (Istio, Linkerd, AWS App Mesh, Open Service Mesh) and with Kubernetes ingress controllers (NGINX, Skipper, Gloo, Contour, Traefik). Flagger can be configured to send alerts to various chat platforms such as Slack, Microsoft Teams, Discord and Rocket. @@ -96,6 +96,15 @@ $ helm upgrade -i flagger flagger/flagger \ --set meshProvider=traefik ``` +To install Flagger for **Open Service Mesh (OSM)** (requires OSM to have been installed with Prometheus): + +```console +$ helm upgrade -i flagger flagger/flagger \ + --namespace=osm-system \ + --set meshProvider=osm \ + --set metricsServer=http://osm-prometheus.osm-system.svc:7070 +``` + The [configuration](#configuration) section lists the parameters that can be configured during installation. ## Uninstalling the Chart diff --git a/charts/loadtester/README.md b/charts/loadtester/README.md index ab1f3192..2b6bc54e 100644 --- a/charts/loadtester/README.md +++ b/charts/loadtester/README.md @@ -26,7 +26,7 @@ helm upgrade -i flagger-loadtester flagger/loadtester The command deploys loadtester on the Kubernetes cluster in the default namespace. > **Tip**: Note that the namespace where you deploy the load tester should -> have the Istio, App Mesh or Linkerd sidecar injection enabled +> have the Istio, App Mesh, Linkerd or Open Service Mesh sidecar injection enabled The [configuration](#configuration) section lists the parameters that can be configured during installation. diff --git a/docs/diagrams/flagger-osm-traffic-split.png b/docs/diagrams/flagger-osm-traffic-split.png new file mode 100644 index 0000000000000000000000000000000000000000..e37f6b9545bd6da2a794ad4e0549b940e91e0154 GIT binary patch literal 126630 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
uQHYnhBkV`jJuO2rQ3qJp^JZ?lxYVVV>asN zh4*&{O;;Yt^v1TgwqMh3jk&?WImu(ava(Hwa!_n%sW&;*C$lJa_T0I)Xkir@&p^m7 zxiz$#F9g#MQ>j&KGhg2iH}5}lLE$9$QyG z_68B5VJ?r5t)iClp8HSo*%<7TFU8H;H3H-RHJGQGgxS(<=y#U{1ho4~Tkm*|A);21WaxZ;oJpbL#dTCxB z06ApZi~hA_`AbR^30#J`$R@gvzrpaiH0YnBIZH)#&{2O%L`mn}@LG$`US4turG(+6 z=*UZ$XeW%>%@`i`5w%}=ctGK@h@OTfBKBiKe+tcqTy}p1D7$W)d8zQQX=H3?Gy%wf zrO(=pdMND$t{?WDB|Sw=+Q(OENl;4qk?mIN1hotP_qCITBT+L_zG;v5Jiise0I&Gv6;Etcr^s4dw(*%2va6CPF5s79Qzm^74}8c zi#wucYm+`TU^IqDut`Knh$_W`hOj}x!aicfz>qG+Ja=wyTNeW@pmiX)>DGu5^S{i3 z1H=o$wq;4vmvC)?Pm7rRy4A{GH2IOD*5YDfLj!FWgYD1-L#mC8!Y?9qi3Tc=*?w27 z6qVQ4?%sXagz}|w(bm>REuA0GS?ujj4GYVn5xgXEL8YT3h#OUY#c;puuUIp)&il%}W&?EVrwBe);r7N4LBYX>9Oo@R8HPH? zpgFbIRgA;ZhEHC!cVD@NVcGq+C6P`T%3P3@Nb*F6EoEDj z@vSp2d4)Jv*_*~)o}}{pYHq&3+;B})L8xMo|H&?X!MzGPo2PBp^DY;79L(qcNlKgw z4$L*{f|p{Yj~%S5p&RM_l7BiM_q=u|o=tgd!2f_%btI>D#**vrQhj)^AiMnv#@X!o zq^liTpW$kb2(22%B54P;wcl^U7}01+fg_1g-#~Pxx2J(qd@HVR^T*ekNqdOjJUXtg z<;CeproAj2(YRF5(lxqM;+mJNe)T!TabJmyz6Y(HbaDPdxos2k&apgg{B6H5Ev*)n z(+zZ(O?t-iT1Eb!t(k>c7@q#7>7D!3Bz}O4=6tX&w@!uA!eD{JcaPV+Y$=WU&Kq44 z?`Z>}<&c+4>*<7GVxmk2^o-NCNFyu%9iNxSjo^&+-;6$q*vr>n*$Y1rQqx|(9RV%< zCZVEARbMRRTiO2DNQxXcfnITb?VGCuCyfeL2RmH%hlwhe!_l!ZpXr;OLmW;K9Ie#a=Q|oZMYfIf$l^;iejR$b>Yi0x zym=xZJVHe%c=^C=IF3!rbh$T{`?@-`4bQMwlk<-h&)x&mV*9auETvX{9o~uxGA_^Q zoKbi=JXz`i10hMQj`m;~QTopRSm z;TR(j=c<8}@ovB)7^S4mSIu9XCo*1{>`?Ou0{oa0M0Kj(kN-D#7ysj9s2$e4U}EDm zu~`0d7E+h5ES9|KL)niiX45t;JXi-(R#*}Sn_^8K8ctQ-gT`roR$+_T$*_i{2Vn15 zl&lOdX-u41(uiOoWn&8q?R!#rx!qOJ_t7aGOAzmY1Mf`ERj0{_SrXktUx*%~kn%UtfOmC9`; z0o$ADNavhi8{1T@c=M-_Q1b!UDDHH28c%0&&fySxtMB!KK;bVy{^_WT;7 zzHC#63bT4g=iXN?cU+;;5FU(Jqw}Wa#0_&`r2aN@RRWK&yc#=7NHd42Z(fNWymE7x z#V5n^*|b+Sng;E`fX@JMhmJCP79=$p=ns%UOTihV29i5sY1{duiCWQTxj$vluIYnuwLsqsc+?uIN=*5pdz_6~VC0n{E$#VUu`+0^ zqt$d=xP5T#@s-$2L|kJ7w^{A)9^8=rG?<@2rB*VsFym-`{$U zd&LB)eejgylY79(UFWW@zOx6@$C%Scdsklzh1$)g46{3se;75*9MoG7vJYNkc>tY& zNz}w$PpPTWu*C&dFofPF)pI`QjHDE+1KtHH-?C4Gx0Z8U;fUx-btq{pkJ&SAfjAtn zo|eq~1){N!(^|(m>2!!*{w>+Q3V2s~j8b0L@W-^o#K~XN!nQ(#hFm9dbTF_^c^-EwuZZSIy|>!Wo=bhwp>*2YXs)ZBLIecEYuJGyU$s#7tl7X|Hpds1B= zBqnygDYaE(%KveLB!f-a%4)gLe1unB^{~wPaL59>Ge_^)h$Iv?4rqhm1lE_E zIVbCbJnn07+4!bXVEp!tgVAitG98BdyIUO8ob2cw$1z7m0wByjy|3Qyr+wdLYJ6{F zOpsh)mBSl_spY@$VC}`DC))LYH8w_gkJ)#%mY0&O+#GXSrJB}umX--r_3omWcZWI5 zr*D<EyhqjBzU3(u0GmANIR;_pu%(*2)ENJCEIc(5$oZKNsk#+Z}L0f&{7 zoki`>)8oa9=SZGvW$>)f?(N!9cege*H{SuIg2AOiA9N3z(BeO7JXM2(yVk~=G?L3# zCt3}#A4kB8TRZ(>kRRDYzNqDIE9CAF^5?y3LBOZswd9e^ju63?gx!`U+V>K26OAx> zTZ*>`9E@$)hB%l}C05nEq4OsOCwZtI<-ED|?v@&ghz&fljy*;x^m!``JGN)9gdRz{ zP!EjPuW(Ikp9@=8TwiH9u6b+rGu-NDXq?S(DLHZ9-SDaQIxI6;C|nD}F{3V#^5IJoc@_@}+$tfx+p z!VpQlgRT%=R@HdO7>^O1p7hJ&?z3?5z%VTpH3esr{(k5FyScJl$#w24pdwHH(^jbM zc5!;c;2R{>T1zV|bPlgMZ@6bsRK&y49(H5n_m`pUHQOeBHdT79`4bgZaeIJ7#jsoM z13)!(35pFRhLx8e2ec;{T89H}^+7^tpp(T*Ua)CdB00HPAGK2V3e7{uzBV>M5YwHQohByK_@_A7N`b88DFB+m%HEKv)5>8A6My>%cKtv%K|>(? z-O`+d;o}^GoqSh}vQAS>xq-^Ntw*gB{s!4O-DBD$e|ypW?O6mT0aZAm3q|l|4D^``oP*I1 z{w|u1)xL7=hFP_9%DSPdPBMg2iNrnLV*y44ov65#9Ujg`wx+s;Ba<+pV0!~3;_wE0tXQ^PkoI5QJ?V~di$ zsGFJ&2`(6KH06?~24b#3r+(?savGSl+7BuS;Yp;!ZDEk<_rKC}0(VGynus^Q@z5VC+SNk1a6#i_|TwnX2Mtj$+DdP_uxo?)q zQ3t!LsN>eqE+2K1wJW?i2pK_8#h(3&G#j0eC(m$&)v&?Q(a@Jpt;5iF%%}kX5oAVC z*Fx)X5@+oMO&3MF9biBBxlGE>Nba*LoA>^L)|5NS?^#J%M5(A0)k~g2PO*M_2YSY- zGtMb62i~&VQVa7v@MX*n+8{7`xtAL3K(YOQehaY#rhE>1LL$~1f+yv(npbTTR|3OA zcB{S@L$>$ji|v7Jbj;ILc9)2VbLkQ;BEp=r5NkqAzUe9=%qqN?lwKnAy5d7J-CEjP z@fFCHR`t8d6zGH!yTGUvr7Xe8bc{cDc8 z8QbyO1+pFU7r7kVTKT~6H_7-~f#LVa%4NNPN88&$4eK0C_XR<+Td}CdIB(^D&uw}*v|N0(uegT#i(4s zXUF}PQJMYyzH8SaWoW|CIqaiP>7!$A8ku|>xBJpw7#psSVeJlbwzei;1ee@MHBQ{n z5P9cPtb|;h>X8Y9m5@mv3CSx6&PMb49iNvH=>1eA3_Xexb=`+)6@S)m!_*7szo0S! z=Yta>+FnJbo*j&CH+dOMHx_mB2Qe|Y1Z89xM03o_b7U9=483mB?TYH4w$m)Kh~Dz| zQ1M~q{iZLvTLGeiX*_I37pIwxCY{+&F5Dkv=`gG=v*DyW$^0C6iQu-j z4I0xBu=l{9oww_~jE-4IF$~Bm+t}afQOzh@eT)ja`e~I0^ZU<_<%p<&4r0gov9Tlq zWDXkfyV`3HMmq@-$md^;G%#8CCTdzYu@-FwT8=C^FUff&d{+%q$k<la~V(=;Hj{Snfl?Ps~jbEUBXf81#@|LxZz@joXt&VhQ z`xNmZ%1Jw|Yau~1lqxpnX?O5GpQu&r$7xd4GGYJpd4%suc{Z!KP zsT1V6>YBohm7Jjnt9{Z6|6G%rO*Z;|Kzqdt0SS{HMVIF577lWLZ-+~^O9KG1VCC1= z&V|ts_i4g%s3^Cie1;9X;^!xvT6xWkXDRZMW8Mt&@dywq!|QKYEYTi;!WYB<#dG|8Cuuv)tChjLnX2+vZVd+z8eqjLpFMIeaV3U$t|YI`2;=gN}>- zm>GpKiFy3?Wwr(lcBLEIylg+de_#2#O7A*2l4en2X)Ir)m7#c20N%m%Og>r0Cp6{O z_hq1IDA_OXI~Rfps_&y5zoj6b31Fni#%~tq{JOmHnm&k5XZjUnG1{bDe&?eX+pH&; zE?(}OdkFJ1guT+DmYhBYhDE77Uxs&G?p}@522h-H{SS=ol6?3uT21j9%n1;!SYZly z^>r#`*mSI-87AYw>^Pfbom(5-SJ&F^e1^tM&4NmkF|W{_GFJ9k8XDVD=f2R`**!E= z2ym^ZFnz&RW9qUn(4!6(-o1m#dPEfP2I5GR-RSP9j`mWx{*s1e#d3XMLIFR$C{M%A z_Qd0|pG|M7O0p<*YF0c3b@#Yb4(8JWm6qn3+@hOHU#tmIBJTs~IN?=x?!?B|w^3U| z`P15eOHry5(}IVyXht0=Ar~^eKU4{$mNp?9%dSUoZdv6*R(Q83fZ5@4__HZ5s6~IS zP;5t^V7N|YN(V1E0@c7*!tL#%$Z4$h^ zkKtVCY*lhPjn=j%8@L3vwI)xjUWB4(jq}(()xp)XD-PRdF{iKF7lqG%JNgbwUnU_$ zLbas6BlGKb;w!xKS!vn3nmm()WB#OMnyYkI$S!vPCaWT@=+&}X|9ZXQdLiwJrlyC* zfbk@TYbc5s@Tm}ON@&(+?h`=)cZ0XE=wonUN4w@B0_N`H4%o#^;Xb zzV}{xt+fx1ITjidqok@IAuz6&zljAX<1T6GNa#SYZyNI?awvgT16di|JM!nTO1zA zaE$V+1-XA$d{zPH@K`z%LDHT?En8m2!J10*&AAn{DXsC>?abvo zoURelWda~nfI3UugO2 z0G8V0&R;J-sBQ9k zspIO&tSLD2zUsi?JodQFt2gSt4lTmjfBHA8%~C{5*JzwTl?%_*86BwWSCzEYcrL`_rPsg*^um*gZ3nhxp%6mx@ST%V9XfKJoP|iS$N$+|7^+XLxg}z^C$b}XLS>2yFN+JP^1Flv` z=%}k*G_CTC#_X&r1~S7fCJI4&7%l{XD^%apQg_zMd=sENe@&A7d4nCOMBwgkZHZ5n zy5FN#dut=8-npLeo}lxKeti+b#7`Lp_Z9zmJ{oayQ{xc7eNZ@ZvW?hnO%2b^K35es z;=6PS3}Gg;j~C%?zyd%Mu>^TTHBd{`ycNoeyWUdHE!>+g%neCK^<|@(z7`XJOC|b zT7{@4%4Iz`rhf%ZFHaoHsekr6vC#i#N>8$?Uyda&hI>(rdy%7IR`x9_#=%Wugvx>g z!0KQNeK{}31l_&%lgr|o8v!_+IFwZ`BUF2svh;O>cNP_x6z9OHz9iHnwOYqgf%olC zknq_Y;iItTAOjoF`2D!eG|473n;FN?_-dZ*UqHSDFq9tdrDy{$$8LBV8iQM&VaBAk zJaq`=BNmtMMYJb8Yo19H4?Ay405oAa>XWt`rF>SM%k~5Rl`T=G+m9t22Dc|3sl&%#3%?{ zBx%#)c5Xq5>$!w4`tN266~jk~Q~v?rZAyvYuAo z%t_D_Eo=Nn&TZJu%zkFCd2CVCiOb$rgTBQ+EW?_%!G!T4;tGzyiqECOe@5XQjsk{f}#o1ZAzoRZV4kdfM%i~8J0re*-PU&Ruh zBOkqRv)g`FBe}f%C+d6TFI*S!2*nlWmC?Unw?&VoO3i6)ba?#$7q*oEBL4OL6_+*4 z?n3u7zq88Q%?2*ZZzgtKwCzhZ0Uo1s=vU9e6~+K3f3#h$bd1Rm8%z;hTG+0DSu$UT zLo&zbCoZXL20ujgma@K|vWb2P8PqY+d4vW9H}%x8Nl>|;wT62~8_dbJB9#fo{v&C) zcb;d+KAY3`)rB<=8Ch^q!oPA(>=K$rnMHP4KC7(MHnT6-YY0n<%o~ z5>+4{dMw^x^We$d6Qh4?AygKrtHMkbe7W7!I)YmcR#^1W#J(33&dM?2E~ z2NIu_l+4Mkt(p#(0rb@5FI`b6YuC~v)K&J~X zo_9O+VmmkN>3LkjsM_PXViIeWe0~0_CGN>#-xnBtu_CH3@s!^MGe^Ys&3ewabT(0W>=L+W7dHqayv7reNJAB zT>`u$wmA#RUO@m;O6&S;m2J%#=qw;28+#XH^0aCw!OTJ1K2L*L1BlOpNLpcxkJPje zxw^X+5aFN&njLk(uswI&bCN`umNqwriCP+gnt6zbkxp|dBP_{9|t7aVCN9dMt zaK z1P?teI=}R6q7ZWNLn}fiU#BPSGz9nN!-jb7pjv34+CPfYq*)*K28*zH#q&CDE8j{? zFq0cfB8x>}ObNt%)FjnC#z#~%u~&WGD+cs&+?cv;cg>zL`Y+q<)X;nlOr3pUvha^y z5$?|GcvFqfm%8_%z_LA$oGO`nQuNx>Qf$_|z)>9=P=SHFWLHJy3P~j~S{!cpNP+DA z%{gn&+vhvV4y^t?%+jomZ7<>}{;iQlaE(*mi^kwx;)DFiVh44LWBmqRr|)9u?|YD_ zCGzrL=V;lb=)bG=8xlGLjtc9t{a#4oZVinSFCUhrVt2C}ww;2HW~q9ouN!$KvCDlB z(_N-=`Abu?lkGIVKUm^!b516=m!jo>c)D;aC0yX)jR7UCSC6h$#MCn-+Mdz&H`Zme z&V(pl2QNsx8Fi_pz1ca)opEw4K$lj;krPdP8=EmPD*P5jcSfDWbgsxPC^ zRv9WrAvR%CCE?&l#Ypj4e_%kFlSL+KKpl>4iPyD99{6Ox#K$M%JTXtc8f(m|qWw={ zpR11z<0wqrY8Q$3 zpc-O4L21c3aA&kkA;Z$iSff z+;16aY7_i?mF-;L5l6WqWL8jdqynmLf6B2b+e9S#jh?@}hsm3^-U6)GY0i4r4&79# z`tOV}+Q|esRGs=|n+9K(hM*0%r;sf7_JFxl1=L@;oV(pfKX@@l?@#jc^Ut1JSxDYp z^@SFR3yS&E9{?W104H#w^hJD1kD`)YS#4dsywH~EKRurQaQ4kl#ZZ5sNC%8ztLCM2 z?j&;z;Y$_3s#!Nz8v2mZwv*}PbwxgeoYvkxjt;Yal3S0%zv$`HPx%}u(b;FrT z1!arG2mxvNgDkjKe_xf74qp+@De4{xEdX>QB>5_z`Qdc%32geACp2LHF{v;ve4Jwj@hu%@*g?R(_9S2AFquM^@oFPZ+n!c2>46y>fyxp&G(%Af7b}#ZT%Lx?0%ewjM)wCr;7psBR}M7} z>XtOG{Hq6-I*fTPtvXxhkES-BxXNBBx6*p0bLfKkefMKOXyP&(pQG&y?Pi|vNAn7} zMj0E2D&qgr<0*mto0ev=)nL@~R#qh3qtv=Lg)TMCk3~A|#6#Kp6X;UO`cJd*b9>=A zRo|{HYD~HJz=18pA_`@)8Zfb*`&X#fcQ^23TfSAdI8T&xaiC)2?hnow6YMbBH`uCT zbi=5rri-s7S{KdCEBI>E;(J8KwC>`0I~E7oimbwtw2`UiXD!C?l9cJi9$~b4X1>h) zJ%@!&V?OqvCW*d6T9?S>K2+gPZ#7hYf+`7xZPGx5Hy`F83S{F@(JW(k2n%k!Tds@^ z6wb53ny-k1)$@nA#Bd&@9TGSyg%CdQb8_fxf~kCJqyL)MuKo=^P0YtP!H+fpij+CR z6{eaE_74VYSApZ}Y`xaXwQxxeCoU4XH$i{AUQM_CtSm}{t#+Rj$1~c4glx6f|4HY{ z1sR|}ez$}E2?HscGOb|2csr)N#ko6qRbJ~@rqQ|F3%k&T;jIRvnyX9qIyvJ$|Ib$Y z-?+~owb$STEn8=_>9jl~-gQbZUR1>$90IrOTy$d^;{tV7NM4sLjh2?mPhLi$r+L9C zA1zIRRsAT+QFXw1m+vwwpB<0jc8qnYb;H6mko5i&pdir+Ed*gn+lN1I|E_8Y-- zqVvmYdY8YmawaM(DBRs$tPt_Yp&@l`VT?JE%}MAr%PBhhyy3$_J+V=ouf3 zc1CJyW?iMjl2z5p9sWD^Dr!LI%3{``d^G6kdB3xK<8ViHb#&i9EbeUz{UCLhj^`U) z`|XJ=Er7alzV50cB)A+Sm48-%RTxaN!N;5x>s?e#6wZaqC|9 zW`$ad-#dMaavC?|+9Kd?G{k^wzT=_)5$u*PIIvc{wqZ8v;9s61vktRi85PujR)>n4 z+5%EUr)ZcL8c>e$&K(ZRpKi;u){sr<^_78)o@hh`r7ErAx6&?8@1Hp$umKmH! z0a+@Ns(0%Sf?ZnRX7o`59d6n9hLIH4t+08ww+?moGJn`lSX~b*3&zmkAXN+ps z;I}I9V`?B5RSXt$Q6F0WCP{hz>TFk%*p=(i?in6)b@nrQV~aceI72@mn=DGl0BWm( zePL5a)^`5u(S%sAdk!<22`fe;uqS-~58Z5BtVn74Xu=EYvAwvT5WbPUle`>^YR9~M z%UY;%Uqk=Y_mktB;HCujJ%Km(B^!Bmd+*4Pf8|Jt{G2hJfVYI>_bwO8qI{|) zUFLF+nVD~7+?->g5|kF~r<6|&?^T<_;*L4hwSfBt+bDr~#TY2J#0`d1mqQIfPoomq zKW3Qs?igrb zIg`%F;Ho38m)<8nm96cC$m0;8#hkghh=|De%8pII!?m8O%DcY*`EXmQOr$WE;vICUKqosKhUWpPge63>kN6T2@!tlDk}rB!&!WJDPK$H~q6 z6Bylyt6V_#ebQ?q3^+-tw+}R$!iB%6}XAmN`UweU1`TS*ppCNt}f`7xf%iA7Y@l0M5ubF=0m8 zWU^k{Qc+v`s6XFRHJGHMLk_}`E-`HNe&_)vRGLxktG`9o{jYx6BJXAmkZ@LrGMQN3 z_hjI>a^vk0`~SejuU>r{U7(UrN|;Of@!H=V1(t}K(A}@rBWl6SOmM2PZC{%k6_x>x zl6Is0JYY0RhSESwdX$@cK~od9-D~g7TqXU-tdbmNOgOKYw-!6kDMW34B<1Z1-z4Is z6VTVz)0LmPU^{J^E87&>25$ANPP?Jx=SH|W|7a|q;L;p*1y=*;AR~NKUFMn<^D@Ip zP!MdN?cg=2hm4R$EPYd=rQKS8rXD?vZ|97x6nmDfd~-TVPSHBb0`5AqY{XEcYj&~9w>Ao>>f~ZX_ZBQ<^!)leFp-snodg~WCvGhLKD;gb8czL_kb7gqT68zf*04CEi>0+SmdqA}>-e|-V;5kf z3CLH!7iA- zzxBA_;QO-`K5BG6u-fWkI=2@m04@=s{@{}IF-Hn*liq*!HW|!w6}&4r3R@}`xNI#C z^%+`*0LWEVQle1q1+1Q-?!lKoy}G*CJX#bBHESY;HSfD7Ho zPuGIZ+;qFI-!?X60?6IJF%KC?NF*1Q%utPJwNoPO5@7CU?#>3ub>`Z9t8ilH>H@ zTPMQp(_nhR;7XF(_jSd5v&Af0*Q&x$|H)TD9MlNU`r7uVpmI&l=FIfGD-ssKjG{9$ z{`KAhd9`Io2$V91BU0}!;RP1{9k}Qp z^&w6a49i;!$o%{*{z!Sqru6z?+HshIpq%?4wKq@-4w0vRI(5h;wo-SkIVMqIGyRDA zZ^rY)q zNWY@=#x>~}*gafSM`aU0_aa4-1~5kKNjdfNIO7^jH#D_DN?rMIl5IXv_3Bm*Dq$>p z&jTi7|4DF8wA(&0)KCmlUst&+dQ7t!?lFM3Ts1tr11rBv8?tbBgjR;rp6hA2A#UkA z`v9~Y-HT4k7|xny>Vi`h5{s?T-*UOY2e=sn$v@r4L~~jxy2o^@P{M7uAm0fT9%6h% zh;9fr1pNS_-s@Ns@>p={$n>cx;MQOxYW45}y~Q*GsJw!}x;~Vf8@6};ADNJrN`zW~OhBmhqW&_MMq(nEpT)y1MKq3WD3cLoF-SDQJkm#ZQSSDdofN zmkjpZ^)f$Bi#Zs`FBkb3idjErp78!XG__SyENpV$@1-xp{vz#a+X$X|i$ft~xN2nO zE03Um{lK8x!=j*|psLkMnHLgzP-|pg$?2(xJ8&BwS(TZ1 z3q~*M^}is(DJ{3NFE&Yy$7Qs}ZPF#%yxQekrur_|5wQKt=Z8(vXETu4`XK*i$(W-E z4?~=_1Wqla{3=sWyb)y!y}A+pQ&~};OE@2+q$qJ=#qyAcxJ;;9NtVV5rxcjfuup8Nss$yF{GWcdg- z0sj?pRh{A=@X(!PIs-U30yI*2|d`^y4PH6#lS?h;@)7 zNxotPfT0f$Qv%Zljg{tG{Pvh-A=iMs3n&??hC}1|@?CJp-+>ePl}6?;#XhHqc8S>b zPzJ#VLkRQvn61N!K^97C!@Vvc$EX1~YVmvMg8L6~@WcUw{|eM*1P8tzJ_S-cAVK}- z3lFZS#m25BKR}ADSgH2nO`n_sE!wn9O&P>&h}r(rhkwHPEn<-cK@dMaKtiul3vXy? z^8(GrMSN4F=y*MGx@B;w<*N#m`+X8xZ~;bSWZ!K;!wcw5unt%7Kl`sfb|c>cPqE`y z<|ugeCZ2itW=Y#mxw-?#xB_)_Mk>MabFI5|aZv-;@dfRGoDV1k&>_^W;>h|Ovw_1+ z<;@q1;+K)D$&Lzdi1ys4L(ne+m>h6YEvTqc6XFQtXu4)ObNWJDu>aRL-!WYlDv_(Y z>9Py9m==aO(JA!9!SR>4+jkA6SfL#5dwnD5A^mLz^d%s|z-lrFC4ooXdAPNWf8n+w zH`$3(3r^B&6@ptJI?vi01(Zi18$AiCTa5%KLrArNYKrY$RZ~rb9MBxqJVIt+u7))C zOM~KU*b=~TcSY^M8iKwMvYNvj^sQJNIl0b+=Cn{OT;G5p1V5Em)p}e&VA`Lp3W3BI z>b0!Q0xHKOzYlG>4et&lr#5X_3%}jx0o^*&M$i-~m!Rn32=jJz5>l+18T2@_PGesa z_9jUat;IewV_O$jK)Kro4aAwO@8 zi69ELik+#6p|$Bv+|jwXR`eRKZhuMWCUna>x(!58NN04UZCIAJQPna-RsVo%J?~ZF zQbn%o8hly21rgHn#Vr)lGCfHU;*cmn92AD2q@vo5M1bx05|qfc8w~crdOcI>JU))F zHxJo^VE;32c>R;CYS;=~k+=hHeK#2#BcK5FBf|5bW3D!p92s;g;&B09{r?@)ySNO2 z`Oy;6anWTRB*M<|{2aIT;WF>-wKSKZZ#jnG4u;0#Ipr--$J3f&^rI=T(CcA}%*DSA z1rZ45O?cbT5(dm zU{0!0f$pqYfHEqa91}^es$m7=o+STW4lA~COzZs(i#?3 zIUD<8`^Afh3kNgF8?&p*q`CPdo{k1b!)}m66SDu1AFuUXFu&(qzeB0IIh@5-zA`!M zo7BprvGDR9ZS%;)@#I=^R&A%+B4K@{(WLJ}XY)`0Cp&+gsA+SD9OH3dy;eI+& zup@b=ji zGl@?)7Zkb4%_LA}vc>S$wP{j?p0!`UXu{?0zR}~nms{<}MpP>*e0f}HZ`OWXdi@pG zcAph==Kbs2`jhpk%jE2%VwkivH*zN&d(|kB(4H+I+PI#Hx*x2;Wb~y1hWoPHLIes`j$EAC`Q}-?j<-mV0N&07l>vJv4!zBx;&ZpHj zH$@JY>~~AfEn%0#{9(E4MviAfIg><1Dr5%OzYRL&CoWr`y{YlN$abpHl47YZwztCl zw5P-0y*<@;@9j@#r0W75VQ##}t=^@!XxDzNCW(gj%R#U3*7o+ahm<5v<%|}esCi$J5SNikQMz<|GY4%nr+#Xe2L$Gts$Nqg*4~pXgZj28${W! zFD5+7Jli**Mx$1DQ-iyz2uU58o_Vh-ha$GnA_hB$@^aAMa;J+z{xEIws3Y|!$+l^p z@+jI+MHr7{^XCj|JRqA@X?z6i(od0>SH^3Es85BPNN##5(62rWo{Pkt1*N;HQs z)v7dI&TF?;qL?zYJ(79VnBFS3pK`#lJ7_|IEZmS~;{B^rTy0Te(RY*n%a<<_b2A3c z&U;j-z0fKx0EucuDplub&qz!j(o8?#i(RMyfmiu#}C@T;3 zIW*-9IR}Tj4vBn%=c;)p3)H|@=qwxa7C^q2?N<`V1p--tI1T4(gSgU)g%RlFtNv{M{4RXFP z(=AmwBtj!_=F6X0a9fPyafj)m)Oa1q5xQn+LeP18YhkH7&98Sr?XbP{;LX6`lL7{* zEQ+kjpJV;k5~G8Uj~|}9SpCI#$uLy3=yv5LX8kzWcPWPS9yXZeH-nsd#GFq_z7$21 zpm>LEC;AMxg0V@OXTKTaGZ*J9E)Gz#(a_Mu#c;f^(j@n!`jGE&n0O&XUZjLg7#z-; z!RhpI-dQBIY+K>+hFI@~T0u2K>$xUZwb*(RbWw(9{^>TWXEkg7M~s zhRTzCndRdz&(5b-ti>Z2R>*YDUZfO@Y>$OP4DHoZKkNt37 zN#fUW`z}zvAED3oO#l6J%KOc}z#g$yFn?&?~ZB2ggecwr4g$p+TeDPH{=F2QSkQo`w_aJj`j$yj|UOSsW{CaDZIhpYF6{_>ox!IL@ z>BD-mFpqv{ETy;|?m<}AvhT0IwlpP8f&p~H03Jlz_A@vO)48sc z)YV zceM0OtwTFcS>?kgFRwDi(Bq|UEuKs>5xnW@xIb z*gx4HqgR;8z@3pQ!s6;C;Nh_}rP}Y1`2On(F|8o2J3k*Egw=T7zk3=^!|Kgmk5%>c z@i~Ta>RKqhSgC%!|2+9uX3urZ8p>(QbX`wbIx`c#Jk3a+-CI65*hEq?WO(=N$)eY7 zENRh`%16w)O^g(qZ9bQOJgEk!j3F3-oJ`I~vI~>S7|ffCw9Z)>8He!`M`|w#Cn;cZ z>TH`rR-}(VIa&&DQh6Qca%j=JZG{DQGcsiDthia(*qCCEG2P&qDqaXL&7^WoO+0KI zffwVnAMs@imlkvgX!3Ux zyDN*!Um6*1Ho-oBDFBSI@Uj`)f 0.5s + Halt podinfo.test advancement request duration 1.45s > 0.5s + Rolling back podinfo.test failed checks threshold reached 5 + Canary failed! Scaling down podinfo.test +``` + +## Custom Metrics + +The canary analysis can be extended with Prometheus queries. + +Let's a define a check for 404 not found errors. +Edit the canary analysis (`podinfo-canary.yaml` file) and add the following metric. +For more information on creating additional custom metrics using OSM metrics, please check the [metrics available in OSM](https://docs.openservicemesh.io/docs/guides/observability/metrics/#available-metrics). + +```yaml + analysis: + metrics: + - name: "404s percentage" + threshold: 3 + query: | + 100 - ( + sum( + rate( + osm_request_total{ + destination_namespace="test", + destination_kind="Deployment", + destination_name="podinfo", + response_code!="404" + }[1m] + ) + ) + / + sum( + rate( + osm_request_total{ + destination_namespace="test", + destination_kind="Deployment", + destination_name="podinfo" + }[1m] + ) + ) * 100 + ) +``` + +The above configuration validates the canary version by checking if the HTTP 404 req/sec percentage is below three percent of the total traffic. +If the 404s rate reaches the 3% threshold, then the analysis is aborted and the canary is marked as failed. + +Trigger a canary deployment by updating the container image: + +```bash +kubectl -n test set image deployment/podinfo \ +podinfod=stefanprodan/podinfo:3.1.3 +``` + +Exec into the load tester pod with: + +```bash +kubectl -n test exec -it flagger-loadtester-xx-xx sh +``` + +Repeatedly generate 404s: + +```bash +watch -n 1 curl http://podinfo-canary.test:9898/status/404 +``` + +Watch Flagger logs to confirm successful canary rollback. + +```text +kubectl -n osm-system logs deployment/flagger -f | jq .msg + +Starting canary deployment for podinfo.test +Pre-rollout check acceptance-test passed +Advance podinfo.test canary weight 5 +Halt podinfo.test advancement 404s percentage 6.20 > 3 +Halt podinfo.test advancement 404s percentage 6.45 > 3 +Halt podinfo.test advancement 404s percentage 7.22 > 3 +Halt podinfo.test advancement 404s percentage 6.50 > 3 +Halt podinfo.test advancement 404s percentage 6.34 > 3 +Rolling back podinfo.test failed checks threshold reached 5 +Canary failed! Scaling down podinfo.test +``` diff --git a/docs/gitbook/usage/deployment-strategies.md b/docs/gitbook/usage/deployment-strategies.md index 29a33186..09011868 100644 --- a/docs/gitbook/usage/deployment-strategies.md +++ b/docs/gitbook/usage/deployment-strategies.md @@ -3,11 +3,11 @@ Flagger can run automated application analysis, promotion and rollback for the following deployment strategies: * **Canary Release** \(progressive traffic shifting\) - * Istio, Linkerd, App Mesh, NGINX, Skipper, Contour, Gloo Edge, Traefik + * Istio, Linkerd, App Mesh, NGINX, Skipper, Contour, Gloo Edge, Traefik, Open Service Mesh * **A/B Testing** \(HTTP headers and cookies traffic routing\) * Istio, App Mesh, NGINX, Contour, Gloo Edge * **Blue/Green** \(traffic switching\) - * Kubernetes CNI, Istio, Linkerd, App Mesh, NGINX, Contour, Gloo Edge + * Kubernetes CNI, Istio, Linkerd, App Mesh, NGINX, Contour, Gloo Edge, Open Service Mesh * **Blue/Green Mirroring** \(traffic shadowing\) * Istio diff --git a/kustomize/README.md b/kustomize/README.md index e719ca5a..17c23b14 100644 --- a/kustomize/README.md +++ b/kustomize/README.md @@ -34,6 +34,14 @@ kustomize build https://github.com/fluxcd/flagger/kustomize/linkerd?ref=main | k This deploys Flagger in the `linkerd` namespace and sets the metrics server URL to linkerd-viz extension's Prometheus instance which lives under `linkerd-viz` namespace by default. +Install Flagger for Open Service Mesh: + +```bash +kustomize build https://github.com/fluxcd/flagger/kustomize/osm?ref=main | kubectl apply -f - +``` + +This deploys Flagger in the `osm-system` namespace and sets the metrics server URL to OSM's Prometheus instance. + If you want to install a specific Flagger release, add the version number to the URL: ```bash @@ -68,7 +76,7 @@ metadata: name: app namespace: test spec: - # can be: kubernetes, istio, linkerd, appmesh, nginx, skipper, gloo + # can be: kubernetes, istio, linkerd, appmesh, nginx, skipper, gloo, osm # use the kubernetes provider for Blue/Green style deployments provider: nginx ```