From 6e9fe2c58444eadca28d4e305a39069b3e223e15 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Fri, 26 Feb 2021 16:12:28 +0200 Subject: [PATCH] Flagger v1.6 Signed-off-by: Stefan Prodan --- .circleci/config.yml | 50 -- .github/workflows/website.yaml | 53 ++ docs/.vuepress/config.js | 67 +- docs/.vuepress/public/cncf.png | Bin 0 -> 24610 bytes docs/.vuepress/public/favicon.png | Bin 12403 -> 7639 bytes docs/.vuepress/public/flagger-gitops.png | Bin 33168 -> 192683 bytes docs/.vuepress/public/flagger-overview.png | Bin 202353 -> 250770 bytes docs/README.md | 27 +- docs/dev/README.md | 0 docs/dev/dev-guide.md | 211 ------ docs/dev/release-guide.md | 34 - docs/dev/upgrade-guide.md | 41 -- docs/install/README.md | 0 .../install/flagger-install-on-eks-appmesh.md | 194 ------ .../flagger-install-on-google-cloud.md | 400 ----------- docs/install/flagger-install-on-kubernetes.md | 280 -------- docs/intro/README.md | 39 -- docs/intro/faq.md | 640 ------------------ docs/tutorials/README.md | 0 .../tutorials/appmesh-progressive-delivery.md | 394 ----------- docs/tutorials/canary-helm-gitops.md | 356 ---------- .../tutorials/contour-progressive-delivery.md | 440 ------------ .../crossover-progressive-delivery.md | 324 --------- docs/tutorials/flagger-smi-istio.md | 295 -------- docs/tutorials/gloo-progressive-delivery.md | 381 ----------- docs/tutorials/istio-ab-testing.md | 260 ------- docs/tutorials/istio-progressive-delivery.md | 373 ---------- docs/tutorials/kubernetes-blue-green.md | 377 ----------- .../tutorials/linkerd-progressive-delivery.md | 485 ------------- docs/tutorials/nginx-progressive-delivery.md | 451 ------------ docs/tutorials/zero-downtime-deployments.md | 185 ----- docs/usage/README.md | 0 docs/usage/alerting.md | 128 ---- docs/usage/deployment-strategies.md | 305 --------- docs/usage/how-it-works.md | 285 -------- docs/usage/metrics.md | 316 --------- docs/usage/monitoring.md | 119 ---- docs/usage/webhooks.md | 398 ----------- 38 files changed, 75 insertions(+), 7833 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/website.yaml create mode 100644 docs/.vuepress/public/cncf.png delete mode 100644 docs/dev/README.md delete mode 100644 docs/dev/dev-guide.md delete mode 100644 docs/dev/release-guide.md delete mode 100644 docs/dev/upgrade-guide.md delete mode 100644 docs/install/README.md delete mode 100644 docs/install/flagger-install-on-eks-appmesh.md delete mode 100644 docs/install/flagger-install-on-google-cloud.md delete mode 100644 docs/install/flagger-install-on-kubernetes.md delete mode 100644 docs/intro/README.md delete mode 100644 docs/intro/faq.md delete mode 100644 docs/tutorials/README.md delete mode 100644 docs/tutorials/appmesh-progressive-delivery.md delete mode 100644 docs/tutorials/canary-helm-gitops.md delete mode 100644 docs/tutorials/contour-progressive-delivery.md delete mode 100644 docs/tutorials/crossover-progressive-delivery.md delete mode 100644 docs/tutorials/flagger-smi-istio.md delete mode 100644 docs/tutorials/gloo-progressive-delivery.md delete mode 100644 docs/tutorials/istio-ab-testing.md delete mode 100644 docs/tutorials/istio-progressive-delivery.md delete mode 100644 docs/tutorials/kubernetes-blue-green.md delete mode 100644 docs/tutorials/linkerd-progressive-delivery.md delete mode 100644 docs/tutorials/nginx-progressive-delivery.md delete mode 100644 docs/tutorials/zero-downtime-deployments.md delete mode 100644 docs/usage/README.md delete mode 100644 docs/usage/alerting.md delete mode 100644 docs/usage/deployment-strategies.md delete mode 100644 docs/usage/how-it-works.md delete mode 100644 docs/usage/metrics.md delete mode 100644 docs/usage/monitoring.md delete mode 100644 docs/usage/webhooks.md diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 955cf9d4..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,50 +0,0 @@ -version: 2.1 -jobs: - website: - docker: - - image: circleci/node:12.8 - steps: - - checkout - - restore_cache: - name: Restore Yarn Package Cache - keys: - - yarn-packages-{{ checksum "yarn.lock" }} - - run: - name: Install Dependencies - command: yarn install --frozen-lockfile - - save_cache: - name: Save Yarn Package Cache - key: yarn-packages-{{ checksum "yarn.lock" }} - paths: - - ~/.cache/yarn - - run: - name: Build website - command: | - yarn docs:build - mkdir $HOME/site - sudo apt-get update && sudo apt-get install rsync - rsync -avzh docs/.vuepress/dist/ $HOME/site - - run: - name: Publish website - command: | - if [[ $GITHUB_TOKEN ]]; then - REPOSITORY="https://weaveworksbot:${GITHUB_TOKEN}@github.com/weaveworks/flagger.git" - git config user.email weaveworksbot@users.noreply.github.com - git config user.name weaveworksbot - git remote set-url origin ${REPOSITORY} - git checkout gh-pages - rm -rf assets - rsync -avzh $HOME/site/ . - rm -rf node_modules - git add . - git commit -m "Publish website" - git push origin gh-pages - else - echo "No GitHub token found! Skip publishing" - fi - -workflows: - version: 2 - publish-website: - jobs: - - website diff --git a/.github/workflows/website.yaml b/.github/workflows/website.yaml new file mode 100644 index 00000000..42e12fc5 --- /dev/null +++ b/.github/workflows/website.yaml @@ -0,0 +1,53 @@ +name: website + +on: + push: + branches: + - website + +jobs: + vuepress: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: '12.x' + - id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Build + run: | + yarn add -D vuepress + yarn docs:build + mkdir $HOME/site + rsync -avzh docs/.vuepress/dist/ $HOME/site + - name: Publish + env: + REPOSITORY: "https://x-access-token:${{ secrets.BOT_GITHUB_TOKEN }}@github.com/fluxcd/flagger.git" + run: | + tmpDir=$(mktemp -d) + pushd $tmpDir >& /dev/null + + git clone ${REPOSITORY} + cd flagger + git config user.name ${{ github.actor }} + git config user.email ${{ github.actor }}@users.noreply.github.com + git remote set-url origin ${REPOSITORY} + git checkout gh-pages + rm -rf assets + rsync -avzh $HOME/site/ . + rm -rf node_modules + git add . + git commit -m "Publish website" + git push origin gh-pages + + popd >& /dev/null + rm -rf $tmpDir diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index cc585a12..e40e77da 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -5,77 +5,16 @@ module.exports = { search: true, activeHeaderLinks: false, docsDir: 'docs', - repo: 'weaveworks/flagger', + repo: 'fluxcd/flagger', nav: [ { text: 'Docs', link: 'https://docs.flagger.app' }, - { text: 'Changelog', link: 'https://github.com/weaveworks/flagger/blob/master/CHANGELOG.md' } - ], - sidebar: [ - '/', - { - title: 'Introduction', - path: '/intro/', - collapsable: false, - children: [ - ['/intro/', 'Get Started'], - ['/intro/faq', 'FAQ'], - ], - }, - { - title: 'Install', - path: '/install/flagger-install-on-kubernetes', - collapsable: false, - children: [ - ['/install/flagger-install-on-kubernetes', 'On Kubernetes'], - ['/install/flagger-install-on-google-cloud', 'On GKE Istio'], - ['/install/flagger-install-on-eks-appmesh', 'On EKS App Mesh'], - ], - }, - { - title: 'Usage', - path: '/usage/how-it-works', - collapsable: false, - children: [ - ['/usage/how-it-works', 'How it works'], - ['/usage/deployment-strategies', 'Deployment Strategies'], - ['/usage/metrics', 'Metrics Analysis'], - ['/usage/webhooks', 'Webhooks'], - ['/usage/alerting', 'Alerting'], - ['/usage/monitoring', 'Monitoring'], - ], - }, - { - title: 'Tutorials', - path: '/tutorials/istio-progressive-delivery', - collapsable: false, - children: [ - ['/tutorials/istio-progressive-delivery', 'Istio Canaries'], - ['/tutorials/istio-ab-testing', 'Istio A/B Testing'], - ['/tutorials/linkerd-progressive-delivery', 'Linkerd Canaries'], - ['/tutorials/appmesh-progressive-delivery', 'App Mesh Canaries'], - ['/tutorials/nginx-progressive-delivery', 'NGINX Ingress Canaries'], - ['/tutorials/gloo-progressive-delivery', 'Gloo Canaries'], - ['/tutorials/contour-progressive-delivery', 'Contour Canaries'], - ['/tutorials/kubernetes-blue-green', 'Kubernetes Blue/Green'], - ['/tutorials/canary-helm-gitops', 'Canaries with Helm charts and GitOps'], - ], - }, - { - title: 'Dev', - path: '/dev/dev-guide', - collapsable: false, - children: [ - ['/dev/dev-guide', 'Development Guide'], - ['/dev/release-guide', 'Release Guide'], - ['/dev/upgrade-guide', 'Upgrade Guide'], - ], - }, + { text: 'Changelog', link: 'https://github.com/fluxcd/flagger/blob/main/CHANGELOG.md' } ] }, head: [ ['link', { rel: 'icon', href: '/favicon.png' }], ['link', { rel: 'stylesheet', href: '/website.css' }], - ['meta', { name: 'keywords', content: 'gitops kubernetes flagger istio linkerd appmesh contour gloo nginx' }], + ['meta', { name: 'keywords', content: 'gitops kubernetes flagger flux istio linkerd appmesh contour gloo nginx skipper traefik' }], ['meta', { name: 'twitter:card', content: 'summary_large_image' }], ['meta', { name: 'twitter:title', content: 'Flagger' }], ['meta', { name: 'twitter:description', content: 'Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments)' }], diff --git a/docs/.vuepress/public/cncf.png b/docs/.vuepress/public/cncf.png new file mode 100644 index 0000000000000000000000000000000000000000..97796cba6c9b3c2547a91be4e2a02bec10c88c9a GIT binary patch literal 24610 zcmb4rby!qe+xO7jNXGyJh|(xX&d`IDpc2w8C=Ek53J44>At@jt9nvYn5K4C|-CaX{ z+vl9~yzh6uzrMLHVD{R3-)pVA*S&s=h$kA#B!movAP|T|1+JhC0^!DiKo~^$xIl~0 zTIm7shrkK0?+OC(bNu6~6gsv)|o68Ejspa8g3w|V_-wF!($xI=(eUcNWd#6i^`$Erh6@Wa6@_tmW0n~r$S zIoCbc8(%0meeM}tS9$H$^=A9(Wa0KGMBe7+uK_Olebc2c#=Kb_0!`T{?o6i5in@*Q%Ollj8t=GOYdE3(f8-bd(-M}dGC^QI_L>YTWXlH+WW2)0Mw1P+Uz@vt3M z>aD*bpITzw+RDXEgw*-;lo3K!*5BMVPCfM9V+ncedbXvN!W0rAYB?mA@Ao`=t7XzT zhSiHVtLGeNG7Z~hp3!$#0V*j*l{?V9e9|y#b zg)~fKhv)Mm-NuR%JFB|;KF0PWvszl2UZ;(g`T1Lc?^h<&iz9Wo5SAxvSzk3iZ|dey zeQi^+kF4f_U`gmO_;Ot^Od4Aq*N3RBF%jktNOKpV!hm@xXmC5Oo&?-1zTVZ{NK-Qn z81DHJY{Ep5*r{2%@Vu;aJ zAi=xayw*UL8UMAihqwuypKsjETEq1s52Ujk}z&&8VJ;l=Z zgfIPuC;?(#!v;&s$I~aMVlIB5!Sy;{o$P<3pb#a0vU>G;}7I?58Zx(R@sUOhP02!WNg3Yq+hHk<3dg9 z^Y7EIi-0DPV;SQ0*nuT2YhxW99qHT5|DitsgEP!fX)oQ6=h_a1Em$2Sj-K}h`4Des zQcdENf6RP|{FL!T*R-9Uh+=Ul)CTlXhu&`&oKW+*d)wm;-XF^~ZCH{;p2sd#p2Fku z(=y1Pa^=DFA8=!cA~-Sh6cPAM9x;(H!g#EAmvM`^1EOwb+tkou8;tUtu&}U3^uU`T z6!)CKkbiQg=V{H2k$8)!`5&sYU4F|f9#TvR3|nO5vrD1WDCIUA{X`!r>%`9JZtMeY zBsb0!u{KcrgskQYYzM62%-08Xv^Y6wt5FYUV&Yy&Q5(xKV;f_H-Qw1@1^mNvUl?Yn50{ zATN|3v-a5)SSywy838Hdzg~RWn&<4NX;+Q-LhC8wgk?3PQzgG2n+Mv*oH`I+3YSDX zZQnz^w>;2ggqlAg++#`Ll#+kXzQP4JKff~aGGB8~&l zVvIpBYE~Loda)jBorSwh8G)ucad&)fSCH|?6j$vOMWcb?0(0ajteNRX*fuGZxRQi z*PO2ZxSt2)sZteL0pY21d%QsM>U0T->HnPr@f`Ed5K_hh9HL}oB2JZK!oGgtpg-aa z23Rvmiui<7*=nJHV_FFjb7RMYUI#9^w)Ce4qKLSpIARf!u=?mjA46#=sUJNpwqSq{ zxGB}5%3y-TPQi4iXB2@XTT$;UyOGsH&&^SU?ItD~hn*^r6Iw62N#tyytK)ush{CQ8 zf0RtJjDg%AMY+Xd<|^rcfg>s(q)TsDsAEEWda z;8dD^jRl_?h3cG;URQqyqIh5?IgD^zIUcO4O+yBMTaNp7)(gWFOSrJ(i~ls?vUJP6 zO=w6six&(`J=qU*UVP(faeScl-ay)Gse66tzKi_}W1Oqkj$0GFr`Yq?XScf^Ct0_v z+uYH6Uxyo2`KWI9pto5IqX9R%>?X?oxm016c+CJ;$(z{-4nG!6Snx$opgl^<3M|dl zF~@~X=@d@q^2#10wIf;dF+c)dCKL1??ipHf)KjrFzqK({s_!^CYi#$5Jhj1?i4(sQ zshCYgyB7CFC(^!jQ`B1np|093n>W>Zv$UX21z*}YgWg<0Gp={BF19QEqi@c`778Y& zZUh#%4j$gDvffxJd`;vs;!zD0lyXe*>@DS`p-Ad9IP+Z2JZ7_=ar=J4u1CNdeS8P4 z(Jg)5QY?&D&OenZJaVVEJA^kr_GTs}ue(8$`#LQbpY<9Zl0B;5wrcs>%|Y-}oKa|Q z!>k5}YT37S*ZY-r-jDiA@dB{QJCCXrd3sy^0jCdp8Eu+U`fk--%j0U_eUJ^m(NWq(R7+M;VLkHJ$HX$*8B1lSgfk?>F@KL+;>ZXpQ z*uC4VJ@csbyU&Ycv=nL7sbuq500XStS^VxI&=W0sUV^(sbc<*Z984hiQqiK+hVHGUWJLu~Y7sq5uy?iJBO^Gsdh0|ysF<^4!u3U7u<3l->Mql7?ORtevVaoVAgr zuSd_<4{vD^5@B!_;egdlw@@0o5Rm=F`L|6b8{q8G-Z zJdJjg=M5Mj>2;fsy^ES5c|eB`E=Dvu{lZPqBlu9DiWE_6apYcl6B61ojM1(MZm79| z?ALtC-h0DOt{|)gCdd{U!K%kwH;}I3U(cPTLCBt`H~DvP&P?4iqC;go@NibV(>=Ph zGaq_rAS{HBt*`l@9U`77nrE?#OiB3}Uwv_WF|4zn0eZ=5`Dux_w`3USr!o+|K2!?`=e8Ehuq{@C##<~Yqxp)y;X4E-i%+<*0%ngmtjuQ-U zDoQxpCXV@$VsUi+?&Eljv6`Yt{s(k8y&sdf0;%1@B(h<{p>uH9{>hus<^^2APZZlq zy~(qY54q^$6I@zb7T0iUTx>_z=&+|z3P_+fw2c`_z}oxwvNw z8mnB|yE7xL7&YkvP6$*A?sM+36U$$(kuI%cIBjqy*}OJ#IOazhIc~X4q?TQD9d772 z38W|QPLbx3C_x@mKh^!Pq#3E~t?ODVF-mepKcNYsXm{{NI83evux36B+Aitjj1}Ds z5H7$SjvWn5#$@W$e5f}d02m;EbL{FPw&_M)>APqL3Ga7wgNBX;9lO^RHBkU9tg zmSA&Zi6;T`xshA3n@;7=VaI}tb-(z-f8FhQI6PSy@GVr3T(i-yzz@=N$ll3r)SkB#!635}=q3P^7NsYS=#iY!c?J zNolH2lW))O${W(}@G)emFz}K7I6X%^)Q5XEhMFuR@#}eW>6T2t;iY&o&5|VICx$_^ z`l_~nw9I^-{ZK}vveH65`^3r{u(kr=LS;!EEGbAc+;DDJu0QN?>6~i zMHx68E;8gs8A9#@3$G^eFbBw4>sfgibe4)caqRNj*Y>nbFbs-{yFya^b`?vP7Sbsc z-Vp;j(cK>XhSx&|gz>)90QvL*W0PPz=J%d2x5DfjIs8)_vPKmjP0spuIXW^(qK*Rj z*6V(lx44;BFVzb^-h4Ovo;4Uw!5)i^ZDn~}zgBz&3cedTMRw?J(_S)UY7ZaB`&cBh z+HWm3j1h$OU?`#L8+L$1<1SvD00M>?p0ZerOy zI1ovL>1K(eamCJ%s>DGB$mrhRoGQ2aw#W4x@hsumz$%!@;;jjq#NEVSP8hrIcWr$@ zsl#xF3QeTd<4TP3J4N;J37ND-fJq5N0aFExq;0kv$Z!yB7_GvFg(~{b-YP3c!TrF! z5*C}Ucc13=w|zVVWMbLsu>P9=oyk~PRmuZtbJWA~=d2dHuaP;_ioZ{m*Bast-vf)m zI6yg580h`@??VFx^wmK_K{xT8rNtCIqzZi>NjXge3xE|ZUAl0a(ECx{Gx~fS7^{V3 z!graqLLwTi)kv^5CLm60UM_YAH!Bj*Oyyl0*#S6OKyQv7)`}ILptzU{*4CTH-6!@z z=Gunj*rNe$F4Kvwa2p;<#{6UzTSJG{C!5*H7kEs%8Y& zk}llHN-xI!lS5hYW{-h1k}egXN{*=l3m_iQ1n6cudbrRhh9Wa?K*75cbo04kHtTi= zksy|ps3r>RNRG7eG`fdPHdb;qpc->`k~S5TB!1+NVX7ccMan!yOqGS(^CLK(rO(@# zVeELN6A@=)F6{>o7#5v;Y0BH~X8UOB8$L#}a?_8ZKv!e*1=0arM04Lb5|+dIt+l#8 zs@4~$U$Xo_ySYSVbUL)Vgxr>>eLVF`ZDxvjSbD_SxEMqNU##VqoWQlxp)L){j;z*F zT2OwLYMsx%qR8bgu7BA`q41bI2$D@pLp7oH0?TBkfEU*)O~sEGyekpXGZ_dUREk-v zU}@dm5E(3;ET43CZB_9D2c=7t%{SbH7*TEVnch#TB4~i8O7E@v@flh+wV5wIBE1kn zR;f}e&tPOQGWf10TH>_`f8>2DALG5zxF^es6<*sPOAuk8joHv47HZK*ia;P9RTkJZ zRLz=yJoAl=(2Bfr&XXhuy&kW5)^Ba>HaN7K^zAN>Ev+m$j}_ogH1yqmPhEpTgDUBC z&`hz*u+dfNfcbC;*;CjVN5S6e67s%Sfjw`nIy04wdwUGq8JP2NDio2gBU50DkTyCV>)(# zV}jyR0JgBkx-4PZTdV}6VoS4 z-Ka8!o+KDf&jv)F=(mjc9S?z$o7M~m!MC&heenG(DE9tcZf`OiiELX*!SnSa*u2G4 ztV53S=O47iKh!_rsp25pvv|HM-b>mFaEBgK1r+$5SOut#4j=9BllNZ3*MJJ^w&|9V z*?#JoM9!>ez~k&A(S!$B+E3{H9EyaCf-E9&1jU$^kct3T6u<;8!y3f`vx(usi-MD& z@)}X)$81D7voX)STEH1XV-}|UzmYLVu!UDf%GeKsUiKC}vYqk=JQFRZB00}fK*&08 zakF~zcmwY`If#PVEItT(1kJ`Qr#w0OxrrppYPDE-z50yHlGU{6^!w(^!;)zsqqf%+ zuamuZ;tfOo3<1ap!wC~Aff{i)l7;bG(1%THaU*V{oVvOqt(v+!Ala9G85lB zHESjMc?LN|b6X1kT&l2)&mIKiSz&A{ATaJMBOYiSj(^4xp^6Bqwx$5p@BWVW?BJ** ztfVMU>RopgyI0k4?xB< z)&fah6vvL+#{o34{4E57JQOQF5KS1U>vwkMsB&0`;|3k}3C{j7Bq_^_)_zWwWme&R zYue|d6FB=^DNFL;s`Y3`+v6G&*a!$M19HLO2VjCgK_{|rk#GG1z^Ew9$+mO|JecVf ztsKnhajPlEn|7PtCM8yk%-*RVInk)zJ~6=4}LI+%~i7N9>W3GNoHm!h1r{UK=Bu_!`*u4r;di`flcB zz-H+;j*zuDaTCOtdA@GIg>C@Fa>&ljWx$!F#JO24Y#6A5NDVJo4D4&A!G=Hke}V{j zU;cEw?YP<9B~9fg6}I)7J+cwz!Sjs{bbv*14Qg*t7yHBvp|QDr3G z?LbA{a=HXXICUfKuL`JO(b32UG!)7JeaHJiyeunhsk4Q5ji&K?p5r-BZk~*uFb|38 z*DwAV^u7+iXfzguXDhrqn5f1n&>3)ba72<6NX}xc8wvLYhaW!Tnrh9X{r)2Tm$W8? zfQ+gK?|6p7t@SOzxZ8%7F)g4Zg}YJTI56$5dEl6)7J#Bxpn7Zx5ex|)KCiyPQn*lr^%P7P0Ut8*#cTeQ4)hJWIBb?{J8z%Dlvy7wNU znTgH&C;B`VfDfd7Y8RTS6ysi&1We+4(~Yau@j<7Yk!=N?=4$mLBdk|b(aYil5VJxF z6XGq}vxn{9Mi)iM=;%Nu6_XLwsC!FgdU?t=7}$}LWt3B$@&U|Ss~(Yak*?Y@_AfkW z`>iV`Xs<)j?iZFxUdYKe3TaqEpQHMUp4XSut`21Ed&VNx@h6|4M@;HeYU4ShR6g@*S6>U*r z;FW#Wr9YO$WEJ*xN9nW)JHGr&hz6Lz?*oG$e^FncfaJA@QpSx10yk|!)o7x_k2T`E zMxN)id9^N`FBh%y+KAX^LpmU+uUl=1$HNX->MJ~akQT{7_RrpCz0%S(-qP}Kdx7Ba zwZ>G@dkdpPv!rX3Y_>!wJYuKL6!Q=qehz;Vvv$Yez`|NoeVRM4g1LlJk%$~~^&4$H z%4~f)>IYy`bSk3#5Lf5d1`>E)z?6JqSAx;xR)u zN(SvrN6rwpY>Kyvihljj<^hfkwZezw#ApEH&-luJVv=+KI!OmJWPTRDeqAK|$VIe~ zK*5Bzol@Zi6iWPcZ>+!|Z1S)t$E;asg|@q4fCb1H#P6yEo0c;Ym>SwVM9P^Xs4iFl z`2!2Ay!oEkJJw6HlubAN@v8;eEd-DpGvB;9*|*ASFG@{|ynCP0U={1_3Ed@@Nx%?1 z>1rsgBO~CCx{TA_%iU|N^BDc~$+Q?dRJ?!jk_{M$AMIZPYe3juT|C!NzO$}y-D7@X z?Gy^@UAi-EWI`2j=szcSbG(+r>Bs@$D8T(IEnUov(|V3Qh29`4b&hQ2vRl4`A7pzEw648>qZO7NHD<5E# zi62ocJblGHxe}CdgoMGR#7o5AjpI7#T;p~n!-&SR}CG0V_P3+Ra z8mtc?hvws%Z}#dhi?rY2LO1_4k@YVL&h#+uCA~eu$Iee))U9CT3G|8uL9hqKWyY80 zweN>%*W9!5QH$tCU}`+M>>9&7Z*h{O@*1{mqJQwtfo z=EM2fUp?d$DT#;PiKc|VyFo&{{4ZD>jv955+H-Mlq7yNsI#AS@Di}Dir6k-TCBY+j z?&xF;o0#6I9l@MTvc~yGZmGDL6lA-~ABztdG4zI%y3Io(65Ojn*?8pxJ*)nrDKxoc-{I1Wi;6kuN%);h+z$rG2tM7aoj+YQJRdzj!z_ z?x3`g^jDu*8N{i@cd?2tWqO+Ba>}F^y_xl!nd<`&F+|XrMUQAQ!+MSh{&qASM@(Vjdv4dNLpxyl$Xv zz9a!d>tkuNGlZbUI7|s&fBJn9bQKKmr+|NR!H!>i8eY_78OYrj|A`GdfrcydW|@V1 zqEP|N^OV6Ce`ENy?JIx615Zi5gr{pBVx|TzzTdrIUK{LzS0c6e3Y&Q&qf>aaQ%00Z ze$JB?j4jU1TFJVH1T}?goC{9SVQa$pK<9h0o-d3En0VTv__9mWlxjRGQfFhkP;lM2;TWOpaniknF}X*^<<8GBzH} z8Fg|wX7=mJdCa&psHOP{9&Oj|gH7j|hL3|5TmCM;aAN!m#m>JD3f}?)@OJ-Z7I=+Y zEJQ=>rz=IC{ccTZ*VyW6?gMOiJtpA%I;uDj2am`r#6oaTX@g}zm+T}wjDuOB8>SyD zk;Jm{%O{XWb}H^u=j4=z++(mxFd@#Ah~(jiTWV7u4h*CE+QRM2aDKiI79~Y;#RW2< zh}Wr7F*n9+YH1l8a)Bzk8+m&HEKhFg7Q-w3Hxw*J-l7EceLJ1QUg{4l;8Y(8yXi>2 zXelx&ti~Cpy=-5vwUEMoEs9&`e!#rY)BoD@=-$zu=HIN6{p{8c#ku)BOc5`cps}^q zJRw`vlxLi7FJV?7dH?On))SK)bqN))ZI_nVRFd-42?uIA1LxfH=PryumQ!mL&Mq)l3Sq%F`sEtTD77PiD07wYK)fjo-4KB#F!0 zG~JkE_fln`QU={>?$c0$Us0(iVeyKk2n0A$aq`+&<_$bPt zTT8OF-$mtLO?!ojxv*924UHx`Xs z*&B5%0yj|iWK%nSbGrTY(1Ed$1<2ryJr(4g_@HmUGn1YymkBq3584!=Mqb9vCfq3h zdd)SeE%WY0i@^eln{>I>@+19Zcw%w_JdP z+DkQmRq$%%Jy*P13MsqJGMoi`cE9MqJS}U;pje)Qpab0_DZGL7ZUtz+Zt6P`Sj2 zS3bgK(&j6|D?>s&3SO_1!z{_Yerispl5Nv;5;}IXu2-}OR5$k;nH|?Z$F+TR!aQY* zm-n3Y`IW-DT(>M_Yf1L6T;Qc7ev(o~#4Abc*m6AkV@-_~`Uv;PQvLlRVIArkD4k7@=APwR9CLx9S_~NmKZqOGx@6oR903(vZXHN( z?bmWY-!^e@N^rMhV8ZnZr2N6a_v?m^(O_(e3iTV?Jrb0Ysp9-+I4<^+1x-WiGmf3@ zZ8)p#002c2`C(48;H4R00Xi7h)D>sCCXj5*fr5h|3W0#)k}9a82v7NY#5b8DL*4t9 zLJubk^E|NaZp@TtPUk5gZ6eE_9edr3_-YPk9QxbO>VHl{dR_c#!f zselOtQt$?YxMQ(dL*DE$C0AXZDtRP>5|w=@2c^}dv-^g^OAeJ)gcl>Y_J8a?2-TVB zqjO8|@R*yLqTleWb$s5X|HC}2Bj{!vH2w;27jyGyVOUpg0%76x1n>fJVykIl_z<>J zjqd!_6$9t_j0;(L#s*mJ2%WD-ruVh(x>e~#xqNID z4?ICdvhhk3pFbS@IycFZ0;AMf1{S99d=3|GD(;hj7S4yFr?N49X$jQp*-|b|bJmb^ z(I4X3jZSOKUTd#rT|=Iq;3`*wxp)?0p3(X7M-l-WRo}lgv^1FCVEIi(ALIc3MsXf+ z<(BKc+m6gA+Y)&s$hRbU8p|jNMX}<{H;mhAMcXdmRp7$(98G;TYpO4)(Hum#<<(Qw zGZ#}`RmEYUAK7y95T$qHV)(I>U##nCn>ByN4wGf4W}wV=7kUv$eApcUTX-B2mbzW+ z%oI`Gi-$UJU$2#_yl-3oiZ7-Z>>uyJq?{zW?8&lQFDt*PEk5i7mqd1NUDyU+yAwq1 z0EG)hq_BEqb4Er+a30=x>8+Ljw4K=~Uu5NA@>~jQ=0AKXvCtk5XmKXUs&Bz5yoBz_ zn2!m2^T$wv*}(gjpe2?VE=K3{Z-*G4SfbA}`b6-jm`rq^*vM}Yr#i8^@=|7oB+_}7~K730CgmT9#1V*X7ovn5PFA?J}lN3$s*<@3; zVk7Tff9RzJ*3N%*z?`R389yP7o1i^U&~EwA{BBJ03l@{7EETdX zD(+fszYpF%_21xCF=A`nv78uc!KJLnBdQ3S(erg8^qqlKZj}V0 zkQkZqCXlIga_NE>>K#Nm3-J^!{Ers&Vnsgokn=6Vih8y?9jgLQ)w8N(5K2PXeq7PQ zwD@T$xKi=K+jsr93H9K%)bI5MDV4_Sc4=Jl{8GBAEqwZktx9(3aSPR{H`FYDfCdwn z!ZMphw?3*SjD9ofJ48UX`>shAOi<|Y!n$&JLVEt|0oQQQE7xUp5dwW7eUjeXRBO3& z#yKtRgFZy2qq!lq(=8-R?Siw)Irri?`sQZXK{I6(iXZHnuHT;1KPM-lWkrJZ(tbLWe!K25AVpNx7eGEnOVibw+C=u<-m4_}PtlV3(q*P+qW z^|_*Ftto%QqkM>eGttTPvP|*TH3=DXGrn)tq=GZpE>f-A?Z0@K5d|2LJTrdxLYx_W z-MH{0PSemIeM@kY!v(C|%0~uwW2%*ZtuRiFITw0aSI62Qy?vuD-}t)p*d17QLr~_a zj?+u^ExYF>LF4Y{#ifla@bZ{ADHq%Q)Y@%?@qK~k?#A~>(2@BT-xwypd!gKK?nHW+ znyt0o1l-=rXAhjB|K#J7$?unz=#V2*<`OztlNOv(WoIhZBVHTfHEDDt4K@hHmjyo^FJ<`U8D&z!a56D|J zUW%m=^jfW=(N_z_NDK*qgrX<7Jp!-RXoD~Ryc%d_yt2=UB{5CrmJ^Cob; zLMPHI{)!;CL_lWr zCno%t9HDF;_rKe4W%F#v|2DRN-UU)L)ql511;g+EyX`?RT;Lz?_V>GBeeAgLe-Akx zpS=Vq0sLR{T_#tU1_eQiyBYuN`TX@!VGFNj`%e`9pSi`$lG_sf?R5TOKO_h|{Qh4P z31^Ybqxp9mgKXaa^Bj#VgzVqX0sA4E|866dg~a^34LCzG@b5N&fu#Rp3^~9+=6}5M z-*W?dV#i5T0~<=2e=5>{HwI=?C~T(S#s{wbFO`9n16bU*|HA<};ADp&uow9EJLDgA zb7UrOZ;oy+)W1aB0J|GxThI;=i`5MZdgZSnRL&igCt(uBa_0IvC zSPEp7$Ue}6aWFg=?QU^(*XQIF8t9z$u;}lBfdYX|%P3%m|6H^Eg`NB7690}Y#NvO1 z4GRZwT|gNA?`;y2q?1L{^wp{{PZa|u*j9Gig(0~f8eB}Kr%V^7_P-OMw z)hU2XR~58>nXUb!lGAc(LN_sMC&{;S zRO~gjbCNz9it=B|K{{`UVS)xrGyEKO?dA}ORsW2}wD`23+wlMZn|wvSUe$av5pX3b z{AA~nHDKQ3Gzj7>a0fFeZ};ja^h#C#R-EWyYV)wJLtyj*S;p#^M$D zk>aAgjYF=63cd!2kZl-!wNKczx$D-(U}Z#SKtE&3ZdNRiWsyAd3Hmf(t?&C~sMU`F zlUtd5XY`K1F@4p#*s$>k;`rK!@%YUu+HNy7ds-$JA$l$$aeDegSE5EOY}{gobY|*P z$=uQT=>*Yr^Wdt@^r(;Q@svSLz_!9W49WPwJjtLpq?kwv-dYqoexPv}xBea2UMWq~ zVt_e85f3d<0@dXD%hzv}S=e)=MnRkINals_hV(~({Oxm|KPK0!Q;zH|Yc75-m zt7uWS-*UTc@W87~sD$VaPji8TncPcN`{{w4Ev_e7F7yTuQwNW28W@V;2F~nd=%d}Q z&83tX@Tg{gp6JVHZf5@Z%X|XnMeR}DQvwizUuU8_M7GfSjkAH1hd&{8 z&l+eVHMXj^MD9AjKi?ZvmN=)ILErPRD1pXEUZrsOW!OsklqB&R4xm)~!$4s{S(8p_9S!U3-W1h`qwX}fYh`{DdnHOB2 zHMS+y~FA|EK#vI(JjIHxYfC3&~dvDHna9=0p6G%mYe9I`~BSKWj%C6^q1_+8*Pv6 zJe>s+qe}u`w9I5p#&x?pBg`An&@zj~$r=5PMy1w-%)gLmwh!8Nohw&K8fwH9QIDJ!|cq{uVF&B0ep2 zKfXPt5RB^hjco5r3E?JEMxop4Fp3VRpP--eM=cILb#YPqK@_H8&QeRI@D9Kffg6WjqAi-&AR<&g9u4=zOWt>9ofgncDQ?3%P{~q43e|nS?U%2 zeDAs;pI&DIQDzj1$Z}wb%3nCo6czVUVNy?|FBFqeG!*rlr}CA%4&~e_KF+c(UARwM zQy361*ya>P)ZT9)O%Mdu&I351^`PytA(-P65$6Zf9)Ge8jsz`eUAc~M8GBHTz8p$7 zQEA1T+Oyz+wQ|IYR<-~Nn^|XkMt)A+kD-S{K;w5+A8&>)ok44ysJI_qngE4Kz=dYc zJlX8hWC{4bX->2~;-V$ybB6RdLbT@MrOLv+E}46>dEtLRdJduaQlTxu78`-x(hd|d z+js5L7N>1PZAXf|d8oQSDJwO`J+=!sKD>)1Zz{4^&tYm6unPW$f^JqqL*@@n39prc zM>ixmpV0B?uZu_LM6a*kb=u^7aPjJ{Rr{OfJ`Z{xTBzcq(W8I z`#IX_heyk{Z9&6+y69z^XvLm_c;vOV!gB_*kh_L}#j?4GX#JR7wA_^+WKr z()VYmXS{OZ)2JsgT-%-$EEZKwGgFDHrD-mP3gJ^(oyss~EQV=ob{tsLa6zznHKJe_TR&i%Hb(UL{I$UE_k^y~t*PgTV!`1Yu zP5r!c&UI=cmz-lER&HO2_%Y)KRsQ7+4MhI9)$ER*-=up$sHpG)LUg6RC}q=}zD!q0 z>aJ|wcOc^aVEEM+%J{3Rrii28Cmp}ee|0Quq#G~Vip(n12#)CYmZ>3!%O)Ar>(}Xt z=ijIu?C-Z}A>xvnGttp!Z?C&Vf=POQ-~Dy|hMJhy`(;85J-6l9#Fj|lv7zM5gy9LQ zd()gJtR2tIL@RWdBM2z5UwJKW>pDFQ%G0`56Y-~qsA0lGzPIKw;XJh;Qi*$8UbNWW z{HeL=QxR80wT0BMuI>OwNSFRKlhC+_#l{oFqoFQBF&`>_Jkurr;%WhLb==dhU?nc{ zUAN-OmnI`V>xCvKISvz_ELS|&Ni&uL(a}q!S=_7s96GhkmH1`~AW1t`ES{_c7HF8W z97}`YqEF*sf4}id8?w2wBN3yoRZndPIKD(KObkep)SJM_d9(nvo5yV&o|4!+w{WQD zRi#gZPJp-cyM8YBbsveSfC?ws?U(iEJx0ZO#0c!hZVgmwALF?vyg^nD^i-zcMf;?& zSm9Y&LOW!8w%ob+zeYWfyn2gfaDP@nO-$NcI6INB@IIt|f+fqUf8g>BmUwA3|3FVN zb4Jsi-H-CqZ22Y99zp%PXhD5*xxVbIC?L7<{eZ}d?#5_gDPfb^3DKrpBA9D0t9mS% z=sHbqX55{7^qtz#R+C1f@UTrx&ca<=pUtX;&s4Sf@^&(;>Z78!oUdzSZ>`X3jbpqI z=r&SnBTf5YeNAJ*p)ybp&5@y3(%V%rU;L6<4h`S=HD8lXPYs-D)a-CH$W9~VR1CdVx$4J6I|2?8)5<9=_R`gOc8_x->c z@g<|p=n}-(x&v!g`zx>a@>y6y>KycRzD3MnlYVw-BENw%Q_c}1c+26M)is0d#YqxW zIghv8$S3QZnYM*nJYV3bw6x=G3+BXh0sZ*xh0;Pmk_Qt7O)@FsoBNn!`pZV&y#xLF zT0x_|de*`!|HF*aB<^WZ-?fJNk?m3Wee(|zS}h}51FQz|Rq=@3t9~ORAT!yhH;nlz zb@|%ngHdP2qhWt7Cwz7*Ak!XHK{?FIqIN&}llYbCCEO8{pl|N~t}1`yvBZZ3zs!`( zaY>*5RfF;M;jl7S8maU|Tt%q_uT<-Ts51F4m5Y-UsJIT!WD6PN49IOx)L`?PpKDK& z{>tu&-RA__fqH9QWjC+Ev*3i%%jl;+Lyj3MkbTrMNYG_pWMrA|fRBDP4^5VMIetn` zGD4>-UM8j@p;Kb16lplpmbk2FLd4T7@P4OVKYS$)tjz^PzxfNMZI!mw=vm3pm8k-W zgUWu(YN>(Gor^PT2UZ4isA|RO^HPo&_MK2NH#wnIj3@7~EPApmCj1r0S&A}(N|@^& zaC`fWkI?d6lD(RUXwW{{_)T}Q7hKF>l_hcJza*4U+Y`?*#IN#p9{uB~bi`5ys&>cS zu-1v!Z`%(ubgUnJ_$j7Sf|>U?+Ihm!=}(-p0?wf1^$~>pMycqtVu7ZOO?|jCv37V)Z1@|DiI3Ep_38z5 zzq~iXD_@i*d)#{P-G(KqZlU|2b%XHq<;T#=pYijKQY}_lD)AECRZc2QHuq_?PBkxgy#Kb`CYPh} zSKkk8JOtIdtx5sVcnxdx=K^&aKdBPNdOV&NZ^F*%Jl=ZTZ0y#48=0wKJhv%3ICoSUF! zn);|E^Zn8ms5dO>Ug%u!UpQXDSK(!7DOJQzji4Ch$C$G^g7rsf!(UB$zS8!7iQ{X% z?Rs$Trto|yRa^yxEsLy)5I5b;wfCm|7EEWEfmepL`IMFg9UT&i?E8L%l#@ui%Rxo9 za+KYtVyMZTY4|e3bBnDRCONZQXbW4Jd}D}|r2fv14NM<6(C~V;;;7PGIB##o`FYQy z{OTdM1EFq4MXBz&)hSiGNR6K=m|(g+i}d}mP7?b)fu^%jC3X`Tv~v5gxYQ{lQKizM z28XdF4d+}59lEX`_2~SnXThGNJJ)$6cN1nSiDBEIiob&Kh|BRL8xlk5P2X@usTf8`qepH9B~9||sfdn`}# z@KEVVvWyUkh-4Xztw=FiWFHi=HTD_%Adir&SremXkZjqrlPnQ4c4ja#G{(LR!;Imb z-tXu8>-)od{($p2=X2lZbKmE>uj>MlFKX5`4lNCa;d(g=KAK#6BBaI{t-H?xg#W~_}|FOUrw$@wUT|T;#&_7Q#e6*Hf zL1x0>xC6hDxBqZ`+qA08p+ii@O2m}hv>65cVM+fAnzAmk7i=h{bcSyPo;r#oA#;TCD4hasPlVH z>P*R{R8C!=Jq(KzZb)q)D)ml9XN>O~vv&w<3@uEIhURtO*j{yCT1YR8&cy%j zTJ2yYPEew~epH-w*u7GmX(ZtC3C>sw<%&E$hLMGaP$db!#d=^Yh@=O~l1wA$8 zuhEcWu?bWPyRFqUq)#G2W1#mV=!5`#i5G?XG ztC8V5Ti_VmvoqU`JjNDUH8XKifTI*+w^nt!j6<|R2|ow1kc8HLmlpaGZbjBB zCAwDo0DBX#IYDAANwvhdJwlTH?yvmVhIDlNbK!JgEn{5@5On6j;fv7pJb9J|c&R)S zKAaDBFy4rV5SrXC`Do-%E?HfOs^e}GvkB{^Ps@NBmYph~7Z?!Kbj*~{%ez4rSOTF4 zSEc#&4sb10``?hm{Q9-X+_J0VktT%rH`r)l4KJte?{2>+sX_&11#)cs=M+74iF=D> z3bx*>Ct;f<#A^u>hHMc_smUsmWKK`4K`znAL1X$yc{U?)>g#&S@g{$Mf4PXM%EBj{ z{ZE_y;#N~|=sS}(yG(CqS4`}W{g+BM0Zu&zW=m33zZq!tGf)V|F){IcTS7A z#ulpM`L;mW%~!ZB{|@gszx!WKG9;qr@AXE=O53i#&>DOp$^s}Ylzyuq5I!p@2d~s> zoqgy`lZ4q>zIDRADo((Y<7uAL@hq*%S?2KVoOfL2-~_Rr5Ew&>BgyVfQu1FoCC*g* zMH}s}Vz)H*4>GgDMKxK7x!j*`9;NJ+mJqJV&hU&@970)lbfOnSbT%eCFC3M9lr53A z$h_&$*(6)StySuS+%&rM7SmDlN{p`hfmS+Qp2e;4uJ15cPUC4c80FhoOzNnd{KOwV zvw6Sm=Y2k&g4j%8g}=(CR%_l`-)DM|7b_ZPS+KaGW8LBa-y5BFsySCOiWfN*Gludf z%UG$&$VRzx`3DYde(vZWP2wRMj$H=KXVi+)^5<4(Mjx7=ZWoo)O5~rQ5Y4aakmJIP zg}6UI6pwO#FX!K1Syvf8K!-gIa`3!jw-7X(BGeAscAFb<1n7 z38yW*IWpmeGrrqJ$Jpe2dRaAHt!t16pQBKvW74=RVhe#=ncgra( z0p=v)8_gow+%ERb6^OQ$cPG|Rn7y(G->|P#ykoy<^bWE2g){YwDhsSUb4y68_8*CG zut4)hwmCf_ODsPDdiVbFZFkBMG!1F|nZ4AQS>%E>n%~!b*%2~x_9&G|F6(Ybfe_|w zTLi@2d7}*@(B2keaQL=J!aFZuyU)5z;=n&U#hjp}jb73PluYk+$Z0RbDB{)pdJ-hL z<9N}tMN#H*z!QkZ5TEcbH%&m!>$ZyF3=i;-nu6dd9S(=h*j^Hw%T5zAqx$t-&9_Ek zIv*u6qUsJ>NDJwVRKSb4m^9!0y2ACi6*r0O{hRm{l7Jdi1R>Vpj|TduiGQwlS~+4( zh{+&3^?PTyg;^yf64Kw}#U7kA(iO^k0nt~Rv7#WQfkifT-nU?pgibcF8%jP>a%R$(a zV70~b{OQHco6_UJaYkwdD}iR7S|GOHUk18b{$G@onzNwR&g5tOVevLAqOHN1pB<7xW|56=aaCW{RX`|Aj)}Q zQc`pa_at0n^vQf1tKQd^*Ld-(FK|xSD7xX$How^-jHHiuVVX_q@8TG#BiB%@hGYt1 z`Ea`0VVCOWk8w}w4CM9ob@_l@l4N3?t3GdP)U#+KGO~;Pv$LYHUh8WcM?H0#f}&PN zgs7EBDLZ$aE%JSL<%0Ejy@S)@zJiY;yoA=+a(BaZ(n8-;WhKlqFKcjI9~g%cx{coP zlex15*iZSAeWzU%j06s|(J4w8`MFD})!WIMR{$Fy%zVcs;*cfbsj5yIl-?T^rwMtn zEg=^VWG_grs;qp9kV-g%+@WR;N^p8JuO!uQMDEpA1i>Y)J%J^A@@T{GV4_OFP<#O0 zn|7#|Urj);t;`)&5}% zprFC;{3{C7EHJhqhb`|04za_`$2sSx;C{Z**3h$|Oh)iYG8 z^Witq2wLLA10A|6>wL9b^A z%exLr{AZD1_{XdU%Q1Ie5i`;0Nrhku6CpEdZq(p%(?w5u)t;Qo1wCY96@hs9G z;0yAv4bnlRcGkvcQ6S~@0^Qm}KXXk;~ zMxUXTB|Gb} zcK8y0Q@?4?N6Lzq<1_pVPYF7p+@TUqdngzTo7*7@Y8Q4*8GzV5hnv=*-?2J0m5b$l z|J)eTsTP(^H~#5QLOKz^y7KFLre#8NyUe>&K0jCSz*~*5LlX_0U&nU6-ma34zX)p* z;WW2$tv)82-ZElHwAJDHlQ`{{kF|X2!4nW2hc?zIj#$pMgD=@v`f`)MnsV)jyhS7R zt8fX1zGaB45k8dbjJNMnvV?Dx7cd zv@Ns8-sJa&SMCN^9p~??0p(Fq;w&R5-k@AQ%gw}W#7+@5pvYDynJi8i6NkNH6?qUt zuiz?kPKT#o z9D2Oxr>}jIH{lcs3K>wY4x1g{o$F~?a3w^gi`{G(EFH7F(%itVQ8R7S+gcg|*|8w} zXwJQ;NHM$-t>LcrtQGjfvXw=uCS;;ClbJnEXe7yAcS&h)pRSs*4`O{49{pB|tbKAg zMjGbIkqUeoJ|mPlaqE#Q9i+dDAtUy2PMV>c=T1w=*1Y|5%E*vtGdxD^=ZR~di&+_?&=jF_V;9|sg4Q-Xnj~L(#$$of#w~ z2GU>r2AJ0l7^ydMTskk64(`aF5tK)fw(Z%C^EvLK7?+~thp6Kbit^yxKQZSI%Hz{7 z2KDXC0t7)g?b&%$-by>6=wb8jjC*En4*Xx|(I?LyCkwFA6uxyBb9FvUB`IJQ$J#$s z0?-Xl7WNn>s%4}0pRrN(n8B9Bt;YMwOd+A=h?S3uyWdmRGR=ia&BUNJklp(_oHwZM2b`*zOJ`6m3(4+>QtLW*1cjQi&7T;8ND0&%Ux*up>SI?npb+{Va$zXToY>w z*jh|({C!n3Xie~qWY|XIF7Ph1P>~e;=mTZ)eF`Z}PA7wmB7{y4%XAK$*dX9kK2O}9U!S74zr!IXF);REO!*)Xk^@;K1YOOu>AyFl(a!13=SS&lxP54Ym&Sx~ zM-@1B@`onUCaBE70S3tidx8ztAkg^#^jH)HRGf9}}`be{%>Dlkr)O)`7R zld6YBP2a}R6Ek+zQs;_V74nD-$F%jw9)!z>CtRPS>iRLYJO(hJVFe*H_VxArN?8ur z%-7@OE&?ruYbmFAam2CrFb$;>9A@iYN%Ryi8Ec!H&2(v6{*=copk)=^8}XX61m>{P zulDA~*AehUmP&;YSDwO>W_FH)aa zs}B;J@7=dJ7nae)Ha=G~^ zy4>1qcpskJzvz`?^c)(k&g!QQD>f;D#Yc`&l|7>HtFq5z4{wRyAuy$(42JXcI| zxGQqG?>gtO3QjtDCuj9UWX1Py(dTB(sZ%lOMe(c8)pQ>xVMC6=S9D}SkK8m>;+CS| zSHc7Z4$K%gOm%+0dGXS9=V_tdR7H|}Sd;odHBo(KD{XV+FsF~NuvJ0%$BDq;i3TUm z;3P>c#C)utxum-BPwzu=1ydqBel1TtB2dq9U-A#^+fEJfc_ z2+$=W^yj6Asli$J3gNu4DFmQP0aLr$vD&d>ifW z=eG4|L#>U1MqyCC8M?vO{rV3=KI`fI>-dgrcpZ|pHN0UTe)11TDX~QE&>hi?gxG+4;kr?eflJ9~G>KAtPx!1qu8Be(_WJ6OgxYlerTV9t zD_Y1rwFduBG$MG;yV)yJkR4W4h=lDD~ zA5Jd6OuV>xP=unje1rQO9m$RS3jle(DaQMz`Nt$n1UXxmKcK?-YIx7AQghs64bDd zra;TCV*42m<*lt2m@N0+z_wMoS6L)Y?d$_t!_kOyMyJIsRVNh0nbbJwPjDIlQ8l9{02wI2^)Q{5AZ(-atbM`_I6~{Nb5ZVtcVcE5e7fu?lNW z&J=Pv(RHUO;ZG+)eH?}IbP~ZAn1Z;v07=s+ox^HTa0{ug`w*_Wti@-JE<$aiNk^WO zofC)G`!{U4=R?)=Ik&E_XewO5ua*LUl{q5L${^;x^!KofrtPWwAbdS3(|HP?$hZ}> z7&>Dc6vT2t87*J;U)MlLbmNCE;35B=?`SJVHEerR_Wlqr061?aE#LN2_vK|$7kAsa z-7_$}Vs$moL`^)T*T!9I+Rgh1ZvQ(Kb9B^ zF&Hg_MdZ&)_$IF!4uP`+N}cZ0g9)j=v04Aq3=S4pUfcPg`YK!$=3g2;BORo|uNB@l zOkVeN3@ztye`%!4@C&nV->)-)Lwj$*3Eo#8m`&f|Trxn&hTWYHHG!Wy5oUtJA-4xG znI`(}(m^ai?K_)&;llESM&eZ$*UQ;smZ413xL)R+E!$w7cUP5YHVRjg!%JaZw@1t6 z!0b{VxE>L}MBUBjdNb>5eFg0@JQ;1H)nSm_s=ZAaiiJ8qkCsE~dw`=&&i&#wJH@7q zq4B#8Z3@cir;c}*;;LYW}>pS^HrkKMD0LfzQX}hl9|Vck|mqX zx>*O>%x$Vvnn0z?2pzoiM6=bzEPCQ-Hp9GjvQ`vYD=J3sAD;9SL&m!Gc)|wWB>M^M z9>~WcpzWls90bCbuQaFTwO?4)Hxa#omb+(4SX@-P-kFk6R+adlC9XIV|GzA3!2g$f degBDoBS6n3E5^!m0RCrF<2#Vs75a`Z{}27x{nP*e literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/favicon.png b/docs/.vuepress/public/favicon.png index f9678eb279839d10271ca9e95ff6dda3f32735f8..7e7c6c882e45971b259a33d841c965830b2fb3fa 100644 GIT binary patch literal 7639 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 diff --git a/docs/.vuepress/public/flagger-gitops.png b/docs/.vuepress/public/flagger-gitops.png index 80d0f84012310975e02844c0fd63857f16c65dbf..452d85f8101f167d4a8fe6230c2c98e966b5fe04 100644 GIT binary patch literal 192683 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 z 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 literal 33168 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 diff --git a/docs/.vuepress/public/flagger-overview.png b/docs/.vuepress/public/flagger-overview.png index 3cfc7ab89c9e80d610aeb7ce0ab8201b2a648cd9..cb3b52b4e7e06b9b4a06cdef6c6e5b8e6f7185cc 100644 GIT binary patch literal 250770 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%0A7BRE|gCl4kR66oWs_Gy;# zIGt7XXfvYu?Q|&KoAFtBlH;exd+NNlyvG2LXP^LU`0ZKvQ@7@kr}aLuR8jUJh{R^b zPnN2s%0P{i?rJK#zT(%{HkN+&%sWhTE$7)}FoRl;x@R6U_rVV$)QYO14A0MkLn$@P zGQTZsJOUDRH7(M0Pv_5AnCJ)Rwt|A;#f*6c69tr8>3iAEL+Q`&_kbazdkg+qg8!jo z+<@3|c|fc7{aaVm!Gb`9IQZ#}^q+4FL$OcR2Jg z!D}dyJ>_T0f2xKLgvCK1uAX>GalCBB0XD7!^WN2X6_=Kopj%^f#UvUnk4QAVp8*JQ12JzdWf7hzee~k^FR9u+!gI{pO#IfE5@ULeGj`Y=< z&Qw^F6uLzR_`d+b@aM-16Z3SxB_z=p-WlQ!kb7Fri;hVwdLo$zW7CB}nxA5lsFCBp z&RaET+|+rDYvh^y#G%LJUXTN_1;BSl1EA^hyG9lX8UUI^(iN&DIM4(XGbr+r>E8RG z=S0}QekES%?UqUZQ>K?Gvt`gof|h{dUb<54?9UhYB6Yn^#$oluG|%P`g!UGBnJ?*h zf1q%g9{whY9R@rOZ`Z#A&lNZA%4$H++B{SIf@VU&_ovYEJ*+pg)^Z_jZbKLF92eX! zJP0}TbZP4{jJEIZ6Q>0usWnUOK8WToc=z9^)?3(k4}Hbi!T;X-y9c=e=zSvxKq;v2 zuo@EfD!OPVY;mQRnS(`;mq|n~|A+JN2m_82K~618hQF8x`7h={x@$J&#gOg}-R{a- z>MYMemfZzsN8*rpSamxxABa~6P}r%3VMs=ptx+6*c~6HjXuH5!!L@tv)jx;V01t{K zS|sBwHTBgmUr2lLN5Y~NV6GXj-jV-Wc8tV1-+xTRu5b3&_0R-f_loFz8PYP{*mi$% zr?w;9Cmt#)s>Zv+mU5=yOrSYqGF*QNS91d3YhiEjA$>8P-a?}t6sBpDQ^^}(gPyMY zz<|~J;QpO}(9``Hzj)B3Z`m_TMUWY{ zY`pIXmORd6Yor!jx6-BL9vZpDe7gZt+Q~-}%qF+%wy(E;{yl>g4DLgsw@f6m`=G zpQQk&1T;|So~zy7a#;jYsN+HKMD10!s{(Z!k6kvj)%E!4~ds4>HN9KcOkNkt{x2A5vAtvX(uc(nBbsMaz4f6M*cx z4f(uZQIo6E72BAi&tVu6Af)lt8WCC;n61$jhZSG1Kgi8xNE57QX-*5J3?!!}$J6`H zlt(76?4nou;c>e;hzTWm6{XF~xtu89eZJb$hM*v%yEld$HZ=4tG_u5r!Ob-ay(_=E z_o6=dW7Ul^LeuG99EO6e2jOb2NJKO}-I#)Jkl=RS$}YX(@&)jxaWloD>=jL>2OEGR zOb$>T)&QryzT7CmImSC+3n64@ywG5Ordmoy28$cFZ%>C^`|B?%RULUm&WXjfgNEh$ z-A{T!h>8Vr>E`#FSeTdw>3jGkJwzgqbUtVOlhs~TB9jbPYG8QUAMlVQ@&+i3@--j< z;VS>^T6YCle?@imkc9;;L{9#w`9gEr&nsxAGRdA7@O7Gk6e?xtF-)jUcY?Iab7b%N z!D=%${Lh(&Fi#1qn2~(Mba4aCa^IN>^=-Vcb{o(Qc*=9UxiTgReWpt-yt4>0apM29 z3*F~xUTR2gkUkapv+7y$#$xEVG<9I#-=fo3(gcErnRFrCOS4}l^SdIByzb!FW$}Zn zHHt$Zs)YoSyZ^eDQ*D*T!^o{cI@_Tula&aiD5%im8LN()BgFAOd!AYN!>6*pkp;+Z zevgrh70MMTbhC$)e*!!M0CoeA+>z;>4Tj5f2D+LAG|sDX&Sdr|I$U0pU{drP{y z-gu?At)BLm8EguT^#6AL(i;{(Ww!-s44LT@FOPo@4EBy5!`s0Ee;=^+V4&<9;$26{4#IId8|2Q-5y3&Bf)ERUK34<@&sG}*+sW7{e?<{8AY3Pj z!WbFW^JIzfVfTgpCeO;oW0jsA3J&(>Q`bpFH}J7Vx7<$rs?yG4b∋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ȂNQ7_5AAwrK95#p6Z&zZ*zFw7-zwXT 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

y{qkxbms+aCo5 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�$pmnWZi6Ok>&VjGrY$L+|u!V5(<= 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

JkM=$w;aF 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⩔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 1.13 -* git >= 2.20 -* bash >= 5.0 -* make >= 3.81 -* kubectl >= 1.16 -* kustomize >= 3.5 -* helm >= 3.0 -* docker >= 19.03 - -You'll also need a Kubernetes cluster for testing Flagger. -You can use Minikube, Kind, Docker desktop or any remote cluster -(AKS/EKS/GKE/etc) Kubernetes version 1.14 or newer. - -To start contributing to Flagger, fork the [repository](https://github.com/weaveworks/flagger) on GitHub. - -Create a dir inside your `GOPATH`: - -```bash -mkdir -p $GOPATH/src/github.com/weaveworks -``` - -Clone your fork: - -```bash -cd $GOPATH/src/github.com/weaveworks -git clone https://github.com/YOUR_USERNAME/flagger -cd flagger -``` - -Set Flagger repository as upstream: - -```bash -git remote add upstream https://github.com/weaveworks/flagger.git -``` - -Sync your fork regularly to keep it up-to-date with upstream: - -```bash -git fetch upstream -git checkout master -git merge upstream/master -``` - -## Build - -Download Go modules: - -```bash -go mod download -``` - -Build Flagger binary and container image: - -```bash -make build -``` - -Build load tester binary and container image: - -```bash -make loadtester-build -``` - -## Code changes - -Before submitting a PR, make sure your changes are covered by unit tests. - -If you made changes to `go.mod` run: - -```bash -go mod tidy -``` - -If you made changes to `pkg/apis` regenerate Kubernetes client sets with: - -```bash -make codegen -``` - -Run code formatters: - -```bash -make fmt -``` - -Run unit tests: - -```bash -make test -``` - -## API changes - -If you made changes to `pkg/apis` regenerate the Kubernetes client sets with: - -```bash -make codegen -``` - -Update the validation spec in `artifacts/flagger/crd.yaml` and run: - -```bash -make crd -``` - -Note that any change to the CRDs must be accompanied by an update to the Open API schema. - -## Manual testing - -Install a service mesh and/or an ingress controller on your cluster and deploy Flagger -using one of the install options [listed here](../install/flagger-install-on-kubernetes). - -If you made changes to the CRDs, apply your local copy with: - -```bash -kubectl apply -f artifacts/flagger/crd.yaml -``` - -Shutdown the Flagger instance installed on your cluster (replace the namespace with your mesh/ingress one): - -```bash -kubectl -n istio-system scale deployment/flagger --replicas=0 -``` - -Port forward to your Prometheus instance: - -```bash -kubectl -n istio-system port-forward svc/prometheus 9090:9090 -``` - -Run Flagger locally against your remote cluster by specifying a kubeconfig path: - -```bash -go run cmd/flagger/ -kubeconfig=$HOME/.kube/config \ --log-level=info \ --mesh-provider=istio \ --metrics-server=http://localhost:9090 -``` - -Another option to manually test your changes is to build and push the image to your container registry: - -```bash -make build -docker tag weaveworks/flagger:latest /flagger: -docker push /flagger: -``` - -Deploy your image on the cluster and scale up Flagger: - -```bash -kubectl -n istio-system set image deployment/flagger flagger=/flagger: -kubectl -n istio-system scale deployment/flagger --replicas=1 -``` - -Now you can use one of the [tutorials](../intro/) to manually test your changes. - -## Integration testing - -Flagger end-to-end tests can be run locally with [Kubernetes Kind](https://github.com/kubernetes-sigs/kind). - -Create a Kind cluster: - -```bash -kind create cluster -``` - -Install a service mesh and/or an ingress controller in Kind. - -Linkerd example: - -```bash -linkerd install | kubectl apply -f - -linkerd check -``` - -Build Flagger container image and load it on the cluster: - -```bash -make build -docker tag weaveworks/flagger:latest test/flagger:latest -kind load docker-image test/flagger:latest -``` - -Install Flagger on the cluster and set the test image: - -```bash -kubectl apply -k ./kustomize/linkerd -kubectl -n linkerd set image deployment/flagger flagger=test/flagger:latest -kubectl -n linkerd rollout status deployment/flagger -``` - -Run the Linkerd e2e tests: - -```bash -./test/e2e-linkerd-tests.sh -``` - -For each service mesh and ingress controller there is a dedicated e2e test suite, -chose one that matches your changes from this [list](https://github.com/weaveworks/flagger/tree/master/test). - -When you open a pull request on Flagger repo, the unit and integration tests will be run in CI. - diff --git a/docs/dev/release-guide.md b/docs/dev/release-guide.md deleted file mode 100644 index cbac0a2a..00000000 --- a/docs/dev/release-guide.md +++ /dev/null @@ -1,34 +0,0 @@ -# Release Guide - -This document describes how to release Flagger. - -## Release - -To release a new Flagger version (e.g. `2.0.0`) follow these steps: -* create a branch `git checkout -b prep-2.0.0` -* set the version in code and manifests `TAG=2.0.0 make version-set` -* commit changes and merge PR -* checkout master `git checkout master && git pull` -* tag master `make release` - -## CI - -After the tag has been pushed to GitHub, the CI release pipeline does the following: -* creates a GitHub release -* pushes the Flagger binary and change log to GitHub release -* pushes the Flagger container image to Docker Hub -* pushes the Helm chart to github-pages branch -* GitHub pages publishes the new chart version on the Helm repository - -## Docs - -The documentation [website](https://docs.flagger.app) is built from the `docs` branch. - -After a Flagger release, publish the docs with: -* `git checkout master && git pull` -* `git checkout docs` -* `git rebase master` -* `git push origin docs` - - - diff --git a/docs/dev/upgrade-guide.md b/docs/dev/upgrade-guide.md deleted file mode 100644 index 4325ef13..00000000 --- a/docs/dev/upgrade-guide.md +++ /dev/null @@ -1,41 +0,0 @@ -# Upgrade Guide - -This document describes how to upgrade Flagger. - -## Upgrade canaries v1alpha3 to v1beta1 - -Canary CRD changes in `canaries.flagger.app/v1beta1`: -* the `spec.canaryAnalysis` field has been deprecated and replaced with `spec.analysis` -* the `spec.analysis.interval` and `spec.analysis.threshold` fields are required -* the `status.lastAppliedSpec` and `status.lastPromotedSpec` hashing algorithm changed to `hash/fnv` -* the `spec.analysis.alerts` array can reference `alertproviders.flagger.app/v1beta1` resources -* the `spec.analysis.metrics[].templateRef` can reference a `metrictemplate.flagger.app/v1beta1` resource -* the `metric.threshold` field has been deprecated and replaced with `metric.thresholdRange` -* the `spec.targetRef` can reference `DaemonSet` kind - -Upgrade procedure: -* install the `v1beta1` CRDs -* update Flagger deployment -* replace `apiVersion: flagger.app/v1alpha3` with `apiVersion: flagger.app/v1beta1` in all canary manifests -* replace `spec.canaryAnalysis` with `spec.analysis` in all canary manifests -* update canary manifests in cluster - -**Note** that after upgrading Flagger, all canaries will be triggered as the hash value used for tracking changes -is computed differently. You can set `spec.skipAnalysis: true` in all canary manifests before upgrading Flagger, -do the upgrade, wait for Flagger to finish the no-op promotions and finally set `skipAnalysis` to `false`. - -Update builtin metrics: -* replace `threshold` with `thresholdRange.min` for request-success-rate -* replace `threshold` with `thresholdRange.max` for request-duration - -```yaml -metrics: -- name: request-success-rate - thresholdRange: - min: 99 - interval: 1m -- name: request-duration - thresholdRange: - max: 500 - interval: 1m -``` diff --git a/docs/install/README.md b/docs/install/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/install/flagger-install-on-eks-appmesh.md b/docs/install/flagger-install-on-eks-appmesh.md deleted file mode 100644 index e4b652db..00000000 --- a/docs/install/flagger-install-on-eks-appmesh.md +++ /dev/null @@ -1,194 +0,0 @@ -# Flagger Install on EKS App Mesh - -This guide walks you through setting up Flagger and AWS App Mesh on EKS. - -## App Mesh - -The App Mesh integration with EKS is made out of the following components: - -* Kubernetes custom resources - * `mesh.appmesh.k8s.aws` defines a logical boundary for network traffic between the services - * `virtualnode.appmesh.k8s.aws` defines a logical pointer to a Kubernetes workload - * `virtualservice.appmesh.k8s.aws` defines the routing rules for a workload inside the mesh -* CRD controller - keeps the custom resources in sync with the App Mesh control plane -* Admission controller - injects the Envoy sidecar and assigns Kubernetes pods to App Mesh virtual nodes -* Telemetry service - Prometheus instance that collects and stores Envoy's metrics - -## Create a Kubernetes cluster - -In order to create an EKS cluster you can use [eksctl](https://eksctl.io). Eksctl is an open source command-line utility made by Weaveworks in collaboration with Amazon. - -On MacOS you can install eksctl with Homebrew: - -```bash -brew tap weaveworks/tap -brew install weaveworks/tap/eksctl -``` - -Create an EKS cluster: - -```bash -eksctl create cluster --name=appmesh \ ---region=us-west-2 \ ---nodes 3 \ ---node-volume-size=120 \ ---appmesh-access -``` - -The above command will create a two nodes cluster with App Mesh [IAM policy](https://docs.aws.amazon.com/app-mesh/latest/userguide/MESH_IAM_user_policies.html) attached to the EKS node instance role. - -Verify the install with: - -```bash -kubectl get nodes -``` - -## Install Helm - -Install the [Helm](https://docs.helm.sh/using_helm/#installing-helm) command-line tool: - -```text -brew install kubernetes-helm -``` - -Create a service account and a cluster role binding for Tiller: - -```bash -kubectl -n kube-system create sa tiller - -kubectl create clusterrolebinding tiller-cluster-rule \ ---clusterrole=cluster-admin \ ---serviceaccount=kube-system:tiller -``` - -Deploy Tiller in the `kube-system` namespace: - -```bash -helm init --service-account tiller -``` - -You should consider using SSL between Helm and Tiller, for more information on securing your Helm installation see [docs.helm.sh](https://docs.helm.sh/using_helm/#securing-your-helm-installation). - -## Enable horizontal pod auto-scaling - -Install the Horizontal Pod Autoscaler \(HPA\) metrics provider: - -```bash -helm upgrade -i metrics-server stable/metrics-server \ ---namespace kube-system \ ---set args[0]=--kubelet-preferred-address-types=InternalIP -``` - -After a minute, the metrics API should report CPU and memory usage for pods. You can very the metrics API with: - -```bash -kubectl -n kube-system top pods -``` - -## Install the App Mesh components - -Create the `appmesh-system` namespace: - -```bash -kubectl create ns appmesh-system -``` - -Apply the App Mesh CRDs: - -```bash -kubectl apply -k github.com/aws/eks-charts/stable/appmesh-controller//crds -``` - -Add the EKS repository to Helm: - -```bash -helm repo add eks https://aws.github.io/eks-charts -``` - -Install the App Mesh CRD controller: - -```bash -helm upgrade -i appmesh-controller eks/appmesh-controller \ ---wait --namespace appmesh-system -``` - -Install the App Mesh admission controller and create a mesh called `global`: - -```bash -helm upgrade -i appmesh-inject eks/appmesh-inject \ ---wait --namespace appmesh-system \ ---set mesh.create=true \ ---set mesh.name=global -``` - -Verify that the global mesh is active: - -```bash -kubectl describe mesh - -Status: - Mesh Condition: - Status: True - Type: MeshActive -``` - -In order to collect the App Mesh metrics that Flagger needs to run the canary analysis, you'll need to setup a Prometheus instance to scrape the Envoy sidecars. - -Install the App Mesh Prometheus: - -```bash -helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ ---wait --namespace appmesh-system -``` - -## Install Flagger and Grafana - -Add Flagger Helm repository: - -```bash -helm repo add flagger https://flagger.app -``` - -Install Flagger's Canary CRD: - -```yaml -kubectl apply -f https://raw.githubusercontent.com/weaveworks/flagger/master/artifacts/flagger/crd.yaml -``` - -Deploy Flagger in the _**appmesh-system**_ namespace: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=appmesh-system \ ---set crd.create=false \ ---set meshProvider=appmesh \ ---set metricsServer=http://appmesh-prometheus:9090 -``` - -You can enable Slack or MS Teams notifications with: - -```bash -helm upgrade -i flagger flagger/flagger \ ---reuse-values \ ---namespace=appmesh-system \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=flagger -``` - -Flagger comes with a Grafana dashboard made for monitoring the canary analysis. Deploy Grafana in the _**appmesh-system**_ namespace: - -```bash -helm upgrade -i flagger-grafana flagger/grafana \ ---namespace=appmesh-system \ ---set url=http://appmesh-prometheus:9090 -``` - -You can access Grafana using port forwarding: - -```bash -kubectl -n appmesh-system port-forward svc/flagger-grafana 3000:80 -``` - -Now that you have Flagger running you can try the [App Mesh canary deployments tutorial](https://docs.flagger.app/usage/appmesh-progressive-delivery). - diff --git a/docs/install/flagger-install-on-google-cloud.md b/docs/install/flagger-install-on-google-cloud.md deleted file mode 100644 index a3fab0ef..00000000 --- a/docs/install/flagger-install-on-google-cloud.md +++ /dev/null @@ -1,400 +0,0 @@ -# Flagger Install on GKE Istio - -This guide walks you through setting up Flagger and Istio on Google Kubernetes Engine. - -![GKE Cluster Overview](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-gke-istio.png) - -## Prerequisites - -You will be creating a cluster on Google’s Kubernetes Engine \(GKE\), if you don’t have an account you can sign up [here](https://cloud.google.com/free/) for free credits. - -Login into Google Cloud, create a project and enable billing for it. - -Install the [gcloud](https://cloud.google.com/sdk/) command line utility and configure your project with `gcloud init`. - -Set the default project \(replace `PROJECT_ID` with your own project\): - -```text -gcloud config set project PROJECT_ID -``` - -Set the default compute region and zone: - -```text -gcloud config set compute/region us-central1 -gcloud config set compute/zone us-central1-a -``` - -Enable the Kubernetes and Cloud DNS services for your project: - -```text -gcloud services enable container.googleapis.com -gcloud services enable dns.googleapis.com -``` - -Install the kubectl command-line tool: - -```text -gcloud components install kubectl -``` - -## GKE cluster setup - -Create a cluster with the Istio add-on: - -```bash -K8S_VERSION=$(gcloud container get-server-config --format=json \ -| jq -r '.validMasterVersions[0]') - -gcloud beta container clusters create istio \ ---cluster-version=${K8S_VERSION} \ ---zone=us-central1-a \ ---num-nodes=2 \ ---machine-type=n1-highcpu-4 \ ---preemptible \ ---no-enable-cloud-logging \ ---no-enable-cloud-monitoring \ ---disk-size=30 \ ---enable-autorepair \ ---addons=HorizontalPodAutoscaling,Istio \ ---istio-config=auth=MTLS_PERMISSIVE -``` - -The above command will create a default node pool consisting of two `n1-highcpu-4` \(vCPU: 4, RAM 3.60GB, DISK: 30GB\) preemptible VMs. Preemptible VMs are up to 80% cheaper than regular instances and are terminated and replaced after a maximum of 24 hours. - -Set up credentials for `kubectl`: - -```bash -gcloud container clusters get-credentials istio -``` - -Create a cluster admin role binding: - -```bash -kubectl create clusterrolebinding "cluster-admin-$(whoami)" \ ---clusterrole=cluster-admin \ ---user="$(gcloud config get-value core/account)" -``` - -Validate your setup with: - -```bash -kubectl -n istio-system get svc -``` - -In a couple of seconds GCP should allocate an external IP to the `istio-ingressgateway` service. - -## Cloud DNS setup - -You will need an internet domain and access to the registrar to change the name servers to Google Cloud DNS. - -Create a managed zone named `istio` in Cloud DNS \(replace `example.com` with your domain\): - -```bash -gcloud dns managed-zones create \ ---dns-name="example.com." \ ---description="Istio zone" "istio" -``` - -Look up your zone's name servers: - -```bash -gcloud dns managed-zones describe istio -``` - -Update your registrar's name server records with the records returned by the above command. - -Wait for the name servers to change \(replace `example.com` with your domain\): - -```bash -watch dig +short NS example.com -``` - -Create a static IP address named `istio-gateway` using the Istio ingress IP: - -```bash -export GATEWAY_IP=$(kubectl -n istio-system get svc/istio-ingressgateway -ojson \ -| jq -r .status.loadBalancer.ingress[0].ip) - -gcloud compute addresses create istio-gateway --addresses ${GATEWAY_IP} --region us-central1 -``` - -Create the following DNS records \(replace `example.com` with your domain\): - -```bash -DOMAIN="example.com" - -gcloud dns record-sets transaction start --zone=istio - -gcloud dns record-sets transaction add --zone=istio \ ---name="${DOMAIN}" --ttl=300 --type=A ${GATEWAY_IP} - -gcloud dns record-sets transaction add --zone=istio \ ---name="www.${DOMAIN}" --ttl=300 --type=A ${GATEWAY_IP} - -gcloud dns record-sets transaction add --zone=istio \ ---name="*.${DOMAIN}" --ttl=300 --type=A ${GATEWAY_IP} - -gcloud dns record-sets transaction execute --zone istio -``` - -Verify that the wildcard DNS is working \(replace `example.com` with your domain\): - -```bash -watch host test.example.com -``` - -## Install Helm - -Install the [Helm](https://docs.helm.sh/using_helm/#installing-helm) command-line tool: - -```text -brew install kubernetes-helm -``` - -Create a service account and a cluster role binding for Tiller: - -```bash -kubectl -n kube-system create sa tiller - -kubectl create clusterrolebinding tiller-cluster-rule \ ---clusterrole=cluster-admin \ ---serviceaccount=kube-system:tiller -``` - -Deploy Tiller in the `kube-system` namespace: - -```bash -helm init --service-account tiller -``` - -You should consider using SSL between Helm and Tiller, for more information on securing your Helm installation see [docs.helm.sh](https://docs.helm.sh/using_helm/#securing-your-helm-installation). - -## Install cert-manager - -Jetstack's [cert-manager](https://github.com/jetstack/cert-manager) is a Kubernetes operator that automatically creates and manages TLS certs issued by Let’s Encrypt. - -You'll be using cert-manager to provision a wildcard certificate for the Istio ingress gateway. - -Install cert-manager's CRDs: - -```bash -CERT_REPO=https://raw.githubusercontent.com/jetstack/cert-manager - -kubectl apply -f ${CERT_REPO}/release-0.10/deploy/manifests/00-crds.yaml -``` - -Create the cert-manager namespace and disable resource validation: - -```bash -kubectl create namespace cert-manager - -kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true -``` - -Install cert-manager with Helm: - -```bash -helm repo add jetstack https://charts.jetstack.io && \ -helm repo update && \ -helm upgrade -i cert-manager \ ---namespace cert-manager \ ---version v0.10.0 \ -jetstack/cert-manager -``` - -## Istio Gateway TLS setup - -![Istio Let's Encrypt](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/istio-cert-manager-gke.png) - -Create a generic Istio Gateway to expose services outside the mesh on HTTPS: - -```bash -REPO=https://raw.githubusercontent.com/weaveworks/flagger/master - -kubectl apply -f ${REPO}/artifacts/gke/istio-gateway.yaml -``` - -Create a service account with Cloud DNS admin role \(replace `my-gcp-project` with your project ID\): - -```bash -GCP_PROJECT=my-gcp-project - -gcloud iam service-accounts create dns-admin \ ---display-name=dns-admin \ ---project=${GCP_PROJECT} - -gcloud iam service-accounts keys create ./gcp-dns-admin.json \ ---iam-account=dns-admin@${GCP_PROJECT}.iam.gserviceaccount.com \ ---project=${GCP_PROJECT} - -gcloud projects add-iam-policy-binding ${GCP_PROJECT} \ ---member=serviceAccount:dns-admin@${GCP_PROJECT}.iam.gserviceaccount.com \ ---role=roles/dns.admin -``` - -Create a Kubernetes secret with the GCP Cloud DNS admin key: - -```bash -kubectl create secret generic cert-manager-credentials \ ---from-file=./gcp-dns-admin.json \ ---namespace=istio-system -``` - -Create a letsencrypt issuer for CloudDNS \(replace `email@example.com` with a valid email address and `my-gcp-project`with your project ID\): - -```yaml -apiVersion: certmanager.k8s.io/v1alpha1 -kind: Issuer -metadata: - name: letsencrypt-prod - namespace: istio-system -spec: - acme: - server: https://acme-v02.api.letsencrypt.org/directory - email: email@example.com - privateKeySecretRef: - name: letsencrypt-prod - dns01: - providers: - - name: cloud-dns - clouddns: - serviceAccountSecretRef: - name: cert-manager-credentials - key: gcp-dns-admin.json - project: my-gcp-project -``` - -Save the above resource as letsencrypt-issuer.yaml and then apply it: - -```text -kubectl apply -f ./letsencrypt-issuer.yaml -``` - -Create a wildcard certificate \(replace `example.com` with your domain\): - -```yaml -apiVersion: certmanager.k8s.io/v1alpha1 -kind: Certificate -metadata: - name: istio-gateway - namespace: istio-system -spec: - secretName: istio-ingressgateway-certs - issuerRef: - name: letsencrypt-prod - commonName: "*.example.com" - acme: - config: - - dns01: - provider: cloud-dns - domains: - - "*.example.com" - - "example.com" -``` - -Save the above resource as istio-gateway-cert.yaml and then apply it: - -```text -kubectl apply -f ./istio-gateway-cert.yaml -``` - -In a couple of seconds cert-manager should fetch a wildcard certificate from letsencrypt.org: - -```text -kubectl -n istio-system describe certificate istio-gateway - -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal CertIssued 1m52s cert-manager Certificate issued successfully -``` - -Recreate Istio ingress gateway pods: - -```bash -kubectl -n istio-system get pods -l istio=ingressgateway -``` - -Note that Istio gateway doesn't reload the certificates from the TLS secret on cert-manager renewal. Since the GKE cluster is made out of preemptible VMs the gateway pods will be replaced once every 24h, if your not using preemptible nodes then you need to manually delete the gateway pods every two months before the certificate expires. - -## Install Prometheus - -The GKE Istio add-on does not include a Prometheus instance that scrapes the Istio telemetry service. Because Flagger uses the Istio HTTP metrics to run the canary analysis you have to deploy the following Prometheus configuration that's similar to the one that comes with the official Istio Helm chart. - -Find the GKE Istio version with: - -```bash -kubectl -n istio-system get deploy istio-pilot -oyaml | grep image: -``` - -Install Prometheus in istio-system namespace: - -```bash -kubectl -n istio-system apply -f \ -https://storage.googleapis.com/gke-release/istio/release/1.0.6-gke.3/patches/install-prometheus.yaml -``` - -## Install Flagger and Grafana - -Add Flagger Helm repository: - -```bash -helm repo add flagger https://flagger.app -``` - -Install Flagger's Canary CRD: - -```yaml -kubectl apply -f https://raw.githubusercontent.com/weaveworks/flagger/master/artifacts/flagger/crd.yaml -``` - -Deploy Flagger in the `istio-system` namespace with Slack notifications enabled: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set crd.create=false \ ---set metricsServer=http://prometheus.istio-system:9090 \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=flagger -``` - -Deploy Grafana in the `istio-system` namespace: - -```bash -helm upgrade -i flagger-grafana flagger/grafana \ ---namespace=istio-system \ ---set url=http://prometheus.istio-system:9090 \ ---set user=admin \ ---set password=replace-me -``` - -Expose Grafana through the public gateway by creating a virtual service \(replace `example.com` with your domain\): - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: VirtualService -metadata: - name: grafana - namespace: istio-system -spec: - hosts: - - "grafana.example.com" - gateways: - - public-gateway.istio-system.svc.cluster.local - http: - - route: - - destination: - host: flagger-grafana -``` - -Save the above resource as grafana-virtual-service.yaml and then apply it: - -```bash -kubectl apply -f ./grafana-virtual-service.yaml -``` - -Navigate to `http://grafana.example.com` in your browser and you should be redirected to the HTTPS version. - diff --git a/docs/install/flagger-install-on-kubernetes.md b/docs/install/flagger-install-on-kubernetes.md deleted file mode 100644 index 48bdc517..00000000 --- a/docs/install/flagger-install-on-kubernetes.md +++ /dev/null @@ -1,280 +0,0 @@ -# Flagger Install on Kubernetes - -This guide walks you through setting up Flagger on a Kubernetes cluster with Helm v3 or Kustomize. - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer. - -## Install Flagger with Helm - -Add Flagger Helm repository: - -```bash -helm repo add flagger https://flagger.app -``` - -Install Flagger's Canary CRD: - -```yaml -kubectl apply -f https://raw.githubusercontent.com/weaveworks/flagger/master/artifacts/flagger/crd.yaml -``` - -Deploy Flagger for Istio: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set crd.create=false \ ---set meshProvider=istio \ ---set metricsServer=http://prometheus:9090 -``` - -Note that Flagger depends on Istio telemetry and Prometheus, if you're installing Istio with istioctl -then you should be using the [default profile](https://istio.io/docs/setup/additional-setup/config-profiles/). - -For Istio multi-cluster shared control plane you can install Flagger -on each remote cluster and set the Istio control plane host cluster kubeconfig: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set crd.create=false \ ---set meshProvider=istio \ ---set metricsServer=http://istio-cluster-prometheus:9090 \ ---set istio.kubeconfig.secretName=istio-kubeconfig \ ---set istio.kubeconfig.key=kubeconfig -``` - -Note that the Istio kubeconfig must be stored in a Kubernetes secret with a data key named `kubeconfig`. -For more details on how to configure Istio multi-cluster credentials -read the [Istio docs](https://istio.io/docs/setup/install/multicluster/shared-vpn/#credentials). - -Deploy Flagger for Linkerd: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=linkerd \ ---set crd.create=false \ ---set meshProvider=linkerd \ ---set metricsServer=http://linkerd-prometheus:9090 -``` - -Deploy Flagger for App Mesh: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=appmesh-system \ ---set crd.create=false \ ---set meshProvider=appmesh \ ---set metricsServer=http://appmesh-prometheus:9090 -``` - -You can install Flagger in any namespace as long as it can talk to the Prometheus service on port 9090. - -For ingress controllers, the install instructions are: - -* [Contour](https://docs.flagger.app/tutorials/contour-progressive-delivery) -* [Gloo](https://docs.flagger.app/tutorials/gloo-progressive-delivery) -* [NGINX](https://docs.flagger.app/tutorials/nginx-progressive-delivery) - -Enable **Slack** notifications: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set crd.create=false \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=flagger -``` - -Enable **Microsoft Teams** notifications: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set crd.create=false \ ---set msteams.url=https://outlook.office.com/webhook/YOUR/TEAMS/WEBHOOK -``` - -You can use the helm template command and apply the generated yaml with kubectl: - -```bash -# generate -helm fetch --untar --untardir . flagger/flagger && -helm template flagger ./flagger \ ---namespace=istio-system \ ---set metricsServer=http://prometheus.istio-system:9090 \ -> flagger.yaml - -# apply -kubectl apply -f flagger.yaml -``` - -To uninstall the Flagger release with Helm run: - -```text -helm delete flagger -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -> **Note** that on uninstall the Canary CRD will not be removed. Deleting the CRD will make Kubernetes ->remove all the objects owned by Flagger like Istio virtual services, Kubernetes deployments and ClusterIP services. - -If you want to remove all the objects created by Flagger you have delete the Canary CRD with kubectl: - -```text -kubectl delete crd canaries.flagger.app -``` - -## Install Grafana with Helm - -Flagger comes with a Grafana dashboard made for monitoring the canary analysis. - -Deploy Grafana in the _**istio-system**_ namespace: - -```bash -helm upgrade -i flagger-grafana flagger/grafana \ ---namespace=istio-system \ ---set url=http://prometheus.istio-system:9090 \ ---set user=admin \ ---set password=change-me -``` - -Or use helm template command and apply the generated yaml with kubectl: - -```bash -# generate -helm fetch --untar --untardir . flagger/grafana && -helm template flagger-grafana ./grafana \ ---namespace=istio-system \ -> flagger-grafana.yaml - -# apply -kubectl apply -f flagger-grafana.yaml -``` - -You can access Grafana using port forwarding: - -```bash -kubectl -n istio-system port-forward svc/flagger-grafana 3000:80 -``` - -## Install Flagger with Kustomize - -As an alternative to Helm, Flagger can be installed with Kustomize. - -**Service mesh specific installers** - -Install Flagger for Istio: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/istio -``` - -This deploys Flagger in the `istio-system` namespace and sets the metrics server URL to Istio's Prometheus instance. - -Note that you'll need kubectl 1.14 to run the above the command or you can download -the [kustomize binary](https://github.com/kubernetes-sigs/kustomize/releases) and run: - -```bash -kustomize build github.com/weaveworks/flagger//kustomize/istio | kubectl apply -f - -``` - -Install Flagger for AWS App Mesh: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/appmesh -``` - -This deploys Flagger and sets the metrics server URL to App Mesh's Prometheus instance. - -Install Flagger for Linkerd: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/linkerd -``` - -This deploys Flagger in the `linkerd` namespace and sets the metrics server URL to Linkerd's Prometheus instance. - -If you want to install a specific Flagger release, add the version number to the URL: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/linkerd?ref=0.18.0 -``` - -**Generic installer** - -Install Flagger and Prometheus: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/kubernetes -``` - -This deploys Flagger and Prometheus in the `flagger-system` namespace, sets the metrics server URL -to `http://flagger-prometheus.flagger-system:9090` and the mesh provider to `kubernetes`. - -The Prometheus instance has a two hours data retention and is configured to scrape all pods in your cluster -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/v1beta1 -kind: Canary -metadata: - name: app - namespace: test -spec: - # can be: kubernetes, istio, linkerd, appmesh, nginx, gloo - # use the kubernetes provider for Blue/Green style deployments - provider: nginx -``` - -**Customized installer** - -Create a kustomization file using flagger as base: - -```bash -cat > kustomization.yaml < patch.yaml <..svc.cluster.local` - selector `app=-primary` -* `-primary..svc.cluster.local` - selector `app=-primary` -* `-canary..svc.cluster.local` - selector `app=` - -This ensures that traffic coming from a namespace outside the mesh to `podinfo.test:9898` -will be routed to the latest stable release of your app. - -```yaml -apiVersion: v1 -kind: Service -metadata: - name: podinfo -spec: - type: ClusterIP - selector: - app: podinfo-primary - ports: - - name: http - port: 9898 - protocol: TCP - targetPort: http ---- -apiVersion: v1 -kind: Service -metadata: - name: podinfo-primary -spec: - type: ClusterIP - selector: - app: podinfo-primary - ports: - - name: http - port: 9898 - protocol: TCP - targetPort: http ---- -apiVersion: v1 -kind: Service -metadata: - name: podinfo-canary -spec: - type: ClusterIP - selector: - app: podinfo - ports: - - name: http - port: 9898 - protocol: TCP - targetPort: http -``` - -The `podinfo-canary.test:9898` address is available only during the -canary analysis and can be used for conformance testing or load testing. - -## Multiple ports - -**My application listens on multiple ports, how can I expose them inside the cluster?** - -If port discovery is enabled, Flagger scans the deployment spec and extracts the containers -ports excluding the port specified in the canary service and Envoy sidecar ports. -These ports will be used when generating the ClusterIP services. - -For a deployment that exposes two ports: - -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - template: - metadata: - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9899" - spec: - containers: - - name: app - ports: - - containerPort: 8080 - - containerPort: 9090 -``` - -You can enable port discovery so that Prometheus will be able to reach port `9090` over mTLS: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -spec: - service: - # container port used for canary analysis - port: 8080 - # port name can be http or grpc (default http) - portName: http - # add all the other container ports - # to the ClusterIP services (default false) - portDiscovery: true - trafficPolicy: - tls: - mode: ISTIO_MUTUAL -``` - -Both port `8080` and `9090` will be added to the ClusterIP services. - -## Label selectors - -**What labels selectors are supported by Flagger?** - -The target deployment must have a single label selector in the format `app: `: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: podinfo -spec: - selector: - matchLabels: - app: podinfo - template: - metadata: - labels: - app: podinfo -``` - -Besides `app` Flagger supports `name` and `app.kubernetes.io/name` selectors. If you use a different -convention you can specify your label with the `-selector-labels` flag. - -**Is pod affinity and anti affinity supported?** - -For pod affinity to work you need to use a different label than the `app`, `name` or `app.kubernetes.io/name`. - -Anti affinity example: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: podinfo -spec: - selector: - matchLabels: - app: podinfo - affinity: podinfo - template: - metadata: - labels: - app: podinfo - affinity: podinfo - spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchLabels: - affinity: podinfo - topologyKey: kubernetes.io/hostname -``` - -## Metrics - -**How does Flagger measures the request success rate and duration?** - -Flagger measures the request success rate and duration using Prometheus queries. - -**HTTP requests success rate percentage** - -Spec: - -```yaml - analysis: - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m -``` - -Istio query: - -```javascript -sum( - rate( - istio_requests_total{ - reporter="destination", - destination_workload_namespace=~"$namespace", - destination_workload=~"$workload", - response_code!~"5.*" - }[$interval] - ) -) -/ -sum( - rate( - istio_requests_total{ - reporter="destination", - destination_workload_namespace=~"$namespace", - destination_workload=~"$workload" - }[$interval] - ) -) -``` - -Envoy query (App Mesh, Contour or Gloo): - -```javascript -sum( - rate( - envoy_cluster_upstream_rq{ - kubernetes_namespace="$namespace", - kubernetes_pod_name=~"$workload", - envoy_response_code!~"5.*" - }[$interval] - ) -) -/ -sum( - rate( - envoy_cluster_upstream_rq{ - kubernetes_namespace="$namespace", - kubernetes_pod_name=~"$workload" - }[$interval] - ) -) -``` - -**HTTP requests milliseconds duration P99** - -Spec: - -```yaml - analysis: - metrics: - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 1m -``` - -Istio query: - -```javascript -histogram_quantile(0.99, - sum( - irate( - istio_request_duration_seconds_bucket{ - reporter="destination", - destination_workload=~"$workload", - destination_workload_namespace=~"$namespace" - }[$interval] - ) - ) by (le) -) -``` - -Envoy query (App Mesh, Contour or Gloo): - -```javascript -histogram_quantile(0.99, - sum( - irate( - envoy_cluster_upstream_rq_time_bucket{ - kubernetes_pod_name=~"$workload", - kubernetes_namespace=~"$namespace" - }[$interval] - ) - ) by (le) -) -``` - -> **Note** that the metric interval should be lower or equal to the control loop interval. - -**Can I use custom metrics?** - -The analysis can be extended with metrics provided by Prometheus, Datadog and AWS CloudWatch. For more details -on how custom metrics can be used please read the [metrics docs](../usage/metrics.md). - -## Istio routing - -**How does Flagger interact with Istio?** - -Flagger creates an Istio Virtual Service and Destination Rules based on the Canary service spec. -The service configuration lets you expose an app inside or outside the mesh. -You can also define traffic policies, HTTP match conditions, URI rewrite rules, CORS policies, timeout and retries. - -The following spec exposes the `frontend` workload inside the mesh on `frontend.test.svc.cluster.local:9898` -and outside the mesh on `frontend.example.com`. You'll have to specify an Istio ingress gateway for external hosts. - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: frontend - namespace: test -spec: - service: - # container port - port: 9898 - # service port name (optional, will default to "http") - portName: http-frontend - # Istio gateways (optional) - gateways: - - public-gateway.istio-system.svc.cluster.local - - mesh - # Istio virtual service host names (optional) - hosts: - - frontend.example.com - # Istio traffic policy - trafficPolicy: - tls: - # use ISTIO_MUTUAL when mTLS is enabled - mode: DISABLE - # HTTP match conditions (optional) - match: - - uri: - prefix: / - # HTTP rewrite (optional) - rewrite: - uri: / - # Istio retry policy (optional) - retries: - attempts: 3 - perTryTimeout: 1s - retryOn: "gateway-error,connect-failure,refused-stream" - # Add headers (optional) - headers: - request: - add: - x-some-header: "value" - # cross-origin resource sharing policy (optional) - corsPolicy: - allowOrigin: - - example.com - allowMethods: - - GET - allowCredentials: false - allowHeaders: - - x-some-header - maxAge: 24h -``` - -For the above spec Flagger will generate the following virtual service: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: VirtualService -metadata: - name: frontend - namespace: test - ownerReferences: - - apiVersion: flagger.app/v1beta1 - blockOwnerDeletion: true - controller: true - kind: Canary - name: podinfo - uid: 3a4a40dd-3875-11e9-8e1d-42010a9c0fd1 -spec: - gateways: - - public-gateway.istio-system.svc.cluster.local - - mesh - hosts: - - frontend.example.com - - frontend - http: - - corsPolicy: - allowHeaders: - - x-some-header - allowMethods: - - GET - allowOrigin: - - example.com - maxAge: 24h - headers: - request: - add: - x-some-header: "value" - match: - - uri: - prefix: / - rewrite: - uri: / - route: - - destination: - host: podinfo-primary - weight: 100 - - destination: - host: podinfo-canary - weight: 0 - retries: - attempts: 3 - perTryTimeout: 1s - retryOn: "gateway-error,connect-failure,refused-stream" -``` - -For each destination in the virtual service a rule is generated: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: DestinationRule -metadata: - name: frontend-primary - namespace: test -spec: - host: frontend-primary - trafficPolicy: - tls: - mode: DISABLE ---- -apiVersion: networking.istio.io/v1alpha3 -kind: DestinationRule -metadata: - name: frontend-canary - namespace: test -spec: - host: frontend-canary - trafficPolicy: - tls: - mode: DISABLE -``` - -Flagger keeps in sync the virtual service and destination rules with the canary service spec. -Any direct modification to the virtual service spec will be overwritten. - -To expose a workload inside the mesh on `http://backend.test.svc.cluster.local:9898`, -the service spec can contain only the container port and the traffic policy: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: backend - namespace: test -spec: - service: - port: 9898 - trafficPolicy: - tls: - mode: DISABLE -``` - -Based on the above spec, Flagger will create several ClusterIP services like: - -```yaml -apiVersion: v1 -kind: Service -metadata: - name: backend-primary - ownerReferences: - - apiVersion: flagger.app/v1beta1 - blockOwnerDeletion: true - controller: true - kind: Canary - name: backend - uid: 2ca1a9c7-2ef6-11e9-bd01-42010a9c0145 -spec: - type: ClusterIP - ports: - - name: http - port: 9898 - protocol: TCP - targetPort: 9898 - selector: - app: backend-primary -``` - -Flagger works for user facing apps exposed outside the cluster via an ingress gateway -and for backend HTTP APIs that are accessible only from inside the mesh. - -## Istio Ingress Gateway - -**How can I expose multiple canaries on the same external domain?** - -Assuming you have two apps, one that servers the main website and one that serves the REST API. -For each app you can define a canary object as: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: website -spec: - service: - port: 8080 - gateways: - - public-gateway.istio-system.svc.cluster.local - hosts: - - my-site.com - match: - - uri: - prefix: / - rewrite: - uri: / ---- -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: webapi -spec: - service: - port: 8080 - gateways: - - public-gateway.istio-system.svc.cluster.local - hosts: - - my-site.com - match: - - uri: - prefix: /api - rewrite: - uri: / -``` - -Based on the above configuration, Flagger will create two virtual services bounded to the same ingress gateway and external host. -Istio Pilot will [merge](https://istio.io/help/ops/traffic-management/deploy-guidelines/#multiple-virtual-services-and-destination-rules-for-the-same-host) -the two services and the website rule will be moved to the end of the list in the merged configuration. - -Note that host merging only works if the canaries are bounded to a ingress gateway other than the `mesh` gateway. - -## Istio Mutual TLS - -**How can I enable mTLS for a canary?** - -When deploying Istio with global mTLS enabled, you have to set the TLS mode to `ISTIO_MUTUAL`: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -spec: - service: - trafficPolicy: - tls: - mode: ISTIO_MUTUAL -``` - -If you run Istio in permissive mode you can disable TLS: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -spec: - service: - trafficPolicy: - tls: - mode: DISABLE -``` - -**If Flagger is outside of the mesh, how can it start the load test?** - -In order for Flagger to be able to call the load tester service from outside the mesh, you need to disable mTLS on port 80: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: DestinationRule -metadata: - name: flagger-loadtester - namespace: test -spec: - host: "flagger-loadtester.test.svc.cluster.local" - trafficPolicy: - tls: - mode: DISABLE ---- -apiVersion: authentication.istio.io/v1alpha1 -kind: Policy -metadata: - name: flagger-loadtester - namespace: test -spec: - targets: - - name: flagger-loadtester - ports: - - number: 80 -``` diff --git a/docs/tutorials/README.md b/docs/tutorials/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/tutorials/appmesh-progressive-delivery.md b/docs/tutorials/appmesh-progressive-delivery.md deleted file mode 100644 index 4ee1fcb2..00000000 --- a/docs/tutorials/appmesh-progressive-delivery.md +++ /dev/null @@ -1,394 +0,0 @@ -# App Mesh Canary Deployments - -This guide shows you how to use App Mesh and Flagger to automate canary deployments. You'll need an EKS cluster configured with App Mesh, you can find the install guide [here](https://docs.flagger.app/install/flagger-install-on-eks-appmesh). - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler \(HPA\), then creates a series of objects \(Kubernetes deployments, ClusterIP services, App Mesh virtual nodes and services\). These objects expose the application on the mesh and drive the canary analysis and promotion. The only App Mesh object you need to create by yourself is the mesh resource. - -Create a mesh called `global`: - -```bash -cat << EOF | kubectl apply -f - -apiVersion: appmesh.k8s.aws/v1beta1 -kind: Mesh -metadata: - name: global -spec: - serviceDiscoveryType: dns -EOF -``` - -Create a test namespace with App Mesh sidecar injection enabled: - -```bash -cat << EOF | kubectl apply -f - -apiVersion: v1 -kind: Namespace -metadata: - name: test - labels: - appmesh.k8s.aws/sidecarInjectorWebhook: enabled -EOF -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -helm upgrade -i flagger-loadtester flagger/loadtester \ ---namespace=test \ ---set meshName=global \ ---set "backends[0]=podinfo.test" \ ---set "backends[1]=podinfo-canary.test" -``` - -Create a canary custom resource: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # container port - port: 9898 - # container port name (optional) - # can be http or grpc - portName: http - # App Mesh reference - meshName: global - # App Mesh ingress (optional) - hosts: - - "*" - # App Mesh ingress timeout (optional) - timeout: 5s - # App Mesh egress (optional) - backends: - - backend.test - # App Mesh retry policy (optional) - retries: - attempts: 3 - perTryTimeout: 5s - retryOn: "gateway-error,client-error,stream-error" - # define the canary analysis timing and KPIs - analysis: - # schedule interval (default 60s) - interval: 1m - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 5 - # App Mesh Prometheus checks - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # testing (optional) - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary.test:9898/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated Kubernetes objects -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary - -# generated App Mesh objects -virtualnode.appmesh.k8s.aws/podinfo -virtualnode.appmesh.k8s.aws/podinfo-canary -virtualnode.appmesh.k8s.aws/podinfo-primary -virtualservice.appmesh.k8s.aws/podinfo.test -virtualservice.appmesh.k8s.aws/podinfo-canary.test -``` - -After the boostrap, the podinfo deployment will be scaled to zero and the traffic to `podinfo.test` will be routed to the primary pods. During the canary analysis, the `podinfo-canary.test` address can be used to target directly the canary pods. - -The App Mesh specific settings are: - -```yaml - service: - port: 9898 - meshName: global - backends: - - backend1.test - - backend2.test -``` - -App Mesh blocks all egress traffic by default. If your application needs to call another service, you have to create an App Mesh virtual service for it and add the virtual service name to the backend list. - -## Setup App Mesh Gateway \(optional\) - -In order to expose the podinfo app outside the mesh you'll be using an Envoy-powered ingress gateway and an AWS network load balancer. The gateway binds to an internet domain and forwards the calls into the mesh through the App Mesh sidecar. If podinfo becomes unavailable due to a cluster downscaling or a node restart, the gateway will retry the calls for a short period of time. - -Deploy the gateway behind an AWS NLB: - -```bash -helm upgrade -i appmesh-gateway flagger/appmesh-gateway \ ---namespace test \ ---set mesh.name=global -``` - -Find the gateway public address: - -```bash -export URL="http://$(kubectl -n test get svc/appmesh-gateway -ojson | jq -r ".status.loadBalancer.ingress[].hostname")" -echo $URL -``` - -Wait for the NLB to become active: - -```bash - watch curl -sS $URL -``` - -Open your browser and navigate to the ingress address to access podinfo UI. - -## Automated canary promotion - -A canary deployment is triggered by changes in any of the following objects: - -* Deployment PodSpec \(container image, command, ports, env, resources, etc\) -* ConfigMaps and Secrets mounted as volumes or mapped to environment variables - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - New revision detected! Scaling up podinfo.test - Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Pre-rollout check acceptance-test passed - Advance podinfo.test canary weight 5 - Advance podinfo.test canary weight 10 - Advance podinfo.test canary weight 15 - Advance podinfo.test canary weight 20 - Advance podinfo.test canary weight 25 - Advance podinfo.test canary weight 30 - Advance podinfo.test canary weight 35 - Advance podinfo.test canary weight 40 - Advance podinfo.test canary weight 45 - Advance podinfo.test canary weight 50 - Copying podinfo.test template spec to podinfo-primary.test - Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Routing all traffic to primary - Promotion completed! Scaling down podinfo.test -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks before routing traffic to the canary. - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -During the analysis the canary’s progress can be monitored with Grafana. The App Mesh dashboard URL is [http://localhost:3000/d/flagger-appmesh/appmesh-canary?refresh=10s&orgId=1&var-namespace=test&var-primary=podinfo-primary&var-canary=podinfo](http://localhost:3000/d/flagger-appmesh/appmesh-canary?refresh=10s&orgId=1&var-namespace=test&var-primary=podinfo-primary&var-canary=podinfo) - -![App Mesh Canary Dashboard](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/flagger-grafana-appmesh.png) - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-10-02T14:05:07Z -prod frontend Succeeded 0 2019-10-02T16:15:07Z -prod backend Failed 0 2019-10-02T17:05:07Z -``` - -If you’ve enabled the Slack notifications, you should receive the following messages: - -![Flagger Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors or high latency to test if Flagger pauses the rollout. - -Trigger a canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Exec into the load tester pod with: - -```bash -kubectl -n test exec -it deploy/flagger-loadtester bash -``` - -Generate HTTP 500 errors: - -```bash -hey -z 1m -c 5 -q 5 http://podinfo-canary.test:9898/status/500 -``` - -Generate latency: - -```bash -watch -n 1 curl http://podinfo-canary.test:9898/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n appmesh-system logs deploy/flagger -f | jq .msg - -New revision detected! Starting canary analysis for podinfo.test -Pre-rollout check acceptance-test passed -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Halt podinfo.test advancement success rate 69.17% < 99% -Halt podinfo.test advancement success rate 61.39% < 99% -Halt podinfo.test advancement success rate 55.06% < 99% -Halt podinfo.test advancement request duration 1.20s > 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 -``` - -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 Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) - -## A/B Testing - -Besides weighted routing, Flagger can be configured to route traffic to the canary based on HTTP match conditions. In an A/B testing scenario, you'll be using HTTP headers or cookies to target a certain segment of your users. This is particularly useful for frontend applications that require session affinity. - -![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) - -Edit the canary analysis, remove the max/step weight and add the match conditions and iterations: - -```yaml - analysis: - interval: 1m - threshold: 5 - iterations: 10 - match: - - headers: - x-canary: - exact: "insider" - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 1m -q 10 -c 2 -H 'X-Canary: insider' http://podinfo.test:9898/" -``` - -The above configuration will run an analysis for ten minutes targeting users that have a `X-Canary: insider` header. - -You can also use a HTTP cookie, to target all users with a `canary` cookie set to `insider` the match condition should be: - -```yaml -match: -- headers: - cookie: - regex: "^(.*?;)?(canary=insider)(;.*)?$" -webhooks: -- name: load-test - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 1m -q 10 -c 2 -H 'Cookie: canary=insider' http://podinfo.test:9898/" -``` - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.3 -``` - -Flagger detects that the deployment revision changed and starts the A/B test: - -```text -kubectl -n appmesh-system logs deploy/flagger -f | jq .msg - -New revision detected! Starting canary analysis for podinfo.test -Advance podinfo.test canary iteration 1/10 -Advance podinfo.test canary iteration 2/10 -Advance podinfo.test canary iteration 3/10 -Advance podinfo.test canary iteration 4/10 -Advance podinfo.test canary iteration 5/10 -Advance podinfo.test canary iteration 6/10 -Advance podinfo.test canary iteration 7/10 -Advance podinfo.test canary iteration 8/10 -Advance podinfo.test canary iteration 9/10 -Advance podinfo.test canary iteration 10/10 -Copying podinfo.test template spec to podinfo-primary.test -Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available -Routing all traffic to primary -Promotion completed! Scaling down podinfo.test -``` - -For an in-depth look at the analysis process read the [usage docs](../usage/how-it-works.md). diff --git a/docs/tutorials/canary-helm-gitops.md b/docs/tutorials/canary-helm-gitops.md deleted file mode 100644 index e028ca38..00000000 --- a/docs/tutorials/canary-helm-gitops.md +++ /dev/null @@ -1,356 +0,0 @@ -# Canaries with Helm charts and GitOps - -This guide shows you how to package a web app into a Helm chart, trigger canary deployments on Helm upgrade and automate the chart release process with Weave Flux. - -## Packaging - -You'll be using the [podinfo](https://github.com/stefanprodan/k8s-podinfo) chart. This chart packages a web app made with Go, it's configuration, a horizontal pod autoscaler \(HPA\) and the canary configuration file. - -```text -├── Chart.yaml -├── README.md -├── templates -│ ├── NOTES.txt -│ ├── _helpers.tpl -│ ├── canary.yaml -│ ├── configmap.yaml -│ ├── deployment.yaml -│ ├── hpa.yaml -│ ├── service.yaml -│ └── tests -│ ├── test-config.yaml -│ └── test-pod.yaml -└── values.yaml -``` - -You can find the chart source [here](https://github.com/stefanprodan/flagger/tree/master/charts/podinfo). - -## Install - -Create a test namespace with Istio sidecar injection enabled: - -```bash -export REPO=https://raw.githubusercontent.com/weaveworks/flagger/master - -kubectl apply -f ${REPO}/artifacts/namespaces/test.yaml -``` - -Add Flagger Helm repository: - -```bash -helm repo add flagger https://flagger.app -``` - -Install podinfo with the release name `frontend` \(replace `example.com` with your own domain\): - -```bash -helm upgrade -i frontend flagger/podinfo \ ---namespace test \ ---set nameOverride=frontend \ ---set backend=http://backend.test:9898/echo \ ---set canary.enabled=true \ ---set canary.istioIngress.enabled=true \ ---set canary.istioIngress.gateway=public-gateway.istio-system.svc.cluster.local \ ---set canary.istioIngress.host=frontend.istio.example.com -``` - -Flagger takes a Kubernetes deployment and a horizontal pod autoscaler \(HPA\), then creates a series of objects \(Kubernetes deployments, ClusterIP services and Istio virtual services\). These objects expose the application on the mesh and drive the canary analysis and promotion. - -```bash -# generated by Helm -configmap/frontend -deployment.apps/frontend -horizontalpodautoscaler.autoscaling/frontend -canary.flagger.app/frontend - -# generated by Flagger -configmap/frontend-primary -deployment.apps/frontend-primary -horizontalpodautoscaler.autoscaling/frontend-primary -service/frontend -service/frontend-canary -service/frontend-primary -virtualservice.networking.istio.io/frontend -``` - -When the `frontend-primary` deployment comes online, Flagger will route all traffic to the primary pods and scale to zero the `frontend` deployment. - -Open your browser and navigate to the frontend URL: - -![Podinfo Frontend](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/demo-frontend.png) - -Now let's install the `backend` release without exposing it outside the mesh: - -```bash -helm upgrade -i backend flagger/podinfo \ ---namespace test \ ---set nameOverride=backend \ ---set canary.enabled=true \ ---set canary.istioIngress.enabled=false -``` - -Check if Flagger has successfully deployed the canaries: - -```text -kubectl -n test get canaries - -NAME STATUS WEIGHT LASTTRANSITIONTIME -backend Initialized 0 2019-02-12T18:53:18Z -frontend Initialized 0 2019-02-12T17:50:50Z -``` - -Click on the ping button in the `frontend` UI to trigger a HTTP POST request that will reach the `backend` app: - -![Jaeger Tracing](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/demo-frontend-jaeger.png) - -We'll use the `/echo` endpoint \(same as the one the ping button calls\) to generate load on both apps during a canary deployment. - -## Upgrade - -First let's install a load testing service that will generate traffic during analysis: - -```bash -helm upgrade -i flagger-loadtester flagger/loadtester \ ---namespace=test -``` - -Install Flagger's helm test runner in the `kube-system` using `tiller` service account: - -```bash -helm upgrade -i flagger-helmtester flagger/loadtester \ ---namespace=kube-system \ ---set serviceAccountName=tiller -``` - -Enable the load and helm tester and deploy a new `frontend` version: - -```bash -helm upgrade -i frontend flagger/podinfo/ \ ---namespace test \ ---reuse-values \ ---set canary.loadtest.enabled=true \ ---set canary.helmtest.enabled=true \ ---set image.tag=3.1.1 -``` - -Flagger detects that the deployment revision changed and starts the canary analysis: - -```text -kubectl -n istio-system logs deployment/flagger -f | jq .msg - -New revision detected! Scaling up frontend.test -Halt advancement frontend.test waiting for rollout to finish: 0 of 2 updated replicas are available -Starting canary analysis for frontend.test -Pre-rollout check helm test passed -Advance frontend.test canary weight 5 -Advance frontend.test canary weight 10 -Advance frontend.test canary weight 15 -Advance frontend.test canary weight 20 -Advance frontend.test canary weight 25 -Advance frontend.test canary weight 30 -Advance frontend.test canary weight 35 -Advance frontend.test canary weight 40 -Advance frontend.test canary weight 45 -Advance frontend.test canary weight 50 -Copying frontend.test template spec to frontend-primary.test -Halt advancement frontend-primary.test waiting for rollout to finish: 1 old replicas are pending termination -Promotion completed! Scaling down frontend.test -``` - -You can monitor the canary deployment with Grafana. Open the Flagger dashboard, select `test` from the namespace dropdown, `frontend-primary` from the primary dropdown and `frontend` from the canary dropdown. - -![Flagger Grafana Dashboard](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/demo-frontend-dashboard.png) - -Now trigger a canary deployment for the `backend` app, but this time you'll change a value in the configmap: - -```bash -helm upgrade -i backend flagger/podinfo/ \ ---namespace test \ ---reuse-values \ ---set canary.loadtest.enabled=true \ ---set canary.helmtest.enabled=true \ ---set httpServer.timeout=25s -``` - -Generate HTTP 500 errors: - -```bash -kubectl -n test exec -it flagger-loadtester-xxx-yyy sh - -watch curl http://backend-canary:9898/status/500 -``` - -Generate latency: - -```bash -kubectl -n test exec -it flagger-loadtester-xxx-yyy sh - -watch curl http://backend-canary:9898/delay/1 -``` - -Flagger detects the config map change and starts a canary analysis. Flagger will pause the advancement when the HTTP success rate drops under 99% or when the average request duration in the last minute is over 500ms: - -```text -kubectl -n test describe canary backend - -Events: - -ConfigMap backend has changed -New revision detected! Scaling up backend.test -Starting canary analysis for backend.test -Advance backend.test canary weight 5 -Advance backend.test canary weight 10 -Advance backend.test canary weight 15 -Advance backend.test canary weight 20 -Advance backend.test canary weight 25 -Advance backend.test canary weight 30 -Advance backend.test canary weight 35 -Halt backend.test advancement success rate 62.50% < 99% -Halt backend.test advancement success rate 88.24% < 99% -Advance backend.test canary weight 40 -Advance backend.test canary weight 45 -Halt backend.test advancement request duration 2.415s > 500ms -Halt backend.test advancement request duration 2.42s > 500ms -Advance backend.test canary weight 50 -ConfigMap backend-primary synced -Copying backend.test template spec to backend-primary.test -Promotion completed! Scaling down backend.test -``` - -![Flagger Grafana Dashboard](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/demo-backend-dashboard.png) - -If the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, the canary is scaled to zero and the rollout is marked as failed. - -```bash -kubectl -n test get canary - -NAME STATUS WEIGHT LASTTRANSITIONTIME -backend Succeeded 0 2019-02-12T19:33:11Z -frontend Failed 0 2019-02-12T19:47:20Z -``` - -If you've enabled the Slack notifications, you'll receive an alert with the reason why the `backend` promotion failed. - -## GitOps automation - -Instead of using Helm CLI from a CI tool to perform the install and upgrade, you could use a Git based approach. GitOps is a way to do Continuous Delivery, it works by using Git as a source of truth for declarative infrastructure and workloads. In the [GitOps model](https://www.weave.works/technologies/gitops/), any change to production must be committed in source control prior to being applied on the cluster. This way rollback and audit logs are provided by Git. - -![Helm GitOps Canary Deployment](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-flux-gitops.png) - -In order to apply the GitOps pipeline model to Flagger canary deployments you'll need a Git repository with your workloads definitions in YAML format, a container registry where your CI system pushes immutable images and an operator that synchronizes the Git repo with the cluster state. - -Create a git repository with the following content: - -```text -├── namespaces -│ └── test.yaml -└── releases - └── test - ├── backend.yaml - ├── frontend.yaml - ├── loadtester.yaml - └── helmtester.yaml -``` - -Define the `frontend` release using Flux `HelmRelease` custom resource: - -```yaml -apiVersion: flux.weave.works/v1beta1 -kind: HelmRelease -metadata: - name: frontend - namespace: test - annotations: - fluxcd.io/automated: "true" - filter.fluxcd.io/chart-image: semver:~3.1 -spec: - releaseName: frontend - chart: - git: https://github.com/weaveowrks/flagger - ref: master - path: charts/podinfo - values: - image: - repository: stefanprodan/podinfo - tag: 3.1.0 - backend: http://backend-podinfo:9898/echo - canary: - enabled: true - istioIngress: - enabled: true - gateway: public-gateway.istio-system.svc.cluster.local - host: frontend.istio.example.com - loadtest: - enabled: true - helmtest: - enabled: true -``` - -In the `chart` section I've defined the release source by specifying the Helm repository (hosted on GitHub Pages), -chart name and version. In the `values` section I've overwritten the defaults set in values.yaml. - -With the `fluxcd.io` annotations I instruct Flux to automate this release. -When an image tag in the sem ver range of `3.1.0 - 3.1.99` is pushed to Docker Hub, -Flux will upgrade the Helm release and from there Flagger will pick up the change and start a canary deployment. - -Install [Flux](https://github.com/fluxcd/flux) and its -[Helm Operator](https://github.com/fluxcd/helm-operator) by specifying your Git repo URL: - -```bash -helm repo add fluxcd https://charts.fluxcd.io - -helm install --name flux \ ---set git.url=git@github.com:/ \ ---namespace fluxcd \ -fluxcd/flux - -helm upgrade -i helm-operator fluxcd/helm-operator \ ---namespace fluxcd \ ---set git.ssh.secretName=flux-git-deploy -``` - -At startup Flux generates a SSH key and logs the public key. Find the SSH public key with: - -```bash -kubectl -n fluxcd logs deployment/flux | grep identity.pub | cut -d '"' -f2 -``` - -In order to sync your cluster state with Git you need to copy the public key -and create a deploy key with write access on your GitHub repository. - -Open GitHub, navigate to your fork, go to _Setting > Deploy keys_ click on _Add deploy key_, check _Allow write access_, -paste the Flux public key and click _Add key_. - -After a couple of seconds Flux will apply the Kubernetes resources from Git and -Flagger will launch the `frontend` and `backend` apps. - -A CI/CD pipeline for the `frontend` release could look like this: - -* cut a release from the master branch of the podinfo code repo with the git tag `3.1.1` -* CI builds the image and pushes the `podinfo:3.1.1` image to the container registry -* Flux scans the registry and updates the Helm release `image.tag` to `3.1.1` -* Flux commits and push the change to the cluster repo -* Flux applies the updated Helm release on the cluster -* Flux Helm Operator picks up the change and calls Tiller to upgrade the release -* Flagger detects a revision change and scales up the `frontend` deployment -* Flagger runs the helm test before routing traffic to the canary service -* Flagger starts the load test and runs the canary analysis -* Based on the analysis result the canary deployment is promoted to production or rolled back -* Flagger sends a Slack or MS Teams notification with the canary result - -If the canary fails, fix the bug, do another patch release eg `3.1.2` and the whole process will run again. - -A canary deployment can fail due to any of the following reasons: - -* the container image can't be downloaded -* the deployment replica set is stuck for more then ten minutes (eg. due to a container crash loop) -* the webooks (acceptance tests, helm tests, load tests, etc) are returning a non 2xx response -* the HTTP success rate (non 5xx responses) metric drops under the threshold -* the HTTP average duration metric goes over the threshold -* the Istio telemetry service is unable to collect traffic metrics -* the metrics server (Prometheus) can't be reached - -If you want to find out more about managing Helm releases with Flux here are two in-depth guides: -[gitops-helm](https://github.com/stefanprodan/gitops-helm) -and [gitops-istio](https://github.com/stefanprodan/gitops-istio). - diff --git a/docs/tutorials/contour-progressive-delivery.md b/docs/tutorials/contour-progressive-delivery.md deleted file mode 100644 index 1e61ff95..00000000 --- a/docs/tutorials/contour-progressive-delivery.md +++ /dev/null @@ -1,440 +0,0 @@ -# Contour Canary Deployments - -This guide shows you how to use [Contour](https://projectcontour.io/) ingress controller and Flagger to automate canary releases and A/B testing. - -![Flagger Contour Overview](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-contour-overview.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Contour **v1.0** or newer. - -Install Contour on a cluster with LoadBalancer support: - -```bash -kubectl apply -f https://projectcontour.io/quickstart/contour.yaml -``` - -The above command will deploy Contour and an Envoy daemonset in the `projectcontour` namespace. - -Install Flagger using Kustomize (kubectl 1.14) in the `projectcontour` namespace: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/contour -``` - -The above command will deploy Flagger and Prometheus configured to scrape the Contour's Envoy instances. - -Or you can install Flagger using Helm: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger flagger/flagger \ ---namespace projectcontour \ ---set meshProvider=contour \ ---set prometheus.install=true -``` - -You can also enable Slack, Discord, Rocket or MS Teams notifications, -see the alerting [docs](../usage/alerting.md). - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services and Contour HTTPProxy). -These objects expose the application in the cluster and drive the canary analysis and promotion. - -Create a test namespace: - -```bash -kubectl create ns test -``` - -Install the load testing service to generate traffic during the canary analysis: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/tester -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -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/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # HPA reference - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # service port - port: 80 - # container port - targetPort: 9898 - # Contour request timeout - timeout: 15s - # Contour retry policy - retries: - attempts: 3 - perTryTimeout: 5s - # define the canary analysis timing and KPIs - analysis: - # schedule interval (default 60s) - interval: 30s - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 5 - # Contour Prometheus checks - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 in milliseconds - thresholdRange: - max: 500 - interval: 30s - # testing - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary.test/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - type: rollout - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 -host app.example.com http://envoy.projectcontour" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -The canary analysis will run for five minutes while validating the HTTP metrics and rollout hooks every half a minute. - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -httpproxy.projectcontour.io/podinfo -``` - -After the boostrap, the podinfo deployment will be scaled to zero and the traffic to `podinfo.test` -will be routed to the primary pods. -During the canary analysis, the `podinfo-canary.test` address can be used to target directly the canary pods. - -## Expose the app outside the cluster - -Find the external address of Contour's Envoy load balancer: - -```bash -export ADDRESS="$(kubectl -n projectcontour get svc/envoy -ojson \ -| jq -r ".status.loadBalancer.ingress[].hostname")" -echo $ADDRESS -``` - -Configure your DNS server with a CNAME record \(AWS\) or A record (GKE/AKS/DOKS) -and point a domain e.g. `app.example.com` to the LB address. - -Create a HTTPProxy definition and include the podinfo proxy generated by Flagger -(replace `app.example.com` with your own domain): - -```yaml -apiVersion: projectcontour.io/v1 -kind: HTTPProxy -metadata: - name: podinfo-ingress - namespace: test -spec: - virtualhost: - fqdn: app.example.com - includes: - - name: podinfo - namespace: test - conditions: - - prefix: / -``` - -Save the above resource as podinfo-ingress.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-ingress.yaml -``` - -Verify that Contour processed the proxy definition with: - -```bash -kubectl -n test get httpproxies - -NAME FQDN STATUS -podinfo valid -podinfo-ingress app.example.com valid -``` - -Now you can access podinfo UI using your domain address. - -Note that you should be using HTTPS when exposing production workloads on internet. -You can obtain free TLS certs from Let's Encrypt, read this [guide](https://github.com/stefanprodan/eks-contour-ingress) -on how to configure cert-manager to secure Contour with TLS certificates. - -## Automated canary promotion - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring -key performance indicators like HTTP requests success rate, requests average duration and pod health. -Based on analysis of the KPIs a canary is promoted or aborted. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -A canary deployment is triggered by changes in any of the following objects: - -* Deployment PodSpec (container image, command, ports, env, resources, etc) -* ConfigMaps and Secrets mounted as volumes or mapped to environment variables - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - New revision detected! Scaling up podinfo.test - Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Pre-rollout check acceptance-test passed - Advance podinfo.test canary weight 5 - Advance podinfo.test canary weight 10 - Advance podinfo.test canary weight 15 - Advance podinfo.test canary weight 20 - Advance podinfo.test canary weight 25 - Advance podinfo.test canary weight 30 - Advance podinfo.test canary weight 35 - Advance podinfo.test canary weight 40 - Advance podinfo.test canary weight 45 - Advance podinfo.test canary weight 50 - Copying podinfo.test template spec to podinfo-primary.test - Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Routing all traffic to primary - Promotion completed! Scaling down podinfo.test -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks before routing traffic to the canary. - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-12-20T14:05:07Z -``` - -If you’ve enabled the Slack notifications, you should receive the following messages: - -![Flagger Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-notifications.png) - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors or high latency to test if Flagger pauses the rollout. - -Trigger a canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Exec into the load tester pod with: - -```bash -kubectl -n test exec -it deploy/flagger-loadtester bash -``` - -Generate HTTP 500 errors: - -```bash -hey -z 1m -c 5 -q 5 http://app.example.com/status/500 -``` - -Generate latency: - -```bash -watch -n 1 curl http://app.example.com/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n projectcontour logs deploy/flagger -f | jq .msg - -New revision detected! Starting canary analysis for podinfo.test -Pre-rollout check acceptance-test passed -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Halt podinfo.test advancement success rate 69.17% < 99% -Halt podinfo.test advancement success rate 61.39% < 99% -Halt podinfo.test advancement success rate 55.06% < 99% -Halt podinfo.test advancement request duration 1.20s > 500ms -Halt podinfo.test advancement request duration 1.45s > 500ms -Rolling back podinfo.test failed checks threshold reached 5 -Canary failed! Scaling down podinfo.test -``` - -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 Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) - -## A/B Testing - -Besides weighted routing, Flagger can be configured to route traffic to the canary based on HTTP match conditions. -In an A/B testing scenario, you'll be using HTTP headers or cookies to target a certain segment of your users. -This is particularly useful for frontend applications that require session affinity. - -![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) - -Edit the canary analysis, remove the max/step weight and add the match conditions and iterations: - -```yaml -analysis: - interval: 1m - threshold: 5 - iterations: 10 - match: - - headers: - x-canary: - exact: "insider" - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 1m -q 5 -c 5 -H 'X-Canary: insider' -host app.example.com http://envoy.projectcontour" -``` - -The above configuration will run an analysis for ten minutes targeting users that have a `X-Canary: insider` header. - -You can also use a HTTP cookie. To target all users with a cookie set to `insider`, the match condition should be: - -```yaml -match: -- headers: - cookie: - suffix: "insider" -webhooks: -- name: load-test - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 1m -q 5 -c 5 -H 'Cookie: canary=insider' -host app.example.com http://envoy.projectcontour" -``` - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.3 -``` - -Flagger detects that the deployment revision changed and starts the A/B test: - -```text -kubectl -n projectcontour logs deploy/flagger -f | jq .msg - -New revision detected! Starting canary analysis for podinfo.test -Advance podinfo.test canary iteration 1/10 -Advance podinfo.test canary iteration 2/10 -Advance podinfo.test canary iteration 3/10 -Advance podinfo.test canary iteration 4/10 -Advance podinfo.test canary iteration 5/10 -Advance podinfo.test canary iteration 6/10 -Advance podinfo.test canary iteration 7/10 -Advance podinfo.test canary iteration 8/10 -Advance podinfo.test canary iteration 9/10 -Advance podinfo.test canary iteration 10/10 -Copying podinfo.test template spec to podinfo-primary.test -Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available -Routing all traffic to primary -Promotion completed! Scaling down podinfo.test -``` - -The web browser user agent header allows user segmentation based on device or OS. - -For example, if you want to route all mobile users to the canary instance: - -```yaml -match: -- headers: - user-agent: - prefix: "Mobile" -``` - -Or if you want to target only Android users: - -```yaml -match: -- headers: - user-agent: - prefix: "Android" -``` - -Or a specific browser version: - -```yaml -match: -- headers: - user-agent: - suffix: "Firefox/71.0" -``` - -For an in-depth look at the analysis process read the [usage docs](../usage/how-it-works.md). diff --git a/docs/tutorials/crossover-progressive-delivery.md b/docs/tutorials/crossover-progressive-delivery.md deleted file mode 100644 index 8f92bfa0..00000000 --- a/docs/tutorials/crossover-progressive-delivery.md +++ /dev/null @@ -1,324 +0,0 @@ -# Crossover Canary Deployments - -This guide shows you how to use Envoy, [Crossover](https://github.com/mumoshu/crossover) and Flagger to automate canary deployments. - -Crossover is a minimal Envoy xDS implementation supports [Service Mesh Interface](https://smi-spec.io/). - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Envoy paired with [Crossover](https://github.com/mumoshu/crossover) sidecar. - -Create a test namespace: - -```bash -kubectl create ns test -``` - -Install Envoy along with the Crossover sidecar with Helm: - -```bash -helm repo add crossover https://mumoshu.github.io/crossover - -helm upgrade --install envoy crossover/envoy \ - --namespace test \ - -f <(cat < 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 -``` - -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 Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) - diff --git a/docs/tutorials/flagger-smi-istio.md b/docs/tutorials/flagger-smi-istio.md deleted file mode 100644 index 90291e48..00000000 --- a/docs/tutorials/flagger-smi-istio.md +++ /dev/null @@ -1,295 +0,0 @@ -# SMI Istio Canary Deployments - -This guide shows you how to use the SMI Istio adapter and Flagger to automate canary deployments. - -## Prerequisites - -* Kubernetes > 1.13 -* Istio > 1.0 - -## Install Istio SMI adapter - -Install the SMI adapter: - -```bash -kubectl apply -f https://raw.githubusercontent.com/deislabs/smi-adapter-istio/master/deploy/crds/crds.yaml -kubectl apply -f https://raw.githubusercontent.com/deislabs/smi-adapter-istio/master/deploy/operator-and-rbac.yaml -``` - -Create a generic Istio gateway to expose services outside the mesh on HTTP: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: Gateway -metadata: - name: public-gateway - namespace: istio-system -spec: - selector: - istio: ingressgateway - servers: - - port: - number: 80 - name: http - protocol: HTTP - hosts: - - "*" -``` - -Save the above resource as public-gateway.yaml and then apply it: - -```bash -kubectl apply -f ./public-gateway.yaml -``` - -Find the Gateway load balancer IP and add a DNS record for it: - -```bash -kubectl -n istio-system get svc/istio-ingressgateway -ojson | jq -r .status.loadBalancer.ingress[0].ip -``` - -## Install Flagger and Grafana - -Add Flagger Helm repository: - -```bash -helm repo add flagger https://flagger.app -``` - -Deploy Flagger in the _**istio-system**_ namespace: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace=istio-system \ ---set meshProvider=smi:istio -``` - -Flagger comes with a Grafana dashboard made for monitoring the canary deployments. - -Deploy Grafana in the _**istio-system**_ namespace: - -```bash -helm upgrade -i flagger-grafana flagger/grafana \ ---namespace=istio-system \ ---set url=http://prometheus.istio-system:9090 -``` - -You can access Grafana using port forwarding: - -```bash -kubectl -n istio-system port-forward svc/flagger-grafana 3000:80 -``` - -## Workloads bootstrap - -Create a test namespace with Istio sidecar injection enabled: - -Create a test namespace and enable Linkerd proxy injection: - -```bash -kubectl create ns test -kubectl label namespace test istio-injection=enabled -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -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/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # container port - port: 9898 - # Istio gateways (optional) - gateways: - - public-gateway.istio-system.svc.cluster.local - # Istio virtual service host names (optional) - hosts: - - app.example.com - analysis: - # schedule interval (default 60s) - interval: 10s - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 10 - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # generate traffic during analysis - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://podinfo.test:9898/" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -trafficsplits.split.smi-spec.io/podinfo -``` - -## Automated canary promotion - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring key performance indicators like HTTP requests success rate, requests average duration and pod health. Based on analysis of the KPIs a canary is promoted or aborted, and the analysis result is published to Slack. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=quay.io/stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n istio-system logs deployment/flagger -f | jq .msg - - -New revision detected podinfo.test -Scaling up podinfo.test -Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Advance podinfo.test canary weight 20 -Advance podinfo.test canary weight 25 -Advance podinfo.test canary weight 30 -Advance podinfo.test canary weight 35 -Advance podinfo.test canary weight 40 -Advance podinfo.test canary weight 45 -Advance podinfo.test canary weight 50 -Copying podinfo.test template spec to podinfo-primary.test -Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available -Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -During the analysis the canary’s progress can be monitored with Grafana. The Istio dashboard URL is [http://localhost:3000/d/flagger-istio/istio-canary?refresh=10s&orgId=1&var-namespace=test&var-primary=podinfo-primary&var-canary=podinfo](http://localhost:3000/d/flagger-istio/istio-canary?refresh=10s&orgId=1&var-namespace=test&var-primary=podinfo-primary&var-canary=podinfo) - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-05-16T14:05:07Z -prod frontend Succeeded 0 2019-05-15T16:15:07Z -prod backend Failed 0 2019-05-14T17:05:07Z -``` - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors and high latency to test if Flagger pauses the rollout. - -Create a tester pod and exec into it: - -```bash -kubectl -n test run tester \ ---image=quay.io/stefanprodan/podinfo:3.1.2 \ --- ./podinfo --port=9898 - -kubectl -n test exec -it tester-xx-xx sh -``` - -Generate HTTP 500 errors: - -```bash -watch curl http://podinfo-canary:9898/status/500 -``` - -Generate latency: - -```bash -watch curl http://podinfo-canary:9898/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 10 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger Starting canary deployment for podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 55.06% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 47.00% < 99% - Normal Synced 2m flagger (combined from similar events): Halt podinfo.test advancement success rate 38.08% < 99% - Warning Synced 1m flagger Rolling back podinfo.test failed checks threshold reached 10 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - diff --git a/docs/tutorials/gloo-progressive-delivery.md b/docs/tutorials/gloo-progressive-delivery.md deleted file mode 100644 index d95e434c..00000000 --- a/docs/tutorials/gloo-progressive-delivery.md +++ /dev/null @@ -1,381 +0,0 @@ -# Gloo Canary Deployments - -This guide shows you how to use the [Gloo](https://gloo.solo.io/) ingress controller and Flagger to automate canary deployments. - -![Flagger Gloo Ingress Controller](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-gloo-overview.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Gloo ingress **1.3.5** or newer. - -Install Gloo with Helm v3: - -```bash -helm repo add gloo https://storage.googleapis.com/solo-public-helm -kubectl create ns gloo-system -helm upgrade -i gloo gloo/gloo \ ---namespace gloo-system -``` - -Install Flagger and the Prometheus add-on in the same namespace as Gloo: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger flagger/flagger \ ---namespace gloo-system \ ---set prometheus.install=true \ ---set meshProvider=gloo -``` - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services and Gloo upstream groups). -These objects expose the application outside the cluster and drive the canary analysis and promotion. - -Create a test namespace: - -```bash -kubectl create ns test -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl -n test apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -kubectl -n test apply -k github.com/weaveworks/flagger//kustomize/tester -``` - -Create an virtual service definition that references an upstream group that will be generated by Flagger -(replace `app.example.com` with your own domain): - -```yaml -apiVersion: gateway.solo.io/v1 -kind: VirtualService -metadata: - name: podinfo - namespace: test -spec: - virtualHost: - domains: - - 'app.example.com' - routes: - - matchers: - - prefix: / - routeAction: - upstreamGroup: - name: podinfo - namespace: test -``` - -Save the above resource as podinfo-virtualservice.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-virtualservice.yaml -``` - -Create a canary custom resource (replace `app.example.com` with your own domain): - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - provider: gloo - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # ClusterIP port number - port: 9898 - # container port number or name (optional) - targetPort: 9898 - analysis: - # schedule interval (default 60s) - interval: 10s - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 5 - # Gloo Prometheus checks - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # testing (optional) - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 10s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary:9898/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "hey -z 2m -q 5 -c 2 -host app.example.com http://gateway-proxy.gloo-system" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -virtualservices.gateway.solo.io/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -upstreamgroups.gloo.solo.io/podinfo -``` - -When the bootstrap finishes Flagger will set the canary status to initialized: - -```bash -kubectl -n test get canary podinfo - -NAME STATUS WEIGHT LASTTRANSITIONTIME -podinfo Initialized 0 2019-05-17T08:09:51Z -``` - -## Automated canary promotion - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring -key performance indicators like HTTP requests success rate, requests average duration and pod health. -Based on analysis of the KPIs a canary is promoted or aborted, and the analysis result is published to Slack. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Scaling up podinfo.test - Warning Synced 3m flagger Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 2m flagger Advance podinfo.test canary weight 20 - Normal Synced 2m flagger Advance podinfo.test canary weight 25 - Normal Synced 1m flagger Advance podinfo.test canary weight 30 - Normal Synced 1m flagger Advance podinfo.test canary weight 35 - Normal Synced 55s flagger Advance podinfo.test canary weight 40 - Normal Synced 45s flagger Advance podinfo.test canary weight 45 - Normal Synced 35s flagger Advance podinfo.test canary weight 50 - Normal Synced 25s flagger Copying podinfo.test template spec to podinfo-primary.test - Warning Synced 15s flagger Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Normal Synced 5s flagger Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-05-17T14:05:07Z -prod frontend Succeeded 0 2019-05-17T16:15:07Z -prod backend Failed 0 2019-05-17T17:05:07Z -``` - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors and high latency to test if Flagger pauses and rolls back the faulted version. - -Trigger another canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Generate HTTP 500 errors: - -```bash -watch curl -H 'Host: app.example.com' http://gateway-proxy-v2.gloo-system/status/500 -``` - -Generate high latency: - -```bash -watch curl -H 'Host: app.example.com' http://gateway-proxy-v2.gloo-system/delay/2 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 10 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger Starting canary deployment for podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 55.06% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 47.00% < 99% - Normal Synced 2m flagger (combined from similar events): Halt podinfo.test advancement success rate 38.08% < 99% - Warning Synced 1m flagger Rolling back podinfo.test failed checks threshold reached 10 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - -## Custom metrics - -The canary analysis can be extended with Prometheus queries. - -The demo app is instrumented with Prometheus so you can create a custom check that will use -the HTTP request duration histogram to validate the canary. - -Create a metric template and apply it on the cluster: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: not-found-percentage - namespace: test -spec: - provider: - type: prometheus - address: http://flagger-promethues.gloo-system:9090 - query: | - 100 - sum( - rate( - http_request_duration_seconds_count{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - status!="{{ interval }}" - }[1m] - ) - ) - / - sum( - rate( - http_request_duration_seconds_count{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - }[{{ interval }}] - ) - ) * 100 -``` - -Edit the canary analysis and add the following metric: - -```yaml - analysis: - metrics: - - name: "404s percentage" - templateRef: - name: not-found-percentage - thresholdRange: - max: 5 - interval: 1m -``` - -The above configuration validates the canary by checking if the HTTP 404 req/sec percentage is -below 5 percent of the total traffic. If the 404s rate reaches the 5% threshold, then the canary fails. - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.3 -``` - -Generate 404s: - -```bash -watch curl -H 'Host: app.example.com' http://gateway-proxy.gloo-system/status/400 -``` - -Watch Flagger logs: - -```text -kubectl -n gloo-system logs deployment/flagger -f | jq .msg - -Starting canary deployment for podinfo.test -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Halt podinfo.test advancement 404s percentage 6.20 > 5 -Halt podinfo.test advancement 404s percentage 6.45 > 5 -Halt podinfo.test advancement 404s percentage 7.60 > 5 -Halt podinfo.test advancement 404s percentage 8.69 > 5 -Halt podinfo.test advancement 404s percentage 9.70 > 5 -Rolling back podinfo.test failed checks threshold reached 5 -Canary failed! Scaling down podinfo.test -``` - -If you have [alerting](../usage/alerting.md) configured, -Flagger will send a notification with the reason why the canary failed. - -For an in-depth look at the analysis process read the [usage docs](../usage/how-it-works.md). - diff --git a/docs/tutorials/istio-ab-testing.md b/docs/tutorials/istio-ab-testing.md deleted file mode 100644 index e47afce8..00000000 --- a/docs/tutorials/istio-ab-testing.md +++ /dev/null @@ -1,260 +0,0 @@ -# Istio A/B Testing - -This guide shows you how to automate A/B testing with Istio and Flagger. - -Besides weighted routing, Flagger can be configured to route traffic to the canary based on HTTP match conditions. -In an A/B testing scenario, you'll be using HTTP headers or cookies to target a certain segment of your users. -This is particularly useful for frontend applications that require session affinity. - -![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Istio **v1.0** or newer. - -Install Istio with telemetry support and Prometheus: - -```bash -istioctl manifest apply --set profile=default -``` - -Install Flagger using Kustomize (kubectl 1.14) in the `istio-system` namespace: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/istio -``` - -Create an ingress gateway to expose the demo app outside of the mesh: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: Gateway -metadata: - name: public-gateway - namespace: istio-system -spec: - selector: - istio: ingressgateway - servers: - - port: - number: 80 - name: http - protocol: HTTP - hosts: - - "*" -``` - -## Bootstrap - -Create a test namespace with Istio sidecar injection enabled: - -```bash -kubectl create ns test -kubectl label namespace test istio-injection=enabled -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -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/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # container port - port: 9898 - # Istio gateways (optional) - gateways: - - public-gateway.istio-system.svc.cluster.local - # Istio virtual service host names (optional) - hosts: - - app.example.com - # Istio traffic policy (optional) - trafficPolicy: - tls: - # use ISTIO_MUTUAL when mTLS is enabled - mode: DISABLE - analysis: - # schedule interval (default 60s) - interval: 1m - # total number of iterations - iterations: 10 - # max number of failed iterations before rollback - threshold: 2 - # canary match condition - match: - - headers: - user-agent: - regex: "^(?!.*Chrome).*Safari.*" - - headers: - cookie: - regex: "^(.*?;)?(type=insider)(;.*)?$" - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # generate traffic during analysis - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 -H 'Cookie: type=insider' http://podinfo.test:9898/" -``` - -The above configuration will run an analysis for ten minutes targeting Safari users and those that have an insider cookie. - -Save the above resource as podinfo-abtest.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-abtest.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -destinationrule.networking.istio.io/podinfo-canary -destinationrule.networking.istio.io/podinfo-primary -virtualservice.networking.istio.io/podinfo -``` - -## Automated canary promotion - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/abtest - -Status: - Failed Checks: 0 - Phase: Succeeded -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Scaling up podinfo.test - Warning Synced 3m flagger Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Normal Synced 3m flagger Advance podinfo.test canary iteration 1/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 2/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 3/10 - Normal Synced 2m flagger Advance podinfo.test canary iteration 4/10 - Normal Synced 2m flagger Advance podinfo.test canary iteration 5/10 - Normal Synced 1m flagger Advance podinfo.test canary iteration 6/10 - Normal Synced 1m flagger Advance podinfo.test canary iteration 7/10 - Normal Synced 55s flagger Advance podinfo.test canary iteration 8/10 - Normal Synced 45s flagger Advance podinfo.test canary iteration 9/10 - Normal Synced 35s flagger Advance podinfo.test canary iteration 10/10 - Normal Synced 25s flagger Copying podinfo.test template spec to podinfo-primary.test - Warning Synced 15s flagger Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Normal Synced 5s flagger Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 100 2019-03-16T14:05:07Z -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: - -```bash -watch curl -b 'type=insider' http://app.example.com/status/500 -``` - -Generate latency: - -```bash -watch curl -b 'type=insider' http://app.example.com/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Failed Checks: 2 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger Starting canary deployment for podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary iteration 1/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 2/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 3/10 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Warning Synced 2m flagger Rolling back podinfo.test failed checks threshold reached 2 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - -The above procedure can be extended with [custom metrics](../usage/metrics.md) checks, -[webhooks](../usage/webhooks.md), -[manual promotion](../usage/webhooks.md#manual-gating) approval and -[Slack or MS Teams](../usage/alerting.md) notifications. \ No newline at end of file diff --git a/docs/tutorials/istio-progressive-delivery.md b/docs/tutorials/istio-progressive-delivery.md deleted file mode 100644 index 413f4b40..00000000 --- a/docs/tutorials/istio-progressive-delivery.md +++ /dev/null @@ -1,373 +0,0 @@ -# Istio Canary Deployments - -This guide shows you how to use Istio and Flagger to automate canary deployments. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Istio **v1.0** or newer. - -Install Istio with telemetry support and Prometheus: - -```bash -istioctl manifest apply --set profile=default -``` - -Install Flagger using Kustomize (kubectl 1.14) in the `istio-system` namespace: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/istio -``` - -Create an ingress gateway to expose the demo app outside of the mesh: - -```yaml -apiVersion: networking.istio.io/v1alpha3 -kind: Gateway -metadata: - name: public-gateway - namespace: istio-system -spec: - selector: - istio: ingressgateway - servers: - - port: - number: 80 - name: http - protocol: HTTP - hosts: - - "*" -``` - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services, -Istio destination rules and virtual services). -These objects expose the application inside the mesh and drive the canary analysis and promotion. - -Create a test namespace with Istio sidecar injection enabled: - -```bash -kubectl create ns test -kubectl label namespace test istio-injection=enabled -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -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/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # service port number - port: 9898 - # container port number or name (optional) - targetPort: 9898 - # Istio gateways (optional) - gateways: - - public-gateway.istio-system.svc.cluster.local - # Istio virtual service host names (optional) - hosts: - - app.example.com - # Istio traffic policy (optional) - trafficPolicy: - tls: - # use ISTIO_MUTUAL when mTLS is enabled - mode: DISABLE - # Istio retry policy (optional) - retries: - attempts: 3 - perTryTimeout: 1s - retryOn: "gateway-error,connect-failure,refused-stream" - analysis: - # schedule interval (default 60s) - interval: 1m - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 10 - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # testing (optional) - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary:9898/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks before routing traffic to the canary. -The canary analysis will run for five minutes while validating the HTTP metrics and rollout hooks every minute. - -![Flagger Canary Process](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-hpa.png) - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -destinationrule.networking.istio.io/podinfo-canary -destinationrule.networking.istio.io/podinfo-primary -virtualservice.networking.istio.io/podinfo -``` - -## Automated canary promotion - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Scaling up podinfo.test - Warning Synced 3m flagger Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 2m flagger Advance podinfo.test canary weight 20 - Normal Synced 2m flagger Advance podinfo.test canary weight 25 - Normal Synced 1m flagger Advance podinfo.test canary weight 30 - Normal Synced 1m flagger Advance podinfo.test canary weight 35 - Normal Synced 55s flagger Advance podinfo.test canary weight 40 - Normal Synced 45s flagger Advance podinfo.test canary weight 45 - Normal Synced 35s flagger Advance podinfo.test canary weight 50 - Normal Synced 25s flagger Copying podinfo.test template spec to podinfo-primary.test - Warning Synced 15s flagger Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Normal Synced 5s flagger Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -A canary deployment is triggered by changes in any of the following objects: - -* Deployment PodSpec \(container image, command, ports, env, resources, etc\) -* ConfigMaps mounted as volumes or mapped to environment variables -* Secrets mounted as volumes or mapped to environment variables - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-01-16T14:05:07Z -prod frontend Succeeded 0 2019-01-15T16:15:07Z -prod backend Failed 0 2019-01-14T17:05:07Z -``` - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors and high latency to test if Flagger pauses the rollout. - -Trigger another canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Exec into the load tester pod with: - -```bash -kubectl -n test exec -it flagger-loadtester-xx-xx sh -``` - -Generate HTTP 500 errors: - -```bash -watch curl http://podinfo-canary:9898/status/500 -``` - -Generate latency: - -```bash -watch curl http://podinfo-canary:9898/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 10 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger Starting canary deployment for podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 55.06% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 47.00% < 99% - Normal Synced 2m flagger (combined from similar events): Halt podinfo.test advancement success rate 38.08% < 99% - Warning Synced 1m flagger Rolling back podinfo.test failed checks threshold reached 10 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - -## Traffic mirroring - -![Flagger Canary Traffic Shadowing](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-traffic-mirroring.png) - -For applications that perform read operations, Flagger can be configured to drive canary releases with traffic mirroring. -Istio traffic mirroring will copy each incoming request, sending one request to the primary and one to the canary service. -The response from the primary is sent back to the user and the response from the canary is discarded. -Metrics are collected on both requests so that the deployment will only proceed if the canary metrics are within the threshold values. - -Note that mirroring should be used for requests that are **idempotent** or capable of being processed twice (once by the primary and once by the canary). - -You can enable mirroring by replacing `stepWeight/maxWeight` with `iterations` and by setting `analysis.mirror` to `true`: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - analysis: - # schedule interval - interval: 1m - # max number of failed metric checks before rollback - threshold: 5 - # total number of iterations - iterations: 10 - # enable traffic shadowing - mirror: true - metrics: - - name: request-success-rate - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - thresholdRange: - max: 500 - interval: 1m - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary:9898/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://podinfo.test:9898/" -``` - -With the above configuration, Flagger will run a canary release with the following steps: - -* detect new revision (deployment spec, secrets or configmaps changes) -* scale from zero the canary deployment -* wait for the HPA to set the canary minimum replicas -* check canary pods health -* run the acceptance tests -* abort the canary release if tests fail -* start the load tests -* mirror traffic from primary to canary -* check request success rate and request duration every minute -* abort the canary release if the metrics check failure threshold is reached -* stop traffic mirroring after the number of iterations is reached -* route live traffic to the canary pods -* promote the canary (update the primary secrets, configmaps and deployment spec) -* wait for the primary deployment rollout to finish -* wait for the HPA to set the primary minimum replicas -* check primary pods health -* switch live traffic back to primary -* scale to zero the canary -* send notification with the canary analysis result - -The above procedure can be extended with [custom metrics](../usage/metrics.md) checks, -[webhooks](../usage/webhooks.md), -[manual promotion](../usage/webhooks.md#manual-gating) approval and -[Slack or MS Teams](../usage/alerting.md) notifications. diff --git a/docs/tutorials/kubernetes-blue-green.md b/docs/tutorials/kubernetes-blue-green.md deleted file mode 100644 index 0b9cac29..00000000 --- a/docs/tutorials/kubernetes-blue-green.md +++ /dev/null @@ -1,377 +0,0 @@ -# Blue/Green Deployments - -This guide shows you how to automate Blue/Green deployments with Flagger and Kubernetes. - -For applications that are not deployed on a service mesh, Flagger can orchestrate Blue/Green style deployments -with Kubernetes L4 networking. When using a service mesh blue/green can be used as -specified [here](../usage/deployment-strategies.md). - -![Flagger Blue/Green Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-bluegreen-steps.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer. - -Install Flagger and the Prometheus add-on: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger flagger/flagger \ ---namespace flagger \ ---set prometheus.install=true \ ---set meshProvider=kubernetes -``` - -If you already have a Prometheus instance running in your cluster, you can point Flagger to the ClusterIP service with: - -```bash -helm upgrade -i flagger flagger/flagger \ ---namespace flagger \ ---set metricsServer=http://prometheus.monitoring:9090 -``` - -Optionally you can enable Slack notifications: - -```bash -helm upgrade -i flagger flagger/flagger \ ---reuse-values \ ---namespace flagger \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=flagger -``` - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployment and ClusterIP services). -These objects expose the application inside the cluster and drive the canary analysis and Blue/Green promotion. - -Create a test namespace: - -```bash -kubectl create ns test -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the analysis: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/tester -``` - -Create a canary custom resource: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # service mesh provider can be: kubernetes, istio, appmesh, nginx, gloo - provider: kubernetes - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before rollback (default 600s) - progressDeadlineSeconds: 60 - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - port: 9898 - portDiscovery: true - analysis: - # schedule interval (default 60s) - interval: 30s - # max number of failed checks before rollback - threshold: 2 - # number of checks to run before rollback - iterations: 10 - # Prometheus checks based on - # http_request_duration_seconds histogram - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # acceptance/load testing hooks - webhooks: - - name: smoke-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 15s - metadata: - type: bash - cmd: "curl -sd 'anon' http://podinfo-canary.test:9898/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/" -``` - -The above configuration will run an analysis for five minutes. - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -``` - -Blue/Green scenario: - -* on bootstrap, Flagger will create three ClusterIP services (`app-primary`,`app-canary`, `app`) -and a shadow deployment named `app-primary` that represents the blue version -* when a new version is detected, Flagger would scale up the green version and run the conformance tests -(the tests should target the `app-canary` ClusterIP service to reach the green version) -* if the conformance tests are passing, Flagger would start the load tests and validate them with custom Prometheus queries -* if the load test analysis is successful, Flagger will promote the new version to `app-primary` and scale down the green version - -## Automated Blue/Green promotion - -Trigger a deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Events: - -New revision detected podinfo.test -Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available -Pre-rollout check acceptance-test passed -Advance podinfo.test canary iteration 1/10 -Advance podinfo.test canary iteration 2/10 -Advance podinfo.test canary iteration 3/10 -Advance podinfo.test canary iteration 4/10 -Advance podinfo.test canary iteration 5/10 -Advance podinfo.test canary iteration 6/10 -Advance podinfo.test canary iteration 7/10 -Advance podinfo.test canary iteration 8/10 -Advance podinfo.test canary iteration 9/10 -Advance podinfo.test canary iteration 10/10 -Copying podinfo.test template spec to podinfo-primary.test -Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available -Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 100 2019-06-16T14:05:07Z -prod frontend Succeeded 0 2019-06-15T16:15:07Z -prod backend Failed 0 2019-06-14T17:05:07Z -``` - -## Automated rollback - -During the analysis you can generate HTTP 500 errors and high latency to test Flagger's rollback. - -Exec into the load tester pod with: - -```bash -kubectl -n test exec -it flagger-loadtester-xx-xx sh -``` - -Generate HTTP 500 errors: - -```bash -watch curl http://podinfo-canary.test:9898/status/500 -``` - -Generate latency: - -```bash -watch curl http://podinfo-canary.test:9898/delay/1 -``` - -When the number of failed checks reaches the analysis threshold, the green version is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Failed Checks: 2 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary iteration 1/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 2/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 3/10 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Warning Synced 2m flagger Rolling back podinfo.test failed checks threshold reached 2 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - -## Custom metrics - -The analysis can be extended with Prometheus queries. The demo app is instrumented with Prometheus so you can -create a custom check that will use the HTTP request duration histogram to validate the canary (green version). - - -Create a metric template and apply it on the cluster: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: not-found-percentage - namespace: test -spec: - provider: - type: prometheus - address: http://flagger-promethues.flagger:9090 - query: | - 100 - sum( - rate( - http_request_duration_seconds_count{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - status!="{{ interval }}" - }[1m] - ) - ) - / - sum( - rate( - http_request_duration_seconds_count{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - }[{{ interval }}] - ) - ) * 100 -``` - -Edit the canary analysis and add the following metric: - -```yaml - analysis: - metrics: - - name: "404s percentage" - templateRef: - name: not-found-percentage - thresholdRange: - max: 5 - interval: 1m -``` - -The above configuration validates the canary (green version) by checking if the HTTP 404 req/sec percentage is -below 5 percent of the total traffic. If the 404s rate reaches the 5% threshold, then the rollout is rolled back. - -Trigger a deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.3 -``` - -Generate 404s: - -```bash -watch curl http://podinfo-canary.test:9898/status/400 -``` - -Watch Flagger logs: - -```text -kubectl -n flagger logs deployment/flagger -f | jq .msg - -New revision detected podinfo.test -Scaling up podinfo.test -Advance podinfo.test canary iteration 1/10 -Halt podinfo.test advancement 404s percentage 6.20 > 5 -Halt podinfo.test advancement 404s percentage 6.45 > 5 -Rolling back podinfo.test failed checks threshold reached 2 -Canary failed! Scaling down podinfo.test -``` - -If you have [alerting](../usage/alerting.md) configured, -Flagger will send a notification with the reason why the canary failed. - -## Conformance Testing with Helm - -Flagger comes with a testing service that can run Helm tests when configured as a pre-rollout webhook. - -Deploy the Helm test runner in the `kube-system` namespace using the `tiller` service account: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger-helmtester flagger/loadtester \ ---namespace=kube-system \ ---set serviceAccountName=tiller -``` - -When deployed the Helm tester API will be available at `http://flagger-helmtester.kube-system/`. - -Add a helm test pre-rollout hook to your chart: - -```yaml - analysis: - webhooks: - - name: "conformance testing" - type: pre-rollout - url: http://flagger-helmtester.kube-system/ - timeout: 3m - metadata: - type: "helm" - cmd: "test {{ .Release.Name }} --cleanup" -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks. -If the helm test fails, Flagger will retry until the analysis threshold is reached and the canary is rolled back. - -For an in-depth look at the analysis process read the [usage docs](../usage/how-it-works.md). - diff --git a/docs/tutorials/linkerd-progressive-delivery.md b/docs/tutorials/linkerd-progressive-delivery.md deleted file mode 100644 index 87c161d1..00000000 --- a/docs/tutorials/linkerd-progressive-delivery.md +++ /dev/null @@ -1,485 +0,0 @@ -# Linkerd Canary Deployments - -This guide shows you how to use Linkerd and Flagger to automate canary deployments. - -![Flagger Linkerd Traffic Split](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-linkerd-traffic-split.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and Linkerd **2.4** or newer. - -Install Flagger in the linkerd namespace: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/linkerd -``` - -Note that you'll need kubectl 1.14 or newer to run the above command. - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services and SMI traffic split). -These objects expose the application inside the mesh and drive the canary analysis and promotion. - -Create a test namespace and enable Linkerd proxy injection: - -```bash -kubectl create ns test -kubectl annotate namespace test linkerd.io/inject=enabled -``` - -Install the load testing service to generate traffic during the canary analysis: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/tester -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Create a canary custom resource for the podinfo deployment: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - service: - # ClusterIP port number - port: 9898 - # container port number or name (optional) - targetPort: 9898 - analysis: - # schedule interval (default 60s) - interval: 30s - # max number of failed metric checks before rollback - threshold: 5 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 5 - # Linkerd Prometheus checks - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 - interval: 30s - # testing (optional) - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary.test:9898/token | grep token" - - name: load-test - type: rollout - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 2m -q 10 -c 2 http://podinfo-canary.test:9898/" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks before routing traffic to the canary. -The canary analysis will run for five minutes while validating the HTTP metrics and rollout hooks every half a minute. - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -ingresses.extensions/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -trafficsplits.split.smi-spec.io/podinfo -``` - -After the boostrap, the podinfo deployment will be scaled to zero and the traffic to `podinfo.test` -will be routed to the primary pods. -During the canary analysis, the `podinfo-canary.test` address can be used to target directly the canary pods. - -## Automated canary promotion - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring -key performance indicators like HTTP requests success rate, requests average duration and pod health. -Based on analysis of the KPIs a canary is promoted or aborted, and the analysis result is published to Slack. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - New revision detected! Scaling up podinfo.test - Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Pre-rollout check acceptance-test passed - Advance podinfo.test canary weight 5 - Advance podinfo.test canary weight 10 - Advance podinfo.test canary weight 15 - Advance podinfo.test canary weight 20 - Advance podinfo.test canary weight 25 - Waiting for podinfo.test rollout to finish: 1 of 2 updated replicas are available - Advance podinfo.test canary weight 30 - Advance podinfo.test canary weight 35 - Advance podinfo.test canary weight 40 - Advance podinfo.test canary weight 45 - Advance podinfo.test canary weight 50 - Copying podinfo.test template spec to podinfo-primary.test - Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -A canary deployment is triggered by changes in any of the following objects: - -* Deployment PodSpec \(container image, command, ports, env, resources, etc\) -* ConfigMaps mounted as volumes or mapped to environment variables -* Secrets mounted as volumes or mapped to environment variables - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-06-30T14:05:07Z -prod frontend Succeeded 0 2019-06-30T16:15:07Z -prod backend Failed 0 2019-06-30T17:05:07Z -``` - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors and high latency to -test if Flagger pauses and rolls back the faulted version. - -Trigger another canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Exec into the load tester pod with: - -```bash -kubectl -n test exec -it flagger-loadtester-xx-xx sh -``` - -Generate HTTP 500 errors: - -```bash -watch -n 1 curl http://podinfo-canary.test:9898/status/500 -``` - -Generate latency: - -```bash -watch -n 1 curl http://podinfo-canary.test:9898/delay/1 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 10 - Phase: Failed -Events: - Starting canary analysis for podinfo.test - Pre-rollout check acceptance-test passed - Advance podinfo.test canary weight 5 - Advance podinfo.test canary weight 10 - Advance podinfo.test canary weight 15 - Halt podinfo.test advancement success rate 69.17% < 99% - Halt podinfo.test advancement success rate 61.39% < 99% - Halt podinfo.test advancement success rate 55.06% < 99% - Halt podinfo.test advancement request duration 1.20s > 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 not found errors. Edit the canary analysis and add the following metric: - -```yaml - analysis: - metrics: - - name: "404s percentage" - threshold: 3 - query: | - 100 - sum( - rate( - response_total{ - namespace="test", - deployment="podinfo", - status_code!="404", - direction="inbound" - }[1m] - ) - ) - / - sum( - rate( - response_total{ - namespace="test", - deployment="podinfo", - direction="inbound" - }[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 -``` - -Generate 404s: - -```bash -watch -n 1 curl http://podinfo-canary:9898/status/404 -``` - -Watch Flagger logs: - -```text -kubectl -n linkerd 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 -``` - -If you have Slack configured, Flagger will send a notification with the reason why the canary failed. - -## Linkerd Ingress - -There are two ingress controllers that are compatible with both Flagger and Linkerd: NGINX and Gloo. - -Install NGINX: - -```bash -helm upgrade -i nginx-ingress stable/nginx-ingress \ ---namespace ingress-nginx -``` - -Create an ingress definition for podinfo that rewrites the incoming header -to the internal service name (required by Linkerd): - -```yaml -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: podinfo - namespace: test - labels: - app: podinfo - annotations: - kubernetes.io/ingress.class: "nginx" - nginx.ingress.kubernetes.io/configuration-snippet: | - proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:9898; - proxy_hide_header l5d-remote-ip; - proxy_hide_header l5d-server-id; -spec: - rules: - - host: app.example.com - http: - paths: - - backend: - serviceName: podinfo - servicePort: 9898 -``` - -When using an ingress controller, the Linkerd traffic split does not apply to incoming traffic -since NGINX in running outside of the mesh. In order to run a canary analysis for a frontend app, -Flagger creates a shadow ingress and sets the NGINX specific annotations. - -## A/B Testing - -Besides weighted routing, Flagger can be configured to route traffic to the canary based on HTTP match conditions. -In an A/B testing scenario, you'll be using HTTP headers or cookies to target a certain segment of your users. -This is particularly useful for frontend applications that require session affinity. - -![Flagger Linkerd Ingress](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-nginx-linkerd.png) - -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/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - # ingress reference - provider: nginx - ingressRef: - apiVersion: extensions/v1beta1 - kind: Ingress - name: podinfo - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - service: - # container port - port: 9898 - analysis: - interval: 1m - threshold: 10 - iterations: 10 - match: - # curl -H 'X-Canary: always' http://app.example.com - - headers: - x-canary: - exact: "always" - # curl -b 'canary=always' http://app.example.com - - headers: - cookie: - exact: "canary" - # Linkerd Prometheus checks - metrics: - - name: request-success-rate - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - thresholdRange: - max: 500 - interval: 30s - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary:9898/token | grep token" - - name: load-test - type: rollout - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 2m -q 10 -c 2 -H 'Cookie: canary=always' http://app.example.com" -``` - -The above configuration will run an analysis for ten minutes targeting users that have -a `canary` cookie set to `always` or those that call the service using the `X-Canary: always` header. - -**Note** that the load test now targets the external address and uses the canary cookie. - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.4 -``` - -Flagger detects that the deployment revision changed and starts the A/B testing: - -```text -kubectl -n test describe canary/podinfo - -Events: - Starting canary deployment for podinfo.test - Pre-rollout check acceptance-test passed - Advance podinfo.test canary iteration 1/10 - Advance podinfo.test canary iteration 2/10 - Advance podinfo.test canary iteration 3/10 - Advance podinfo.test canary iteration 4/10 - Advance podinfo.test canary iteration 5/10 - Advance podinfo.test canary iteration 6/10 - Advance podinfo.test canary iteration 7/10 - Advance podinfo.test canary iteration 8/10 - Advance podinfo.test canary iteration 9/10 - Advance podinfo.test canary iteration 10/10 - Copying podinfo.test template spec to podinfo-primary.test - Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Promotion completed! Scaling down podinfo.test -``` - -The above procedure can be extended with [custom metrics](../usage/metrics.md) checks, -[webhooks](../usage/webhooks.md), -[manual promotion](../usage/webhooks.md#manual-gating) approval and -[Slack or MS Teams](../usage/alerting.md) notifications. \ No newline at end of file diff --git a/docs/tutorials/nginx-progressive-delivery.md b/docs/tutorials/nginx-progressive-delivery.md deleted file mode 100644 index f6d9de2f..00000000 --- a/docs/tutorials/nginx-progressive-delivery.md +++ /dev/null @@ -1,451 +0,0 @@ -# NGINX Canary Deployments - -This guide shows you how to use the NGINX ingress controller and Flagger to automate canary deployments and A/B testing. - -![Flagger NGINX Ingress Controller](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-nginx-overview.png) - -## Prerequisites - -Flagger requires a Kubernetes cluster **v1.11** or newer and NGINX ingress **0.24** or newer. - -Install NGINX with Helm v3: - -```bash -kubectl create ns ingress-nginx -helm upgrade -i nginx-ingress stable/nginx-ingress \ ---namespace ingress-nginx \ ---set controller.stats.enabled=true \ ---set controller.metrics.enabled=true \ ---set controller.podAnnotations."prometheus\.io/scrape"=true \ ---set controller.podAnnotations."prometheus\.io/port"=10254 -``` - -Install Flagger and the Prometheus add-on in the same namespace as NGINX: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger flagger/flagger \ ---namespace ingress-nginx \ ---set prometheus.install=true \ ---set meshProvider=nginx -``` - -Optionally you can enable Slack notifications: - -```bash -helm upgrade -i flagger flagger/flagger \ ---reuse-values \ ---namespace ingress-nginx \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=flagger -``` - -## Bootstrap - -Flagger takes a Kubernetes deployment and optionally a horizontal pod autoscaler (HPA), -then creates a series of objects (Kubernetes deployments, ClusterIP services and canary ingress). -These objects expose the application outside the cluster and drive the canary analysis and promotion. - -Create a test namespace: - -```bash -kubectl create ns test -``` - -Create a deployment and a horizontal pod autoscaler: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/podinfo -``` - -Deploy the load testing service to generate traffic during the canary analysis: - -```bash -helm upgrade -i flagger-loadtester flagger/loadtester \ ---namespace=test -``` - -Create an ingress definition \(replace `app.example.com` with your own domain\): - -```yaml -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: podinfo - namespace: test - labels: - app: podinfo - annotations: - kubernetes.io/ingress.class: "nginx" -spec: - rules: - - host: app.example.com - http: - paths: - - backend: - serviceName: podinfo - servicePort: 80 -``` - -Save the above resource as podinfo-ingress.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-ingress.yaml -``` - -Create a canary custom resource \(replace `app.example.com` with your own domain\): - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -metadata: - name: podinfo - namespace: test -spec: - provider: nginx - # deployment reference - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - # ingress reference - ingressRef: - apiVersion: extensions/v1beta1 - kind: Ingress - name: podinfo - # HPA reference (optional) - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo - # the maximum time in seconds for the canary deployment - # to make progress before it is rollback (default 600s) - progressDeadlineSeconds: 60 - service: - # ClusterIP port number - port: 80 - # container port number or name - targetPort: 9898 - analysis: - # schedule interval (default 60s) - interval: 10s - # max number of failed metric checks before rollback - threshold: 10 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 5 - # NGINX Prometheus checks - metrics: - - name: request-success-rate - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - interval: 1m - # testing (optional) - webhooks: - - name: acceptance-test - type: pre-rollout - url: http://flagger-loadtester.test/ - timeout: 30s - metadata: - type: bash - cmd: "curl -sd 'test' http://podinfo-canary/token | grep token" - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://app.example.com/" -``` - -Save the above resource as podinfo-canary.yaml and then apply it: - -```bash -kubectl apply -f ./podinfo-canary.yaml -``` - -After a couple of seconds Flagger will create the canary objects: - -```bash -# applied -deployment.apps/podinfo -horizontalpodautoscaler.autoscaling/podinfo -ingresses.extensions/podinfo -canary.flagger.app/podinfo - -# generated -deployment.apps/podinfo-primary -horizontalpodautoscaler.autoscaling/podinfo-primary -service/podinfo -service/podinfo-canary -service/podinfo-primary -ingresses.extensions/podinfo-canary -``` - -## Automated canary promotion - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring -key performance indicators like HTTP requests success rate, requests average duration and pod health. -Based on analysis of the KPIs a canary is promoted or aborted, and the analysis result is published to Slack or MS Teams. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.1 -``` - -Flagger detects that the deployment revision changed and starts a new rollout: - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 0 - Phase: Succeeded -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Scaling up podinfo.test - Warning Synced 3m flagger Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 2m flagger Advance podinfo.test canary weight 20 - Normal Synced 2m flagger Advance podinfo.test canary weight 25 - Normal Synced 1m flagger Advance podinfo.test canary weight 30 - Normal Synced 1m flagger Advance podinfo.test canary weight 35 - Normal Synced 55s flagger Advance podinfo.test canary weight 40 - Normal Synced 45s flagger Advance podinfo.test canary weight 45 - Normal Synced 35s flagger Advance podinfo.test canary weight 50 - Normal Synced 25s flagger Copying podinfo.test template spec to podinfo-primary.test - Warning Synced 15s flagger Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Normal Synced 5s flagger Promotion completed! Scaling down podinfo.test -``` - -**Note** that if you apply new changes to the deployment during the canary analysis, Flagger will restart the analysis. - -You can monitor all canaries with: - -```bash -watch kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-05-06T14:05:07Z -prod frontend Succeeded 0 2019-05-05T16:15:07Z -prod backend Failed 0 2019-05-04T17:05:07Z -``` - -## Automated rollback - -During the canary analysis you can generate HTTP 500 errors to test if Flagger pauses and rolls back the faulted version. - -Trigger another canary deployment: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.2 -``` - -Generate HTTP 500 errors: - -```bash -watch curl http://app.example.com/status/500 -``` - -When the number of failed checks reaches the canary analysis threshold, the traffic is routed back to the primary, -the canary is scaled to zero and the rollout is marked as failed. - -```text -kubectl -n test describe canary/podinfo - -Status: - Canary Weight: 0 - Failed Checks: 10 - Phase: Failed -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger Starting canary deployment for podinfo.test - Normal Synced 3m flagger Advance podinfo.test canary weight 5 - Normal Synced 3m flagger Advance podinfo.test canary weight 10 - Normal Synced 3m flagger Advance podinfo.test canary weight 15 - Normal Synced 3m flagger Halt podinfo.test advancement success rate 69.17% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 61.39% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 55.06% < 99% - Normal Synced 2m flagger Halt podinfo.test advancement success rate 47.00% < 99% - Normal Synced 2m flagger (combined from similar events): Halt podinfo.test advancement success rate 38.08% < 99% - Warning Synced 1m flagger Rolling back podinfo.test failed checks threshold reached 10 - Warning Synced 1m flagger Canary failed! Scaling down podinfo.test -``` - -## Custom metrics - -The canary analysis can be extended with Prometheus queries. - -The demo app is instrumented with Prometheus so you can create a custom check that will use the -HTTP request duration histogram to validate the canary. - -Create a metric template and apply it on the cluster: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: latency - namespace: test -spec: - provider: - type: prometheus - address: http://flagger-promethues.ingress-nginx:9090 - query: | - histogram_quantile(0.99, - sum( - rate( - http_request_duration_seconds_bucket{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - }[1m] - ) - ) by (le) - ) -``` - -Edit the canary analysis and add the latency check: - -```yaml - analysis: - metrics: - - name: "latency" - templateRef: - name: latency - thresholdRange: - max: 0.5 - interval: 1m -``` - -The threshold is set to 500ms so if the average request duration in the last minute goes over half a second -then the analysis will fail and the canary will not be promoted. - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.3 -``` - -Generate high response latency: - -```bash -watch curl http://app.exmaple.com/delay/2 -``` - -Watch Flagger logs: - -```text -kubectl -n nginx-ingress logs deployment/flagger -f | jq .msg - -Starting canary deployment for podinfo.test -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Halt podinfo.test advancement latency 1.20 > 0.5 -Halt podinfo.test advancement latency 1.45 > 0.5 -Halt podinfo.test advancement latency 1.60 > 0.5 -Halt podinfo.test advancement latency 1.69 > 0.5 -Halt podinfo.test advancement latency 1.70 > 0.5 -Rolling back podinfo.test failed checks threshold reached 5 -Canary failed! Scaling down podinfo.test -``` - -If you have alerting configured, Flagger will send a notification with the reason why the canary failed. - -## A/B Testing - -Besides weighted routing, Flagger can be configured to route traffic to the canary based on HTTP match conditions. -In an A/B testing scenario, you'll be using HTTP headers or cookies to target a certain segment of your users. -This is particularly useful for frontend applications that require session affinity. - -![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) - -Edit the canary analysis, remove the max/step weight and add the match conditions and iterations: - -```yaml - analysis: - interval: 1m - threshold: 10 - iterations: 10 - match: - # curl -H 'X-Canary: insider' http://app.example.com - - headers: - x-canary: - exact: "insider" - # curl -b 'canary=always' http://app.example.com - - headers: - cookie: - exact: "canary" - metrics: - - name: request-success-rate - thresholdRange: - min: 99 - interval: 1m - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - cmd: "hey -z 1m -q 10 -c 2 -H 'Cookie: canary=always' http://app.example.com/" -``` - -The above configuration will run an analysis for ten minutes targeting users that have a `canary` cookie -set to `always` or those that call the service using the `X-Canary: insider` header. - -Trigger a canary deployment by updating the container image: - -```bash -kubectl -n test set image deployment/podinfo \ -podinfod=stefanprodan/podinfo:3.1.4 -``` - -Flagger detects that the deployment revision changed and starts the A/B testing: - -```text -kubectl -n test describe canary/podinfo - -Status: - Failed Checks: 0 - Phase: Succeeded -Events: - Type Reason Age From Message - ---- ------ ---- ---- ------- - Normal Synced 3m flagger New revision detected podinfo.test - Normal Synced 3m flagger Scaling up podinfo.test - Warning Synced 3m flagger Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available - Normal Synced 3m flagger Advance podinfo.test canary iteration 1/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 2/10 - Normal Synced 3m flagger Advance podinfo.test canary iteration 3/10 - Normal Synced 2m flagger Advance podinfo.test canary iteration 4/10 - Normal Synced 2m flagger Advance podinfo.test canary iteration 5/10 - Normal Synced 1m flagger Advance podinfo.test canary iteration 6/10 - Normal Synced 1m flagger Advance podinfo.test canary iteration 7/10 - Normal Synced 55s flagger Advance podinfo.test canary iteration 8/10 - Normal Synced 45s flagger Advance podinfo.test canary iteration 9/10 - Normal Synced 35s flagger Advance podinfo.test canary iteration 10/10 - Normal Synced 25s flagger Copying podinfo.test template spec to podinfo-primary.test - Warning Synced 15s flagger Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available - Normal Synced 5s flagger Promotion completed! Scaling down podinfo.test -``` - -The above procedure can be extended with [custom metrics](../usage/metrics.md) checks, -[webhooks](../usage/webhooks.md), -[manual promotion](../usage/webhooks.md#manual-gating) approval and -[Slack or MS Teams](../usage/alerting.md) notifications. diff --git a/docs/tutorials/zero-downtime-deployments.md b/docs/tutorials/zero-downtime-deployments.md deleted file mode 100644 index e72e4f95..00000000 --- a/docs/tutorials/zero-downtime-deployments.md +++ /dev/null @@ -1,185 +0,0 @@ -# Zero downtime deployments - -This is a list of things you should consider when dealing with a high traffic production environment if you want to minimise the impact of rolling updates and downscaling. - -## Deployment strategy - -Limit the number of unavailable pods during a rolling update: - -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - progressDeadlineSeconds: 120 - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 0 -``` - -The default progress deadline for a deployment is ten minutes. You should consider adjusting this value to make the deployment process fail faster. - -## Liveness health check - -You application should expose a HTTP endpoint that Kubernetes can call to determine if your app transitioned to a broken state from which it can't recover and needs to be restarted. - -```yaml -livenessProbe: - exec: - command: - - wget - - --quiet - - --tries=1 - - --timeout=4 - - --spider - - http://localhost:8080/healthz - timeoutSeconds: 5 - initialDelaySeconds: 5 -``` - -If you've enabled mTLS, you'll have to use `exec` for liveness and readiness checks since kubelet is not part of the service mesh and doesn't have access to the TLS cert. - -## Readiness health check - -You application should expose a HTTP endpoint that Kubernetes can call to determine if your app is ready to receive traffic. - -```yaml -readinessProbe: - exec: - command: - - wget - - --quiet - - --tries=1 - - --timeout=4 - - --spider - - http://localhost:8080/readyz - timeoutSeconds: 5 - initialDelaySeconds: 5 - periodSeconds: 5 -``` - -If your app depends on external services, you should check if those services are available before allowing Kubernetes to route traffic to an app instance. Keep in mind that the Envoy sidecar can have a slower startup than your app. This means that on application start you should retry for at least a couple of seconds any external connection. - -## Graceful shutdown - -Before a pod gets terminated, Kubernetes sends a `SIGTERM` signal to every container and waits for period of time \(30s by default\) for all containers to exit gracefully. If your app doesn't handle the `SIGTERM` signal or if it doesn't exit within the grace period, Kubernetes will kill the container and any inflight requests that your app is processing will fail. - -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - template: - spec: - terminationGracePeriodSeconds: 60 - containers: - - name: app - lifecycle: - preStop: - exec: - command: - - sleep - - "10" -``` - -Your app container should have a `preStop` hook that delays the container shutdown. This will allow the service mesh to drain the traffic and remove this pod from all other Envoy sidecars before your app becomes unavailable. - -## Delay Envoy shutdown - -Even if your app reacts to `SIGTERM` and tries to complete the inflight requests before shutdown, that doesn't mean that the response will make it back to the caller. If the Envoy sidecar shuts down before your app, then the caller will receive a 503 error. - -To mitigate this issue you can add a `preStop` hook to the Istio proxy and wait for the main app to exist before Envoy exists. - -```bash -#!/bin/bash -set -e -if ! pidof envoy &>/dev/null; then - exit 0 -fi - -if ! pidof pilot-agent &>/dev/null; then - exit 0 -fi - -while [ $(netstat -plunt | grep tcp | grep -v envoy | wc -l | xargs) -ne 0 ]; do - sleep 1; -done - -exit 0 -``` - -You'll have to build your own Envoy docker image with the above script and modify the Istio injection webhook with the `preStop` directive. - -Thanks to Stono for his excellent [tips](https://github.com/istio/istio/issues/12183) on minimising 503s. - -## Resource requests and limits - -Setting CPU and memory requests/limits for all workloads is a mandatory step if you're running a production system. Without limits your nodes could run out of memory or become unresponsive due to CPU exhausting. Without CPU and memory requests, the Kubernetes scheduler will not be able to make decisions about which nodes to place pods on. - -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - template: - spec: - containers: - - name: app - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 100m - memory: 128Mi -``` - -Note that without resource requests the horizontal pod autoscaler can't determine when to scale your app. - -## Autoscaling - -A production environment should be able to handle traffic bursts without impacting the quality of service. This can be achieved with Kubernetes autoscaling capabilities. Autoscaling in Kubernetes has two dimensions: the Cluster Autoscaler that deals with node scaling operations and the Horizontal Pod Autoscaler that automatically scales the number of pods in a deployment. - -```yaml -apiVersion: autoscaling/v2beta1 -kind: HorizontalPodAutoscaler -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: app - minReplicas: 2 - maxReplicas: 4 - metrics: - - type: Resource - resource: - name: cpu - targetAverageValue: 900m - - type: Resource - resource: - name: memory - targetAverageValue: 768Mi -``` - -The above HPA ensures your app will be scaled up before the pods reach the CPU or memory limits. - -## Ingress retries - -To minimise the impact of downscaling operations you can make use of Envoy retry capabilities. - -```yaml -apiVersion: flagger.app/v1beta1 -kind: Canary -spec: - service: - port: 9898 - gateways: - - public-gateway.istio-system.svc.cluster.local - hosts: - - app.example.com - retries: - attempts: 10 - perTryTimeout: 5s - retryOn: "gateway-error,connect-failure,refused-stream" -``` - -When the HPA scales down your app, your users could run into 503 errors. The above configuration will make Envoy retry the HTTP requests that failed due to gateway errors. - diff --git a/docs/usage/README.md b/docs/usage/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/usage/alerting.md b/docs/usage/alerting.md deleted file mode 100644 index d5c26cae..00000000 --- a/docs/usage/alerting.md +++ /dev/null @@ -1,128 +0,0 @@ -# Alerting - -Flagger can be configured to send alerts to various chat platforms. You can define a global alert provider at -install time or configure alerts on a per canary basis. - -## Global configuration - -Flagger can be configured to send Slack notifications: - -```bash -helm upgrade -i flagger flagger/flagger \ ---set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \ ---set slack.channel=general \ ---set slack.user=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. - -![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: - -![Slack Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/slack-canary-failed.png) - -Flagger can be configured to send notifications to Microsoft Teams: - -```bash -helm upgrade -i flagger flagger/flagger \ ---set msteams.url=https://outlook.office.com/webhook/YOUR/TEAMS/WEBHOOK -``` - -Similar to Slack, Flagger alerts on canary analysis events: - -![MS Teams Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/flagger-ms-teams-notifications.png) - -![MS Teams Notifications](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/screens/flagger-ms-teams-failed.png) - -## Canary configuration - -Configuring alerting globally has several limitations as it's not possible to specify different channels -or configure the verbosity on a per canary basis. -To make the alerting move flexible, the canary analysis can be extended -with a list of alerts that reference an alert provider. -For each alert, users can configure the severity level. -The alerts section overrides the global setting. - -Slack example: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: AlertProvider -metadata: - name: on-call - namespace: flagger -spec: - type: slack - channel: on-call-alerts - username: flagger - # webhook address (ignored if secretRef is specified) - address: https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK - # secret containing the webhook address (optional) - secretRef: - name: on-call-url ---- -apiVersion: v1 -kind: Secret -metadata: - name: on-call-url - namespace: flagger -data: - address: -``` - -The alert provider **type** can be: `slack`, `msteams`, `rocket` or `discord`. When set to `discord`, -Flagger will use [Slack formatting](https://birdie0.github.io/discord-webhooks-guide/other/slack_formatting.html) -and will append `/slack` to the Discord address. - -When not specified, **channel** defaults to `general` and **username** defaults to `flagger`. - -When **secretRef** is specified, the Kubernetes secret must contain a data field named `address`, -the address in the secret will take precedence over the **address** field in the provider spec. - -The canary analysis can have a list of alerts, each alert referencing an alert provider: - -```yaml - analysis: - alerts: - - name: "on-call Slack" - severity: error - providerRef: - name: on-call - namespace: flagger - - name: "qa Discord" - severity: warn - providerRef: - name: qa-discord - - name: "dev MS Teams" - severity: info - providerRef: - name: dev-msteams -``` - -Alert fields: -* **name** (required) -* **severity** levels: `info`, `warn`, `error` (default info) -* **providerRef.name** alert provider name (required) -* **providerRef.namespace** alert provider namespace (defaults to the canary namespace) - -When the severity is set to `warn`, Flagger will alert when waiting on manual confirmation or if the analysis fails. -When the severity is set to `error`, Flagger will alert only if the canary analysis fails. - -## Prometheus Alert Manager - -You can use Alertmanager to trigger alerts when a canary deployment failed: - -```yaml - - alert: canary_rollback - expr: flagger_canary_status > 1 - for: 1m - labels: - severity: warning - annotations: - summary: "Canary failed" - description: "Workload {{ $labels.name }} namespace {{ $labels.namespace }}" -``` - diff --git a/docs/usage/deployment-strategies.md b/docs/usage/deployment-strategies.md deleted file mode 100644 index 21e836ce..00000000 --- a/docs/usage/deployment-strategies.md +++ /dev/null @@ -1,305 +0,0 @@ -# Deployment Strategies - -Flagger can run automated application analysis, promotion and rollback for the following deployment strategies: -* **Canary Release** (progressive traffic shifting) - * Istio, Linkerd, App Mesh, NGINX, Contour, Gloo -* **A/B Testing** (HTTP headers and cookies traffic routing) - * Istio, App Mesh, NGINX, Contour -* **Blue/Green** (traffic switching) - * Kubernetes CNI, Istio, Linkerd, App Mesh, NGINX, Contour, Gloo -* **Blue/Green Mirroring** (traffic shadowing) - * Istio - -For Canary releases and A/B testing you'll need a Layer 7 traffic management solution like a service mesh or an ingress controller. -For Blue/Green deployments no service mesh or ingress controller is required. - -A canary analysis is triggered by changes in any of the following objects: - -* Deployment PodSpec (container image, command, ports, env, resources, etc) -* ConfigMaps mounted as volumes or mapped to environment variables -* Secrets mounted as volumes or mapped to environment variables - -## Canary Release - -Flagger implements a control loop that gradually shifts traffic to the canary while measuring key performance -indicators like HTTP requests success rate, requests average duration and pod health. -Based on analysis of the KPIs a canary is promoted or aborted. - -![Flagger Canary Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-canary-steps.png) - -The canary analysis runs periodically until it reaches the maximum traffic weight or the failed checks threshold. - -Spec: - -```yaml - analysis: - # schedule interval (default 60s) - interval: 1m - # max number of failed metric checks before rollback - threshold: 10 - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: 50 - # canary increment step - # percentage (0-100) - stepWeight: 2 - # deploy straight to production without - # the metrics and webhook checks - skipAnalysis: false -``` - -The above analysis, if it succeeds, will run for 25 minutes while validating the HTTP metrics and webhooks every minute. -You can determine the minimum time that it takes to validate and promote a canary deployment using this formula: - -``` -interval * (maxWeight / stepWeight) -``` - -And the time it takes for a canary to be rollback when the metrics or webhook checks are failing: - -``` -interval * threshold -``` - -In emergency cases, you may want to skip the analysis phase and ship changes directly to production. -At any time you can set the `spec.skipAnalysis: true`. -When skip analysis is enabled, Flagger checks if the canary deployment is healthy and -promotes it without analysing it. If an analysis is underway, Flagger cancels it and runs the promotion. - -Gated canary promotion stages: - -* scan for canary deployments -* check primary and canary deployment status - * halt advancement if a rolling update is underway - * halt advancement if pods are unhealthy -* call confirm-rollout webhooks and check results - * halt advancement if any hook returns a non HTTP 2xx result -* call pre-rollout webhooks and check results - * halt advancement if any hook returns a non HTTP 2xx result - * increment the failed checks counter -* increase canary traffic weight percentage from 0% to 2% (step weight) -* call rollout webhooks and check results -* check canary HTTP request success rate and latency - * halt advancement if any metric is under the specified threshold - * increment the failed checks counter -* check if the number of failed checks reached the threshold - * route all traffic to primary - * scale to zero the canary deployment and mark it as failed - * call post-rollout webhooks - * post the analysis result to Slack - * wait for the canary deployment to be updated and start over -* increase canary traffic weight by 2% (step weight) till it reaches 50% (max weight) - * halt advancement if any webhook call fails - * halt advancement while canary request success rate is under the threshold - * halt advancement while canary request duration P99 is over the threshold - * halt advancement while any custom metric check fails - * halt advancement if the primary or canary deployment becomes unhealthy - * halt advancement while canary deployment is being scaled up/down by HPA -* call confirm-promotion webhooks and check results - * halt advancement if any hook returns a non HTTP 2xx result -* promote canary to primary - * copy ConfigMaps and Secrets from canary to primary - * copy canary deployment spec template over primary -* wait for primary rolling update to finish - * halt advancement if pods are unhealthy -* route all traffic to primary -* scale to zero the canary deployment -* mark rollout as finished -* call post-rollout webhooks -* send notification with the canary analysis result -* wait for the canary deployment to be updated and start over - -## A/B Testing - -For frontend applications that require session affinity you should use HTTP headers or cookies match conditions -to ensure a set of users will stay on the same version for the whole duration of the canary analysis. - -![Flagger A/B Testing Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-abtest-steps.png) - -You can enable A/B testing by specifying the HTTP match conditions and the number of iterations. -If Flagger finds a HTTP match condition, it will ignore the `maxWeight` and `stepWeight` settings. - -Istio example: - -```yaml - analysis: - # schedule interval (default 60s) - interval: 1m - # total number of iterations - iterations: 10 - # max number of failed iterations before rollback - threshold: 2 - # canary match condition - match: - - headers: - x-canary: - regex: ".*insider.*" - - headers: - cookie: - regex: "^(.*?;)?(canary=always)(;.*)?$" -``` - -The above configuration will run an analysis for ten minutes targeting the Safari users and those that have a test cookie. -You can determine the minimum time that it takes to validate and promote a canary deployment using this formula: - -``` -interval * iterations -``` - -And the time it takes for a canary to be rollback when the metrics or webhook checks are failing: - -``` -interval * threshold -``` - -App Mesh example: - -```yaml - analysis: - interval: 1m - threshold: 10 - iterations: 2 - match: - - headers: - user-agent: - regex: ".*Chrome.*" -``` - -Note that App Mesh supports a single condition. - -Contour example: - -```yaml - analysis: - interval: 1m - threshold: 10 - iterations: 2 - match: - - headers: - user-agent: - prefix: "Chrome" -``` - -Note that Contour does not support regex, you can use prefix, suffix or exact. - -NGINX example: - -```yaml - analysis: - interval: 1m - threshold: 10 - iterations: 2 - match: - - headers: - x-canary: - exact: "insider" - - headers: - cookie: - exact: "canary" -``` - -Note that the NGINX ingress controller supports only exact matching for a single header and the cookie value is set to `always`. - -The above configurations will route users with the x-canary header or canary cookie to the canary instance during analysis: - -```bash -curl -H 'X-Canary: insider' http://app.example.com -curl -b 'canary=always' http://app.example.com -``` - -## Blue/Green Deployments - -For applications that are not deployed on a service mesh, Flagger can orchestrate blue/green style deployments -with Kubernetes L4 networking. When using Istio you have the option to mirror traffic between blue and green. - -![Flagger Blue/Green Stages](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-bluegreen-steps.png) - -You can use the blue/green deployment strategy by replacing `stepWeight/maxWeight` with `iterations` in the `canaryAnalysis` spec: - -```yaml - analysis: - # schedule interval (default 60s) - interval: 1m - # total number of iterations - iterations: 10 - # max number of failed iterations before rollback - threshold: 2 -``` - -With the above configuration Flagger will run conformance and load tests on the canary pods for ten minutes. -If the metrics analysis succeeds, live traffic will be switched from the old version to the new one when the -canary is promoted. - -The blue/green deployment strategy is supported for all service mesh providers. - -Blue/Green rollout steps for service mesh: -* detect new revision (deployment spec, secrets or configmaps changes) -* scale up the canary (green) -* run conformance tests for the canary pods -* run load tests and metric checks for the canary pods every minute -* abort the canary release if the failure threshold is reached -* route traffic to canary -* promote canary spec over primary (blue) -* wait for primary rollout -* route traffic to primary -* scale down canary - -After the analysis finishes, the traffic is routed to the canary (green) before triggering the primary (blue) -rolling update, this ensures a smooth transition to the new version avoiding dropping in-flight requests during -the Kubernetes deployment rollout. - -## Blue/Green with Traffic Mirroring - -Traffic Mirroring is a pre-stage in a Canary (progressive traffic shifting) or -Blue/Green deployment strategy. Traffic mirroring will copy each incoming -request, sending one request to the primary and one to the canary service. -The response from the primary is sent back to the user. The response from the canary -is discarded. Metrics are collected on both requests so that the deployment will -only proceed if the canary metrics are healthy. - -Mirroring should be used for requests that are **idempotent** or capable of -being processed twice (once by the primary and once by the canary). Reads are -idempotent. Before using mirroring on requests that may be writes, you should -consider what will happen if a write is duplicated and handled by the primary -and canary. - -To use mirroring, set `spec.canaryAnalysis.mirror` to `true`. - -Istio example: - -```yaml - analysis: - # schedule interval (default 60s) - interval: 1m - # total number of iterations - iterations: 10 - # max number of failed iterations before rollback - threshold: 2 - # Traffic shadowing (compatible with Istio only) - mirror: true -``` - -Mirroring rollout steps for service mesh: -* detect new revision (deployment spec, secrets or configmaps changes) -* scale from zero the canary deployment -* wait for the HPA to set the canary minimum replicas -* check canary pods health -* run the acceptance tests -* abort the canary release if tests fail -* start the load tests -* mirror traffic from primary to canary -* check request success rate and request duration every minute -* abort the canary release if the failure threshold is reached -* stop traffic mirroring after the number of iterations is reached -* route live traffic to the canary pods -* promote the canary (update the primary secrets, configmaps and deployment spec) -* wait for the primary deployment rollout to finish -* wait for the HPA to set the primary minimum replicas -* check primary pods health -* switch live traffic back to primary -* scale to zero the canary -* send notification with the canary analysis result - -After the analysis finishes, the traffic is routed to the canary (green) before triggering the primary (blue) -rolling update, this ensures a smooth transition to the new version avoiding dropping in-flight requests during -the Kubernetes deployment rollout. \ No newline at end of file diff --git a/docs/usage/how-it-works.md b/docs/usage/how-it-works.md deleted file mode 100644 index adf6438f..00000000 --- a/docs/usage/how-it-works.md +++ /dev/null @@ -1,285 +0,0 @@ -# How it works - -[Flagger](https://github.com/weaveworks/flagger) can be configured to automate the release process -for Kubernetes workloads with a custom resource named canary. - -## Canary resource - -The canary custom resource defines the release process of an application running on Kubernetes -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/v1beta1 -kind: Canary -metadata: - name: podinfo -spec: - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - service: - port: 9898 - analysis: - interval: 1m - threshold: 10 - maxWeight: 50 - stepWeight: 5 - metrics: - - name: request-success-rate - thresholdRange: - min: 99 - interval: 1m - - name: request-duration - thresholdRange: - max: 500 - interval: 1m - webhooks: - - name: load-test - url: http://flagger-loadtester.test/ - metadata: - cmd: "hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/" -``` - -When you deploy a new version of an app, Flagger gradually shifts traffic to the canary, -and at the same time, measures the requests success rate as well as the average response duration. -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. - -Kubernetes Deployment example: - -```yaml -spec: - progressDeadlineSeconds: 60 - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: podinfo - autoscalerRef: - apiVersion: autoscaling/v2beta1 - kind: HorizontalPodAutoscaler - name: podinfo -``` - -Based on the above configuration, Flagger generates the following Kubernetes objects: - -* `deployment/-primary` -* `hpa/-primary` - -The primary deployment is considered the stable release of your app, by default all traffic is routed to this version -and the target deployment is scaled to zero. -Flagger will detect changes to the target deployment (including secrets and configmaps) and will perform a -canary analysis before promoting the new version as primary. - -If the target deployment uses secrets and/or configmaps, Flagger will create a copy of each object using the `-primary` -prefix and will reference these objects in the primary deployment. You can disable the secrets/configmaps tracking -with the `-enable-config-tracking=false` command flag in the Flagger deployment manifest under containers args -or by setting `--set configTracking.enabled=false` when installing Flagger with Helm. - -**Note** that the target deployment must have a single label selector in the format `app: `: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: podinfo -spec: - selector: - matchLabels: - app: podinfo - template: - metadata: - labels: - app: podinfo -``` - -Besides `app` Flagger supports `name` and `app.kubernetes.io/name` selectors. -If you use a different convention you can specify your label with -the `-selector-labels=my-app-label` command flag in the Flagger deployment manifest under containers args -or by setting `--set selectorLabels=my-app-label` when installing Flagger with Helm. - -The autoscaler reference is optional, when specified, Flagger will pause the traffic increase while the -target and primary deployments are scaled up or down. HPA can help reduce the resource usage during the canary analysis. - -The progress deadline represents the maximum time in seconds for the canary deployment to make progress -before it is rolled back, defaults to ten minutes. - -## Canary service - -A canary resource dictates how the target workload is exposed inside the cluster. -The canary target should expose a TCP port that will be used by Flagger to create the ClusterIP Services. - -```yaml -spec: - service: - name: podinfo - port: 9898 - portName: http - targetPort: 9898 - portDiscovery: true -``` - -The container port from the target workload should match the `service.port` or `service.targetPort`. -The `service.name` is optional, defaults to `spec.targetRef.name`. -The `service.targetPort` can be a container port number or name. -The `service.portName` is optional (defaults to `http`), if your workload uses gPRC then set the port name to `grcp`. - -If port discovery is enabled, Flagger scans the target workload and extracts the containers -ports excluding the port specified in the canary service and service mesh sidecar ports. -These ports will be used when generating the ClusterIP services. - -Based on the canary spec service, Flagger creates the following Kubernetes ClusterIP service: - -* `..svc.cluster.local` - selector `app=-primary` -* `-primary..svc.cluster.local` - selector `app=-primary` -* `-canary..svc.cluster.local` - selector `app=` - -This ensures that traffic to `podinfo.test:9898` will be routed to the latest stable release of your app. -The `podinfo-canary.test:9898` address is available only during the -canary analysis and can be used for conformance testing or load testing. - -Besides the port mapping, the service specification can contain URI match and rewrite rules, -timeout and retry polices: - -```yaml -spec: - service: - port: 9898 - match: - - uri: - prefix: / - rewrite: - uri: / - retries: - attempts: 3 - perTryTimeout: 1s - timeout: 5s -``` - -When using **Istio** as the mesh provider, you can also specify -HTTP header operations, CORS and traffic policies, Istio gateways and hosts. -The Istio routing configuration can be found [here](../faq.md#istio-routing). - -## Canary status - -You can use kubectl to get the current status of canary deployments cluster wide: - -```bash -kubectl get canaries --all-namespaces - -NAMESPACE NAME STATUS WEIGHT LASTTRANSITIONTIME -test podinfo Progressing 15 2019-06-30T14:05:07Z -prod frontend Succeeded 0 2019-06-30T16:15:07Z -prod backend Failed 0 2019-06-30T17:05:07Z -``` - -The status condition reflects the last known state of the canary analysis: - -```bash -kubectl -n test get canary/podinfo -oyaml | awk '/status/,0' -``` - -A successful rollout status: - -```yaml -status: - canaryWeight: 0 - failedChecks: 0 - iterations: 0 - lastAppliedSpec: "14788816656920327485" - lastPromotedSpec: "14788816656920327485" - conditions: - - lastTransitionTime: "2019-07-10T08:23:18Z" - lastUpdateTime: "2019-07-10T08:23:18Z" - message: Canary analysis completed successfully, promotion finished. - reason: Succeeded - status: "True" - type: Promoted -``` - -The `Promoted` status condition can have one of the following reasons: -Initialized, Waiting, Progressing, Promoting, Finalising, Succeeded or Failed. -A failed canary will have the promoted status set to `false`, -the reason to `failed` and the last applied spec will be different to the last promoted one. - -Wait for a successful rollout: - -```bash -kubectl wait canary/podinfo --for=condition=promoted -``` - -CI example: - -```bash -# update the container image -kubectl set image deployment/podinfo podinfod=stefanprodan/podinfo:3.0.1 - -# wait for Flagger to detect the change -ok=false -until ${ok}; do - kubectl get canary/podinfo | grep 'Progressing' && ok=true || ok=false - sleep 5 -done - -# wait for the canary analysis to finish -kubectl wait canary/podinfo --for=condition=promoted --timeout=5m - -# check if the deployment was successful -kubectl get canary/podinfo | grep Succeeded -``` - -## Canary analysis - -The canary analysis defines: -* the type of [deployment strategy](deployment-strategies.md) -* the [metrics](metrics.md) used to validate the canary version -* the [webhooks](webhooks.md) used for conformance testing, load testing and manual gating -* the [alerting settings](alerting.md) - -Spec: - -```yaml - analysis: - # schedule interval (default 60s) - interval: - # max number of failed metric checks before rollback - threshold: - # max traffic percentage routed to canary - # percentage (0-100) - maxWeight: - # canary increment step - # percentage (0-100) - stepWeight: - # total number of iterations - # used for A/B Testing and Blue/Green - iterations: - # canary match conditions - # used for A/B Testing - match: - - # HTTP header - # key performance indicators - metrics: - - # metric check - # alerting - alerts: - - # alert provider - # external checks - webhooks: - - # hook -``` - -The canary analysis runs periodically until it reaches the maximum traffic weight or the number of iterations. -On each run, Flagger calls the webhooks, checks the metrics and if the failed checks threshold is reached, stops the -analysis and rolls back the canary. If alerting is configured, Flagger will post the analysis result using the alert providers. diff --git a/docs/usage/metrics.md b/docs/usage/metrics.md deleted file mode 100644 index 5c18425a..00000000 --- a/docs/usage/metrics.md +++ /dev/null @@ -1,316 +0,0 @@ -# Metrics Analysis - -As part of the analysis process, Flagger can validate service level objectives (SLOs) like -availability, error rate percentage, average response time and any other objective based on app specific metrics. -If a drop in performance is noticed during the SLOs analysis, -the release will be automatically rolled back with minimum impact to end-users. - -## Builtin metrics - -Flagger comes with two builtin metric checks: HTTP request success rate and duration. - -```yaml - analysis: - metrics: - - name: request-success-rate - interval: 1m - # minimum req success rate (non 5xx responses) - # percentage (0-100) - thresholdRange: - min: 99 - - name: request-duration - interval: 1m - # maximum req duration P99 - # milliseconds - thresholdRange: - max: 500 -``` - -For each metric you can specify a range of accepted values with `thresholdRange` -and the window size or the time series with `interval`. -The builtin checks are available for every service mesh / ingress controller -and are implemented with [Prometheus queries](../faq.md#metrics). - -## Custom metrics - -The canary analysis can be extended with custom metric checks. Using a `MetricTemplate` custom resource, you -configure Flagger to connect to a metric provider and run a query that returns a `float64` value. -The query result is used to validate the canary based on the specified threshold range. - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: my-metric -spec: - provider: - type: # can be prometheus or datadog - address: # API URL - secretRef: - name: # name of the secret containing the API credentials - query: # metric query -``` - -The following variables are available in query templates: - -- `name` (canary.metadata.name) -- `namespace` (canary.metadata.namespace) -- `target` (canary.spec.targetRef.name) -- `service` (canary.spec.service.name) -- `ingress` (canary.spec.ingresRef.name) -- `interval` (canary.spec.canaryAnalysis.metrics[].interval) - -A canary analysis metric can reference a template with `templateRef`: - -```yaml - analysis: - metrics: - - name: "my metric" - templateRef: - name: my-metric - # namespace is optional - # when not specified, the canary namespace will be used - namespace: flagger - # accepted values - thresholdRange: - min: 10 - max: 1000 - # metric query time window - interval: 1m -``` - -## Prometheus - -You can create custom metric checks targeting a Prometheus server -by setting the provider type to `prometheus` and writing the query in PromQL. - -Prometheus template example: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: not-found-percentage - namespace: istio-system -spec: - provider: - type: prometheus - address: http://promethues.istio-system:9090 - query: | - 100 - sum( - rate( - istio_requests_total{ - reporter="destination", - destination_workload_namespace="{{ namespace }}", - destination_workload="{{ target }}", - response_code!="404" - }[{{ interval }}] - ) - ) - / - sum( - rate( - istio_requests_total{ - reporter="destination", - destination_workload_namespace="{{ namespace }}", - destination_workload="{{ target }}" - }[{{ interval }}] - ) - ) * 100 -``` - -Reference the template in the canary analysis: - -```yaml - analysis: - metrics: - - name: "404s percentage" - templateRef: - name: not-found-percentage - namespace: istio-system - thresholdRange: - max: 5 - interval: 1m -``` - -The above configuration validates the canary by checking -if the HTTP 404 req/sec percentage is below 5 percent of the total traffic. -If the 404s rate reaches the 5% threshold, then the canary fails. - -Prometheus gRPC error rate example: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: grpc-error-rate-percentage - namespace: flagger -spec: - provider: - type: prometheus - address: http://flagger-promethues.flagger-system:9090 - query: | - 100 - sum( - rate( - grpc_server_handled_total{ - grpc_code!="OK", - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - }[{{ interval }}] - ) - ) - / - sum( - rate( - grpc_server_started_total{ - kubernetes_namespace="{{ namespace }}", - kubernetes_pod_name=~"{{ target }}-[0-9a-zA-Z]+(-[0-9a-zA-Z]+)" - }[{{ interval }}] - ) - ) * 100 -``` - -The above template is for gPRC services instrumented with [go-grpc-prometheus](https://github.com/grpc-ecosystem/go-grpc-prometheus). - -## Datadog - -You can create custom metric checks using the Datadog provider. - -Create a secret with your Datadog API credentials: - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: datadog - namespace: istio-system -data: - datadog_api_key: your-datadog-api-key - datadog_application_key: your-datadog-application-key -``` - -Datadog template example: - -```yaml -apiVersion: flagger.app/v1beta1 -kind: MetricTemplate -metadata: - name: not-found-percentage - namespace: istio-system -spec: - provider: - type: datadog - address: https://api.datadoghq.com - secretRef: - name: datadog - query: | - 100 - ( - sum:istio.mesh.request.count{ - reporter:destination, - destination_workload_namespace:{{ namespace }}, - destination_workload:{{ target }}, - !response_code:404 - }.as_count() - / - sum:istio.mesh.request.count{ - reporter:destination, - destination_workload_namespace:{{ namespace }}, - destination_workload:{{ target }} - }.as_count() - ) * 100 -``` - -Reference the template in the canary analysis: - -```yaml - analysis: - metrics: - - name: "404s percentage" - templateRef: - name: not-found-percentage - namespace: istio-system - thresholdRange: - max: 5 - interval: 1m -``` - - -## Amazon CloudWatch - -You can create custom metric checks using the CloudWatch metrics provider. - -CloudWatch template example: - -```yaml -apiVersion: flagger.app/v1alpha1 -kind: MetricTemplate -metadata: - name: cloudwatch-error-rate -spec: - provider: - type: cloudwatch - region: ap-northeast-1 # specify the region of your metrics - query: | - [ - { - "Id": "e1", - "Expression": "m1 / m2", - "Label": "ErrorRate" - }, - { - "Id": "m1", - "MetricStat": { - "Metric": { - "Namespace": "MyKubernetesCluster", - "MetricName": "ErrorCount", - "Dimensions": [ - { - "Name": "appName", - "Value": "{{ name }}.{{ namespace }}" - } - ] - }, - "Period": 60, - "Stat": "Sum", - "Unit": "Count" - }, - "ReturnData": false - }, - { - "Id": "m2", - "MetricStat": { - "Metric": { - "Namespace": "MyKubernetesCluster", - "MetricName": "RequestCount", - "Dimensions": [ - { - "Name": "appName", - "Value": "{{ name }}.{{ namespace }}" - } - ] - }, - "Period": 60, - "Stat": "Sum", - "Unit": "Count" - }, - "ReturnData": false - } - ] -``` - -The query format documentation can be found [here](https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-getmetricdata-api/). - -Reference the template in the canary analysis: - -```yaml - analysis: - metrics: - - name: "app error rate" - templateRef: - name: cloudwatch-error-rate - thresholdRange: - max: 0.1 - interval: 1m -``` - -**Note** that Flagger need AWS IAM permission to perform `cloudwatch:GetMetricData` to use this provider. diff --git a/docs/usage/monitoring.md b/docs/usage/monitoring.md deleted file mode 100644 index 15dc10e7..00000000 --- a/docs/usage/monitoring.md +++ /dev/null @@ -1,119 +0,0 @@ -# Monitoring - -## Grafana - -Flagger comes with a Grafana dashboard made for canary analysis. Install Grafana with Helm: - -```bash -helm upgrade -i flagger-grafana flagger/grafana \ ---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) - -## Logging - -The canary errors and latency spikes have been recorded as Kubernetes events and logged by Flagger in json format: - -```text -kubectl -n istio-system logs deployment/flagger --tail=100 | jq .msg - -Starting canary deployment for podinfo.test -Advance podinfo.test canary weight 5 -Advance podinfo.test canary weight 10 -Advance podinfo.test canary weight 15 -Advance podinfo.test canary weight 20 -Advance podinfo.test canary weight 25 -Advance podinfo.test canary weight 30 -Advance podinfo.test canary weight 35 -Halt podinfo.test advancement success rate 98.69% < 99% -Advance podinfo.test canary weight 40 -Halt podinfo.test advancement request duration 1.515s > 500ms -Advance podinfo.test canary weight 45 -Advance podinfo.test canary weight 50 -Copying podinfo.test template spec to podinfo-primary.test -Halt podinfo-primary.test advancement waiting for rollout to finish: 1 old replicas are pending termination -Scaling down podinfo.test -Promotion completed! podinfo.test -``` - -## Event Webhook - -Flagger can be configured to send event payloads to a specified webhook: - -```bash -helm upgrade -i flagger flagger/flagger \ ---set eventWebhook=https://example.com/flagger-canary-event-webhook -``` - -The environment variable _EVENT\_WEBHOOK\_URL_ can be used for activating the event-webhook, too. This is handy for using a secret to store a sensible value that could contain api keys for example. - -When configured, every action that Flagger takes during a canary deployment will be sent as JSON via an HTTP POST request. The JSON payload has the following schema: - -```javascript -{ - "name": "string (canary name)", - "namespace": "string (canary namespace)", - "phase": "string (canary phase)", - "metadata": { - "eventMessage": "string (canary event message)", - "eventType": "string (canary event type)", - "timestamp": "string (unix timestamp ms)" - } -} -``` - -Example: - -```javascript -{ - "name": "podinfo", - "namespace": "default", - "phase": "Progressing", - "metadata": { - "eventMessage": "New revision detected! Scaling up podinfo.default", - "eventType": "Normal", - "timestamp": "1578607635167" - } -} -``` - -The event webhook can be overwritten at canary level with: - -```yaml - analysis: - webhooks: - - name: "send to Slack" - type: event - url: http://event-recevier.notifications/slack -``` - -## Metrics - -Flagger exposes Prometheus metrics that can be used to determine the canary analysis status and the destination weight values: - -```bash -# Flagger version and mesh provider gauge -flagger_info{version="0.10.0", mesh_provider="istio"} 1 - -# Canaries total gauge -flagger_canary_total{namespace="test"} 1 - -# Canary promotion last known status gauge -# 0 - running, 1 - successful, 2 - failed -flagger_canary_status{name="podinfo" namespace="test"} 1 - -# Canary traffic weight gauge -flagger_canary_weight{workload="podinfo-primary" namespace="test"} 95 -flagger_canary_weight{workload="podinfo" namespace="test"} 5 - -# Seconds spent performing canary analysis histogram -flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="10"} 6 -flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="+Inf"} 6 -flagger_canary_duration_seconds_sum{name="podinfo",namespace="test"} 17.3561329 -flagger_canary_duration_seconds_count{name="podinfo",namespace="test"} 6 -``` - diff --git a/docs/usage/webhooks.md b/docs/usage/webhooks.md deleted file mode 100644 index bc2ae16c..00000000 --- a/docs/usage/webhooks.md +++ /dev/null @@ -1,398 +0,0 @@ -# Webhooks - -The canary analysis can be extended with webhooks. Flagger will call each webhook URL and -determine from the response status code (HTTP 2xx) if the canary is failing or not. - -There are several types of hooks: -* **confirm-rollout** hooks are executed before scaling up the canary deployment and can be used for manual approval. -The rollout is paused until the hook returns a successful HTTP status code. -* **pre-rollout** hooks are executed before routing traffic to canary. -The canary advancement is paused if a pre-rollout hook fails and if the number of failures reach the -threshold the canary will be rollback. -* **rollout** hooks are executed during the analysis on each iteration before the metric checks. -If a rollout hook call fails the canary advancement is paused and eventfully rolled back. -* **confirm-promotion** hooks are executed before the promotion step. -The canary promotion is paused until the hooks return HTTP 200. -While the promotion is paused, Flagger will continue to run the metrics checks and rollout hooks. -* **post-rollout** hooks are executed after the canary has been promoted or rolled back. -If a post rollout hook fails the error is logged. -* **rollback** hooks are executed while a canary deployment is in either Progressing or Waiting status. -This provides the ability to rollback during analysis or while waiting for a confirmation. If a rollback hook -returns a successful HTTP status code, Flagger will stop the analysis and mark the canary release as failed. -* **event** hooks are executed every time Flagger emits a Kubernetes event. When configured, -every action that Flagger takes during a canary deployment will be sent as JSON via an HTTP POST request. - -Spec: - -```yaml - analysis: - webhooks: - - name: "start gate" - type: confirm-rollout - url: http://flagger-loadtester.test/gate/approve - - name: "helm test" - type: pre-rollout - url: http://flagger-helmtester.flagger/ - timeout: 3m - metadata: - type: "helmv3" - cmd: "test podinfo -n test" - - name: "load test" - type: rollout - url: http://flagger-loadtester.test/ - timeout: 15s - metadata: - cmd: "hey -z 1m -q 5 -c 2 http://podinfo-canary.test:9898/" - - name: "promotion gate" - type: confirm-promotion - url: http://flagger-loadtester.test/gate/approve - - name: "notify" - type: post-rollout - url: http://telegram.bot:8080/ - timeout: 5s - metadata: - some: "message" - - name: "rollback gate" - type: rollback - url: http://flagger-loadtester.test/rollback/check - - name: "send to Slack" - type: event - url: http://event-recevier.notifications/slack -``` - -> **Note** that the sum of all rollout webhooks timeouts should be lower than the analysis interval. - -Webhook payload (HTTP POST): - -```json -{ - "name": "podinfo", - "namespace": "test", - "phase": "Progressing", - "metadata": { - "test": "all", - "token": "16688eb5e9f289f1991c" - } -} -``` - -Response status codes: - -* 200-202 - advance canary by increasing the traffic weight -* timeout or non-2xx - halt advancement and increment failed checks - -On a non-2xx response Flagger will include the response body (if any) in the failed checks log and Kubernetes events. - -Event payload (HTTP POST): - -```json -{ - "name": "string (canary name)", - "namespace": "string (canary namespace)", - "phase": "string (canary phase)", - "metadata": { - "eventMessage": "string (canary event message)", - "eventType": "string (canary event type)", - "timestamp": "string (unix timestamp ms)" - } -} -``` - -The event receiver can create alerts based on the received phase -(possible values: ` Initialized`, `Waiting`, `Progressing`, `Promoting`, `Finalising`, `Succeeded` or `Failed`). - -## Load Testing - -For workloads that are not receiving constant traffic Flagger can be configured with a webhook, -that when called, will start a load test for the target workload. -If the target workload doesn't receive any traffic during the canary analysis, -Flagger metric checks will fail with "no values found for metric request-success-rate". - -Flagger comes with a load testing service based on [rakyll/hey](https://github.com/rakyll/hey) -that generates traffic during analysis when configured as a webhook. - -![Flagger Load Testing Webhook](https://raw.githubusercontent.com/weaveworks/flagger/master/docs/diagrams/flagger-load-testing.png) - -First you need to deploy the load test runner in a namespace with sidecar injection enabled: - -```bash -kubectl apply -k github.com/weaveworks/flagger//kustomize/tester -``` - -Or by using Helm: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger-loadtester flagger/loadtester \ ---namespace=test \ ---set cmd.timeout=1h -``` - -When deployed the load tester API will be available at `http://flagger-loadtester.test/`. - -Now you can add webhooks to the canary analysis spec: - -```yaml -webhooks: - - name: load-test-get - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/" - - name: load-test-post - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "hey -z 1m -q 10 -c 2 -m POST -d '{test: 2}' http://podinfo-canary.test:9898/echo" -``` - -When the canary analysis starts, Flagger will call the webhooks and the load tester will run the `hey` commands -in the background, if they are not already running. This will ensure that during the -analysis, the `podinfo-canary.test` service will receive a steady stream of GET and POST requests. - -If your workload is exposed outside the mesh you can point `hey` to the -public URL and use HTTP2. - -```yaml -webhooks: - - name: load-test-get - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "hey -z 1m -q 10 -c 2 -h2 https://podinfo.example.com/" -``` - -For gRPC services you can use [bojand/ghz](https://github.com/bojand/ghz) which is a similar tool to Hey but for gPRC: - -```yaml -webhooks: - - name: grpc-load-test - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "ghz -z 1m -q 10 -c 2 --insecure podinfo.test:9898" -``` - -`ghz` uses reflection to identify which gRPC method to call. If you do not wish to enable reflection for your gRPC service you can implement a standardized health check from the [grpc-proto](https://github.com/grpc/grpc-proto) library. To use this [health check schema](https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto) without reflection you can pass a parameter to `ghz` like this - -```yaml -webhooks: - - name: grpc-load-test-no-reflection - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - type: cmd - cmd: "ghz --insecure --proto=/tmp/ghz/health.proto --call=grpc.health.v1.Health/Check podinfo.test:9898" -``` - -The load tester can run arbitrary commands as long as the binary is present in the container image. -For example if you you want to replace `hey` with another CLI, you can create your own Docker image: - -```dockerfile -FROM weaveworks/flagger-loadtester: - -RUN curl -Lo /usr/local/bin/my-cli https://github.com/user/repo/releases/download/ver/my-cli \ - && chmod +x /usr/local/bin/my-cli -``` - -## Load Testing Delegation - -The load tester can also forward testing tasks to external tools, by now [nGrinder](https://github.com/naver/ngrinder) -is supported. - -To use this feature, add a load test task of type 'ngrinder' to the canary analysis spec: - -```yaml -webhooks: - - name: load-test-post - url: http://flagger-loadtester.test/ - timeout: 5s - metadata: - # type of this load test task, cmd or ngrinder - type: ngrinder - # base url of your nGrinder controller server - server: http://ngrinder-server:port - # id of the test to clone from, the test must have been defined. - clone: 100 - # user name and base64 encoded password to authenticate against the nGrinder server - username: admin - passwd: YWRtaW4= - # the interval between between nGrinder test status polling, default to 1s - pollInterval: 5s -``` -When the canary analysis starts, the load tester will initiate a [clone_and_start request](https://github.com/naver/ngrinder/wiki/REST-API-PerfTest) -to the nGrinder server and start a new performance test. the load tester will periodically poll the nGrinder server -for the status of the test, and prevent duplicate requests from being sent in subsequent analysis loops. - -## Integration Testing - -Flagger comes with a testing service that can run Helm tests or Bats tests when configured as a webhook. - -Deploy the Helm test runner in the `kube-system` namespace using the `tiller` service account: - -```bash -helm repo add flagger https://flagger.app - -helm upgrade -i flagger-helmtester flagger/loadtester \ ---namespace=kube-system \ ---set serviceAccountName=tiller -``` - -When deployed the Helm tester API will be available at `http://flagger-helmtester.kube-system/`. - -Now you can add pre-rollout webhooks to the canary analysis spec: - -```yaml - analysis: - webhooks: - - name: "smoke test" - type: pre-rollout - url: http://flagger-helmtester.kube-system/ - timeout: 3m - metadata: - type: "helm" - cmd: "test {{ .Release.Name }} --cleanup" -``` - -When the canary analysis starts, Flagger will call the pre-rollout webhooks before routing traffic to the canary. -If the helm test fails, Flagger will retry until the analysis threshold is reached and the canary is rolled back. - -If you are using Helm v3, you'll have to create a dedicated service account and add the release namespace to the test command: - -```yaml - analysis: - webhooks: - - name: "smoke test" - type: pre-rollout - url: http://flagger-helmtester.kube-system/ - timeout: 3m - metadata: - type: "helmv3" - cmd: "test {{ .Release.Name }} --timeout 3m -n {{ .Release.Namespace }}" -``` - -As an alternative to Helm you can use the [Bash Automated Testing System](https://github.com/bats-core/bats-core) to run your tests. - -```yaml - analysis: - webhooks: - - name: "acceptance tests" - type: pre-rollout - url: http://flagger-batstester.default/ - timeout: 5m - metadata: - type: "bash" - cmd: "bats /tests/acceptance.bats" -``` - -Note that you should create a ConfigMap with your Bats tests and mount it inside the tester container. - -## Manual Gating - -For manual approval of a canary deployment you can use the `confirm-rollout` and `confirm-promotion` webhooks. -The confirmation rollout hooks are executed before the pre-rollout hooks. -Flagger will halt the canary traffic shifting and analysis until the confirm webhook returns HTTP status 200. - -For manual rollback of a canary deployment you can use the `rollback` webhook. The rollback hook will be called -during the analysis and confirmation states. If a rollback webhook returns a successful HTTP status code, Flagger -will shift all traffic back to the primary instance and fail the canary. - -Manual gating with Flagger's tester: - -```yaml - analysis: - webhooks: - - name: "gate" - type: confirm-rollout - url: http://flagger-loadtester.test/gate/halt -``` - -The `/gate/halt` returns HTTP 403 thus blocking the rollout. - -If you have notifications enabled, Flagger will post a message to Slack or MS Teams if a canary rollout is waiting for approval. - -Change the URL to `/gate/approve` to start the canary analysis: - -```yaml - analysis: - webhooks: - - name: "gate" - type: confirm-rollout - url: http://flagger-loadtester.test/gate/approve -``` - -Manual gating can be driven with Flagger's tester API. Set the confirmation URL to `/gate/check`: - -```yaml - analysis: - webhooks: - - name: "ask for confirmation" - type: confirm-rollout - url: http://flagger-loadtester.test/gate/check -``` - -By default the gate is closed, you can start or resume the canary rollout with: - -```bash -kubectl -n test exec -it flagger-loadtester-xxxx-xxxx sh - -curl -d '{"name": "podinfo","namespace":"test"}' http://localhost:8080/gate/open -``` - -You can pause the rollout at any time with: - -```bash -curl -d '{"name": "podinfo","namespace":"test"}' http://localhost:8080/gate/close -``` - -If a canary analysis is paused the status will change to waiting: - -```bash -kubectl get canary/podinfo - -NAME STATUS WEIGHT -podinfo Waiting 0 -``` - -The `confirm-promotion` hook type can be used to manually approve the canary promotion. -While the promotion is paused, Flagger will continue to run the metrics checks and load tests. - -```yaml - analysis: - webhooks: - - name: "promotion gate" - type: confirm-promotion - url: http://flagger-loadtester.test/gate/halt -``` - -The `rollback` hook type can be used to manually rollback the canary promotion. As with gating, rollbacks can be driven -with Flagger's tester API by setting the rollback URL to `/rollback/check` - -```yaml - analysis: - webhooks: - - name: "rollback" - type: rollback - url: http://flagger-loadtester.test/rollback/check -``` - -By default rollback is closed, you can rollback a canary rollout with: - -```bash -kubectl -n test exec -it flagger-loadtester-xxxx-xxxx sh - -curl -d '{"name": "podinfo","namespace":"test"}' http://localhost:8080/rollback/open -``` - -You can close the rollback with: - -```bash -curl -d '{"name": "podinfo","namespace":"test"}' http://localhost:8080/rollback/close -``` - -If you have notifications enabled, Flagger will post a message to Slack or MS Teams if a canary has been rolled back.

_0km)^D_-9vT$~dyZs(Bl4x4t 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