mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
87 lines
23 KiB
HTML
87 lines
23 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Development Guide | Flagger</title>
|
|
<meta name="description" content="Progressive Delivery operator for Kubernetes (Canary, A/B Testing and Blue/Green deployments)">
|
|
<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="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)">
|
|
<meta name="twitter:image:src" content="https://flagger.app/flagger-overview.png">
|
|
|
|
<link rel="preload" href="/assets/css/0.styles.a0ada997.css" as="style"><link rel="preload" href="/assets/js/app.9b46ae46.js" as="script"><link rel="preload" href="/assets/js/2.ba5bf77c.js" as="script"><link rel="preload" href="/assets/js/7.6bf27a87.js" as="script"><link rel="prefetch" href="/assets/js/10.bf6f38d4.js"><link rel="prefetch" href="/assets/js/11.3af38cfe.js"><link rel="prefetch" href="/assets/js/12.eca4b89c.js"><link rel="prefetch" href="/assets/js/13.9104349a.js"><link rel="prefetch" href="/assets/js/14.a4f3d810.js"><link rel="prefetch" href="/assets/js/15.aada2caa.js"><link rel="prefetch" href="/assets/js/16.3012a10b.js"><link rel="prefetch" href="/assets/js/17.a98b6aa9.js"><link rel="prefetch" href="/assets/js/18.e5188926.js"><link rel="prefetch" href="/assets/js/19.bb9498f7.js"><link rel="prefetch" href="/assets/js/20.2b1bebf5.js"><link rel="prefetch" href="/assets/js/21.e1068843.js"><link rel="prefetch" href="/assets/js/22.1c5d14b9.js"><link rel="prefetch" href="/assets/js/23.b3dcc355.js"><link rel="prefetch" href="/assets/js/24.4f54d289.js"><link rel="prefetch" href="/assets/js/25.914acd1d.js"><link rel="prefetch" href="/assets/js/26.b2d4f402.js"><link rel="prefetch" href="/assets/js/27.ea9f1f9c.js"><link rel="prefetch" href="/assets/js/28.deae273d.js"><link rel="prefetch" href="/assets/js/29.ce4011f4.js"><link rel="prefetch" href="/assets/js/3.8b254d5d.js"><link rel="prefetch" href="/assets/js/30.edda19d9.js"><link rel="prefetch" href="/assets/js/31.fbfb336c.js"><link rel="prefetch" href="/assets/js/32.591c3f2b.js"><link rel="prefetch" href="/assets/js/33.c456709f.js"><link rel="prefetch" href="/assets/js/34.5a071e36.js"><link rel="prefetch" href="/assets/js/35.fc27c09e.js"><link rel="prefetch" href="/assets/js/36.144098aa.js"><link rel="prefetch" href="/assets/js/4.26a3069c.js"><link rel="prefetch" href="/assets/js/5.0c32bdf9.js"><link rel="prefetch" href="/assets/js/6.ee5ffca3.js"><link rel="prefetch" href="/assets/js/8.8b72a8d3.js"><link rel="prefetch" href="/assets/js/9.7919fc1d.js">
|
|
<link rel="stylesheet" href="/assets/css/0.styles.a0ada997.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Flagger</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://docs.flagger.app" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Docs
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/weaveworks/flagger/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <a href="https://github.com/weaveworks/flagger" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="https://docs.flagger.app" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Docs
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/weaveworks/flagger/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <a href="https://github.com/weaveworks/flagger" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li><li><section class="sidebar-group depth-0"><a href="/intro/" class="sidebar-heading clickable"><span>Introduction</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/intro/" class="sidebar-link">Get Started</a></li><li><a href="/intro/faq.html" class="sidebar-link">FAQ</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/install/flagger-install-on-kubernetes" class="sidebar-heading clickable"><span>Install</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/flagger-install-on-kubernetes.html" class="sidebar-link">On Kubernetes</a></li><li><a href="/install/flagger-install-on-google-cloud.html" class="sidebar-link">On GKE Istio</a></li><li><a href="/install/flagger-install-on-eks-appmesh.html" class="sidebar-link">On EKS App Mesh</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/usage/how-it-works" class="sidebar-heading clickable"><span>Usage</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/usage/how-it-works.html" class="sidebar-link">How it works</a></li><li><a href="/usage/deployment-strategies.html" class="sidebar-link">Deployment Strategies</a></li><li><a href="/usage/metrics.html" class="sidebar-link">Metrics Analysis</a></li><li><a href="/usage/webhooks.html" class="sidebar-link">Webhooks</a></li><li><a href="/usage/alerting.html" class="sidebar-link">Alerting</a></li><li><a href="/usage/monitoring.html" class="sidebar-link">Monitoring</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/tutorials/istio-progressive-delivery" class="sidebar-heading clickable"><span>Tutorials</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/tutorials/istio-progressive-delivery.html" class="sidebar-link">Istio Canaries</a></li><li><a href="/tutorials/istio-ab-testing.html" class="sidebar-link">Istio A/B Testing</a></li><li><a href="/tutorials/linkerd-progressive-delivery.html" class="sidebar-link">Linkerd Canaries</a></li><li><a href="/tutorials/appmesh-progressive-delivery.html" class="sidebar-link">App Mesh Canaries</a></li><li><a href="/tutorials/nginx-progressive-delivery.html" class="sidebar-link">NGINX Ingress Canaries</a></li><li><a href="/tutorials/gloo-progressive-delivery.html" class="sidebar-link">Gloo Canaries</a></li><li><a href="/tutorials/contour-progressive-delivery.html" class="sidebar-link">Contour Canaries</a></li><li><a href="/tutorials/kubernetes-blue-green.html" class="sidebar-link">Kubernetes Blue/Green</a></li><li><a href="/tutorials/canary-helm-gitops.html" class="sidebar-link">Canaries with Helm charts and GitOps</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/dev/dev-guide" class="sidebar-heading clickable open active"><span>Dev</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/dev/dev-guide.html" class="active sidebar-link">Development Guide</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#setup-dev-environment" class="sidebar-link">Setup dev environment</a></li><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#build" class="sidebar-link">Build</a></li><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#code-changes" class="sidebar-link">Code changes</a></li><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#api-changes" class="sidebar-link">API changes</a></li><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#manual-testing" class="sidebar-link">Manual testing</a></li><li class="sidebar-sub-header"><a href="/dev/dev-guide.html#integration-testing" class="sidebar-link">Integration testing</a></li></ul></li><li><a href="/dev/release-guide.html" class="sidebar-link">Release Guide</a></li><li><a href="/dev/upgrade-guide.html" class="sidebar-link">Upgrade Guide</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="development-guide"><a href="#development-guide" aria-hidden="true" class="header-anchor">#</a> Development Guide</h1> <p>This document describes how to build, test and run Flagger from source.</p> <h2 id="setup-dev-environment"><a href="#setup-dev-environment" aria-hidden="true" class="header-anchor">#</a> Setup dev environment</h2> <p>Flagger is written in Go and uses Go modules for dependency management.</p> <p>On your dev machine install the following tools:</p> <ul><li>go >= 1.13</li> <li>git >= 2.20</li> <li>bash >= 5.0</li> <li>make >= 3.81</li> <li>kubectl >= 1.16</li> <li>kustomize >= 3.5</li> <li>helm >= 3.0</li> <li>docker >= 19.03</li></ul> <p>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.</p> <p>To start contributing to Flagger, fork the <a href="https://github.com/weaveworks/flagger" target="_blank" rel="noopener noreferrer">repository<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> on GitHub.</p> <p>Create a dir inside your <code>GOPATH</code>:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">mkdir</span> -p <span class="token variable">$GOPATH</span>/src/github.com/weaveworks
|
|
</code></pre></div><p>Clone your fork:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token builtin class-name">cd</span> <span class="token variable">$GOPATH</span>/src/github.com/weaveworks
|
|
<span class="token function">git</span> clone https://github.com/YOUR_USERNAME/flagger
|
|
<span class="token builtin class-name">cd</span> flagger
|
|
</code></pre></div><p>Set Flagger repository as upstream:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">git</span> remote <span class="token function">add</span> upstream https://github.com/weaveworks/flagger.git
|
|
</code></pre></div><p>Sync your fork regularly to keep it up-to-date with upstream:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">git</span> fetch upstream
|
|
<span class="token function">git</span> checkout master
|
|
<span class="token function">git</span> merge upstream/master
|
|
</code></pre></div><h2 id="build"><a href="#build" aria-hidden="true" class="header-anchor">#</a> Build</h2> <p>Download Go modules:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>go mod download
|
|
</code></pre></div><p>Build Flagger binary and container image:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> build
|
|
</code></pre></div><p>Build load tester binary and container image:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> loadtester-build
|
|
</code></pre></div><h2 id="code-changes"><a href="#code-changes" aria-hidden="true" class="header-anchor">#</a> Code changes</h2> <p>Before submitting a PR, make sure your changes are covered by unit tests.</p> <p>If you made changes to <code>go.mod</code> run:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>go mod tidy
|
|
</code></pre></div><p>If you made changes to <code>pkg/apis</code> regenerate Kubernetes client sets with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> codegen
|
|
</code></pre></div><p>Run code formatters:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> <span class="token function">fmt</span>
|
|
</code></pre></div><p>Run unit tests:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> <span class="token builtin class-name">test</span>
|
|
</code></pre></div><h2 id="api-changes"><a href="#api-changes" aria-hidden="true" class="header-anchor">#</a> API changes</h2> <p>If you made changes to <code>pkg/apis</code> regenerate the Kubernetes client sets with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> codegen
|
|
</code></pre></div><p>Update the validation spec in <code>artifacts/flagger/crd.yaml</code> and run:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> crd
|
|
</code></pre></div><p>Note that any change to the CRDs must be accompanied by an update to the Open API schema.</p> <h2 id="manual-testing"><a href="#manual-testing" aria-hidden="true" class="header-anchor">#</a> Manual testing</h2> <p>Install a service mesh and/or an ingress controller on your cluster and deploy Flagger
|
|
using one of the install options <a href="../install/flagger-install-on-kubernetes">listed here</a>.</p> <p>If you made changes to the CRDs, apply your local copy with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl apply -f artifacts/flagger/crd.yaml
|
|
</code></pre></div><p>Shutdown the Flagger instance installed on your cluster (replace the namespace with your mesh/ingress one):</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n istio-system scale deployment/flagger --replicas<span class="token operator">=</span><span class="token number">0</span>
|
|
</code></pre></div><p>Port forward to your Prometheus instance:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n istio-system port-forward svc/prometheus <span class="token number">9090</span>:9090
|
|
</code></pre></div><p>Run Flagger locally against your remote cluster by specifying a kubeconfig path:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>go run cmd/flagger/ -kubeconfig<span class="token operator">=</span><span class="token environment constant">$HOME</span>/.kube/config <span class="token punctuation">\</span>
|
|
-log-level<span class="token operator">=</span>info <span class="token punctuation">\</span>
|
|
-mesh-provider<span class="token operator">=</span>istio <span class="token punctuation">\</span>
|
|
-metrics-server<span class="token operator">=</span>http://localhost:9090
|
|
</code></pre></div><p>Another option to manually test your changes is to build and push the image to your container registry:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> build
|
|
docker tag weaveworks/flagger:latest <span class="token operator"><</span>YOUR-DOCKERHUB-USERNAME<span class="token operator">></span>/flagger:<span class="token operator"><</span>YOUR-TAG<span class="token operator">></span>
|
|
docker push <span class="token operator"><</span>YOUR-DOCKERHUB-USERNAME<span class="token operator">></span>/flagger:<span class="token operator"><</span>YOUR-TAG<span class="token operator">></span>
|
|
</code></pre></div><p>Deploy your image on the cluster and scale up Flagger:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n istio-system <span class="token builtin class-name">set</span> image deployment/flagger <span class="token assign-left variable">flagger</span><span class="token operator">=</span><span class="token operator"><</span>YOUR-DOCKERHUB-USERNAME<span class="token operator">></span>/flagger:<span class="token operator"><</span>YOUR-TAG<span class="token operator">></span>
|
|
kubectl -n istio-system scale deployment/flagger --replicas<span class="token operator">=</span><span class="token number">1</span>
|
|
</code></pre></div><p>Now you can use one of the <a href="/intro/">tutorials</a> to manually test your changes.</p> <h2 id="integration-testing"><a href="#integration-testing" aria-hidden="true" class="header-anchor">#</a> Integration testing</h2> <p>Flagger end-to-end tests can be run locally with <a href="https://github.com/kubernetes-sigs/kind" target="_blank" rel="noopener noreferrer">Kubernetes Kind<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <p>Create a Kind cluster:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kind create cluster
|
|
</code></pre></div><p>Install a service mesh and/or an ingress controller in Kind.</p> <p>Linkerd example:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>linkerd <span class="token function">install</span> <span class="token operator">|</span> kubectl apply -f -
|
|
linkerd check
|
|
</code></pre></div><p>Build Flagger container image and load it on the cluster:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">make</span> build
|
|
docker tag weaveworks/flagger:latest test/flagger:latest
|
|
kind load docker-image test/flagger:latest
|
|
</code></pre></div><p>Install Flagger on the cluster and set the test image:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl apply -k ./kustomize/linkerd
|
|
kubectl -n linkerd <span class="token builtin class-name">set</span> image deployment/flagger <span class="token assign-left variable">flagger</span><span class="token operator">=</span>test/flagger:latest
|
|
kubectl -n linkerd rollout status deployment/flagger
|
|
</code></pre></div><p>Run the Linkerd e2e tests:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>./test/e2e-linkerd-tests.sh
|
|
</code></pre></div><p>For each service mesh and ingress controller there is a dedicated e2e test suite,
|
|
chose one that matches your changes from this <a href="https://github.com/weaveworks/flagger/tree/master/test" target="_blank" rel="noopener noreferrer">list<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <p>When you open a pull request on Flagger repo, the unit and integration tests will be run in CI.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
|
←
|
|
<a href="/tutorials/canary-helm-gitops.html" class="prev">
|
|
Canaries with Helm charts and GitOps
|
|
</a></span> <span class="next"><a href="/dev/release-guide.html">
|
|
Release Guide
|
|
</a>
|
|
→
|
|
</span></p></div> </main></div><div class="global-ui"></div></div>
|
|
<script src="/assets/js/app.9b46ae46.js" defer></script><script src="/assets/js/2.ba5bf77c.js" defer></script><script src="/assets/js/7.6bf27a87.js" defer></script>
|
|
</body>
|
|
</html>
|