{"@attributes":{"version":"2.0"},"channel":{"title":"Emissary-ingress on ","link":"https:\/\/emissary-ingress.dev\/","description":"Recent content in Emissary-ingress on ","generator":"Hugo","language":"en","item":[{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using Helm or YAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all-namespaces<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-installed-emissary-using-helm\">If you installed Emissary using Helm<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/helm\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"if-you-installed-emissary-manually-by-applying-yaml\">If you installed Emissary manually by applying YAML<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/upgrade\/yaml\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using Helm or YAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all-namespaces<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-installed-emissary-using-helm\">If you installed Emissary using Helm<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/helm\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"if-you-installed-emissary-manually-by-applying-yaml\">If you installed Emissary manually by applying YAML<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/upgrade\/yaml\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using Helm or YAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all-namespaces<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-installed-emissary-using-helm\">If you installed Emissary using Helm<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/helm\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"if-you-installed-emissary-manually-by-applying-yaml\">If you installed Emissary manually by applying YAML<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">If you&rsquo;re running.<\/th>\n          <th style=\"text-align: left\">You can upgrade to<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.9<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-3.9\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.8.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-3.8\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 3.7.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-3.7\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-2.5\/\">Emissary 3.10<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.4.X<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-2.4\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 2.0.5<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-2.0\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/upgrade\/yaml\/emissary-1.14\/\">Emissary 2.5<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\">Emissary prior to 1.14<\/td>\n          <td style=\"text-align: left\"><a href=\"..\/..\/..\/..\/1.14\/topics\/install\/upgrading\">Emissary 1.14<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"Ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"Ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"Quick Start","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/quick-start\/","description":"<p><strong>We recommend using Helm<\/strong> to install Emissary.<\/p>\n<h3 id=\"installing-if-youre-starting-fresh\">Installing if you&rsquo;re starting fresh<\/h3>\n<p><strong>If you are already running Emissary and just want to upgrade, DO NOT FOLLOW\nTHESE DIRECTIONS.<\/strong> Instead, check out &ldquo;Upgrading from an earlier Emissary&rdquo;\nbelow.<\/p>\n<p>If you&rsquo;re starting from scratch and you don&rsquo;t need to worry about older CRD\nversions, install using <code>--set enableLegacyVersions=false<\/code> to avoid install\nthe old versions of the CRDs and the conversion webhook:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>helm install emissary-crds <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span> --namespace emissary --create-namespace <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span> oci:\/\/ghcr.io\/emissary-ingress\/emissary-crds-chart --version<span style=\"color:#ce5c00;font-weight:bold\">=<\/span>3.10.0 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span> --set <span style=\"color:#000\">enableLegacyVersions<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">false<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span> --wait\n<\/span><\/span><\/code><\/pre><\/div><p>This will install only v3alpha1 CRDs and skip the conversion webhook entirely.\nIt will create the <code>emissary<\/code> namespace for you, but there won&rsquo;t be anything\nin it at this point.<\/p>"},{"title":"Quick Start","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/quick-start\/","description":"<p><strong>We recommend using Helm<\/strong> to install Emissary. If you really need to\nwork directly with YAML, use <code>helm template<\/code> to generate the YAML\nmanifests you need.<\/p>\n<h2 id=\"installing-emissary\">Installing Emissary<\/h2>\n<p>Installing Emissary is a two-step process: first, you install the Custom\nResource Definitions (CRDs) that Emissary uses to configure itself, and\nthen you install Emissary itself. There are two different paths here,\ndepending on whether you&rsquo;re installing Emissary for the first time, or\nupgrading from an earlier version where you&rsquo;re using older versions of\nthe CRDs.<\/p>"},{"title":"Quick Start","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/quick-start\/","description":"<p><strong>We recommend using Helm<\/strong> to install Emissary. If you really need to\nwork directly with YAML, use <code>helm template<\/code> to generate the YAML\nmanifests you need.<\/p>\n<h2 id=\"installing-emissary\">Installing Emissary<\/h2>\n<p>Installing Emissary is a two-step process: first, you install the Custom\nResource Definitions (CRDs) that Emissary uses to configure itself, and\nthen you install Emissary itself. There are two different paths here,\ndepending on whether you&rsquo;re installing Emissary for the first time, or\nupgrading from an earlier version where you&rsquo;re using older versions of\nthe CRDs.<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/support\/","description":"<p>When running Emissary <a href=\"http:\/\/slack.cncf.io\/\">join our #emissary-ingress slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<h2 id=\"file-a-github-issue\">File a Github Issue<\/h2>\n<p>If you see a bug you want to fix please <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/issues\/new\">file an issue on github<\/a>.<\/p>\n<p>If you have an issue in our documentation to fix please file an issue on the <a href=\"https:\/\/github.com\/emissary-ingress\/emissary-ingress.dev\/issues\/new\">documentation repository<\/a>.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/support\/","description":"<p>When running Emissary <a href=\"http:\/\/slack.cncf.io\/\">join our #emissary-ingress slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<h2 id=\"file-a-github-issue\">File a Github Issue<\/h2>\n<p>If you see a bug you want to fix please <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/issues\/new\">file an issue on github<\/a>.<\/p>\n<p>If you have an issue in our documentation to fix please file an issue on the <a href=\"https:\/\/github.com\/emissary-ingress\/emissary-ingress.dev\/issues\/new\">documentation repository<\/a>.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/support\/","description":"<p>When running Emissary <a href=\"http:\/\/slack.cncf.io\/\">join our #emissary-ingress slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<h2 id=\"file-a-github-issue\">File a Github Issue<\/h2>\n<p>If you see a bug you want to fix please <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/issues\/new\">file an issue on github<\/a>.<\/p>\n<p>If you have an issue in our documentation to fix please file an issue on the <a href=\"https:\/\/github.com\/emissary-ingress\/emissary-ingress.dev\/issues\/new\">documentation repository<\/a>.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/community\/","description":"<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/$branch$\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/community\/","description":"<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/community\/","description":"<h1 id=\"community\">Community<\/h1>\n<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/community\/","description":"<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/community\/","description":"<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/community\/","description":"<h1 id=\"community\">Community<\/h1>\n<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/community\/","description":"<h1 id=\"community\">Community<\/h1>\n<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/community\/","description":"<h1 id=\"community\">Community<\/h1>\n<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Community","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/community\/","description":"<h1 id=\"community\">Community<\/h1>\n<h2 id=\"contributors-guide\">Contributor&rsquo;s guide<\/h2>\n<p>Please review our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/DevDocumentation\/DEVELOPING.md\">contributor&rsquo;s guide<\/a>\non GitHub to learn how you can help make Emissary-ingress better.<\/p>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p>Our <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/CHANGELOG.md\">changelog<\/a>\ndescribes new features, bug fixes, and updates to each version of Emissary-ingress.<\/p>\n<h2 id=\"meetings\">Meetings<\/h2>\n<p>Check out our community <a href=\"https:\/\/github.com\/emissary-ingress\/emissary\/blob\/master\/Community\/MEETING_SCHEDULE.md\">meeting schedule<\/a> for opportunities to interact with Emissary-ingress developers.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.com\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.com\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.com\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":{},"link":"https:\/\/emissary-ingress.dev\/docs\/versions\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/versions\/","description":"<!-- Do not delete this file. This is necessary for showing all versions of Emissary documentation. -->"},{"title":"1.14 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-1.14\/emissary-2.5\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $version$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-1.14\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-1.14\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-1.14\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-1.14\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14.x to 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-1.14\/emissary-2.5\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $version$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14.x to 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-1.14\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14.x to 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-1.14\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14.x to 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-1.14\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"1.14.x to 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-1.14\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 1.14.X to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-1.14\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>We&rsquo;re pleased to introduce Emissary $versionTwoX$! The 2.X family introduces a number of\nchanges to allow Emissary to more gracefully handle larger installations (including\nmultitenant or multiorganizational installations), reduce memory footprint, and improve\nperformance. In keeping with <a href=\"https:\/\/semver.org\">SemVer<\/a>, Emissary 2.X introduces\nsome changes that aren&rsquo;t backward-compatible with 1.X. These changes are detailed in\n<a href=\"..\/..\/..\/..\/..\/..\/about\/changes-2.x\/\">Major Changes in Emissary 2.X<\/a>.<\/p>"},{"title":"2.0 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.0\/emissary-2.5\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $version$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.0\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.0\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.0\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.0\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.0\/emissary-2.5\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $version$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.0\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.0\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.0\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.0.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.0\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.0.5 to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.0\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.3 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.3\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.3\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.3 to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.5\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $version$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4 to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.5\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $version$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4 to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.4\/emissary-2.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.5\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.5\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4 to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.4\/emissary-2.5\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $version$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.4\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.4\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.4\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.4.x to latest 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.4\/emissary-2.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.4.Z to Emissary $versionTwoX$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.4\/emissary-2.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<p>Migration is a two-step process:<\/p>\n<ol>\n<li>\n<p><strong>Install new CRDs.<\/strong><\/p>\n<p>Before installing Emissary $versionTwoX$ itself, you need to update the CRDs in\nyour cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.<\/p>"},{"title":"2.5 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.5\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>"},{"title":"2.5 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.5\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>"},{"title":"2.5 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.5\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>"},{"title":"2.5 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-2.5\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>"},{"title":"2.5.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.5\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>"},{"title":"2.5.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.5\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>"},{"title":"2.5.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.5\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>"},{"title":"2.5.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-2.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 2.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-2.5\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Make sure that you have updated any <code>AuthService<\/code>s, <code>LogService<\/code>s and <code>RateLimitService<\/code>s to use\n  <code>protocol_version: \"v3\"<\/code> or else an error will be posted and a static response will be returned in $version$.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>"},{"title":"3.4 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.4\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.4\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.4\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.4\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/latest\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.4\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.4\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.4\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/3.4\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.4.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.4\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.4.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.4\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<Alert severity=\"warning\">\n  As of Emissary 3.4.Z, the <code>LightStep<\/code> tracing driver is no longer supported. To ensure you do not drop any tracing data, be sure to read below before upgrading.\n<\/Alert>\n<p>Emissary 3.4 has been upgraded from Envoy 1.23 to Envoy 1.24.1 which removed support for the <code>LightStep<\/code> tracing driver. The team at LightStep and the maintainers of Envoy-Proxy recommend that users instead leverage the OpenTelemetry Collector to send tracing information to LightStep. We have written a guide which can be found here <a href=\"https:\/\/emissary-ingress.dev\/docs\/emissary\/latest\/howtos\/tracing-lightstep\">Distributed Tracing with OpenTelemetry and Lightstep<\/a> that outlines how to set this up. <strong>It is important that you follow this upgrade path prior to upgrading or you will drop tracing data.<\/strong><\/p>"},{"title":"3.5.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-3.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/helm\/emissary-3.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.5\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-3.5\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/upgrade\/yaml\/emissary-3.5\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.5.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.5\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-3.6\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/yaml\/emissary-3.6\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.6.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.6\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-3.7\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/yaml\/emissary-3.7\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.7.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.7\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.7\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.7\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.7.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.7\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-3.6\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/upgrade\/helm\/emissary-3.6\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.6.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.6\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-3.7\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/upgrade\/helm\/emissary-3.7\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.7.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.7\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.7.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.7\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.7\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.7.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.7\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.8 to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.8\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/yaml\/emissary-3.8\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.8.Z to Emissary $version$. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation made without using Helm.\n  If you originally installed with Helm, see the <a href=\"..\/..\/..\/helm\/emissary-3.8\/emissary-3.X\">Helm-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading\nbetween versions is straightforward.<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"3.8.x to latest 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.8\/emissary-3.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/upgrade\/helm\/emissary-3.8\/emissary-3.x\/","description":"<Alert severity=\"info\">\n  This guide covers migrating from Emissary 3.8.Z to Emissary 3.9. If\n  this is not your <b>exact<\/b> situation, see the <a href=\"..\/..\/..\/..\/migration-matrix\">migration\n  matrix<\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  This guide is written for upgrading an installation originally made using Helm.\n  If you did not install with Helm, see the <a href=\"..\/..\/..\/yaml\/emissary-3.9\/emissary-3.X\">YAML-based\n  upgrade instructions<\/a>.\n<\/Alert>\n<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, upgrading between minor\nversions is straightforward9<\/p>\n<h3 id=\"resources-to-check-before-migrating-to-version\">Resources to check before migrating to $version$.<\/h3>\n<h2 id=\"migration-steps\">Migration Steps<\/h2>\n<p>Migration is a two-step process:<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Active Health Checking","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/active-health-checking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/active-health-checking\/","description":"<p>Emissary provides support for active health checking of upstreams via the <code>Mapping<\/code> resource. Active health checking will configure Envoy to make requests to the upstream at a configurable interval. If the upstream does not respond with an expected status code then the upstream will be marked as unhealthy and Envoy will no longer route requests to that upstream until they respond successfully to the health check.<\/p>\n<p>This feature can only be used with the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-endpoint-resolver\">endpoint resolver<\/a>. This is necessary because the endpoint resolver allows Envoy to be aware of each individual pod in a deployment as opposed to the <a href=\"..\/..\/topics\/running\/resolvers#the-kubernetes-service-resolver\">kubernetes service resolver<\/a> where Envoy is only aware of the upstream as a single endpoint. When envoy is aware of the multiple pods in a deployment then it will allow the active health checks to mark an individual pod as unhealthy while the remaining pods are able to serve requests.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/add_request_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/add_request_headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/add_request_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/add_request_headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/add-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/add-request-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each request that is passed to a service.<\/p>\n<h2 id=\"the-add_request_headers-attribute\">The <code>add_request_headers<\/code> attribute<\/h2>\n<p>The <code>add_request_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/add_response_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/add_response_headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/add_response_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/add_response_headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Add response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/add-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/add-response-headers\/","description":"<p>Emissary can add a dictionary of HTTP headers that can be added to each response that is returned to the client.<\/p>\n<h2 id=\"the-add_response_headers-attribute\">The <code>add_response_headers<\/code> attribute<\/h2>\n<p>The <code>add_response_headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. The <code>value<\/code> can be a <code>string<\/code>, <code>bool<\/code> or <code>object<\/code>. When it is an <code>object<\/code>, the object should have a <code>value<\/code> property, which is the actual header value, and the remaining attributes are additional envoy properties.<\/p>\n<p>Envoy dynamic values <code>%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%<\/code> and <code>%PROTOCOL%<\/code> are supported, in addition to static values.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced Mapping configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/mappings\/","description":"<p>Emissary is designed so that the author of a given Kubernetes service can easily and flexibly configure how traffic gets routed to the service. The core abstraction used to support service authors is a mapping, which maps a target backend service to a given host or prefix. For Layer 7 protocols such as HTTP, gRPC, or WebSockets, the <code>Mapping<\/code> resource is used. For TCP, the <code>TCPMapping<\/code> resource is used.<\/p>\n<p>Emissary <em>must<\/em> have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique.<\/p>"},{"title":"Advanced rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/advanced-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/advanced-rate-limiting\/","description":"<p>Ambassador Edge Stack integrates a flexible, high-performance Rate Limit Service (RLS). Similar to Emissary, the RLS features a decentralized configuration model so that individual teams can manage their own rate limits. For example:<\/p>\n<ul>\n<li>A service owner may want to manage load shedding characteristics and ensuring specific types of requests take precedence over other types of requests<\/li>\n<li>An operations engineer may want to ensure service availability overall when request volume is high and limit the total number of requests being passed to upstream services<\/li>\n<li>A security engineer may want to protect against denial-of-service attacks from a bad actor<\/li>\n<\/ul>\n<p>Like Ambassador Edge Stack, the Ambassador Edge Stack RLS is designed so that many different teams, with different requirements, can independently manage and control rate limiting as necessary.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/alternatives\/","description":"<p>Alternatives to the Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.org\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, versus microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. The Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.org\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.org\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.org\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.org\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Alternatives","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/alternatives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/alternatives\/","description":"<p>Alternatives to Emissary fall into three basic categories:<\/p>\n<ul>\n<li>Hosted API gateways, such as the <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\">Amazon API gateway<\/a>.<\/li>\n<li>Traditional API gateways, such as <a href=\"https:\/\/konghq.com\/\">Kong<\/a>.<\/li>\n<li>L7 proxies, such as <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>, <a href=\"http:\/\/nginx.org\/\">NGINX<\/a>, <a href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a>, or <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>, or Ingress controllers built on these proxies.<\/li>\n<\/ul>\n<p>Both hosted API gateways and traditional API gateways are:<\/p>\n<ul>\n<li>Not self-service. The management interfaces on traditional API gateways are not designed for developer self-service, and provide limited safety and usability for developers.<\/li>\n<li>Not Kubernetes-native. They&rsquo;re typically configured using REST APIs, making it challenging to adopt cloud-native patterns such as GitOps and declarative configuration.<\/li>\n<li><a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\">Designed for API management, rather than designed for microservices<\/a>.<\/li>\n<\/ul>\n<p>A Layer 7 proxy can be used as an API gateway, but typically requires additional bespoke development to support microservices use cases. In fact, many API gateways package the additional features needed for an API gateway on top of an L7 proxy. Emissary uses Envoy, while Kong uses NGINX. If you&rsquo;re interested in deploying Envoy directly, we&rsquo;ve written an <a href=\"https:\/\/www.datawire.io\/guide\/traffic\/getting-started-lyft-envoy-microservices-resilience\/\">introductory tutorial<\/a>.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#misc\">Misc<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the Module defines system-wide configuration. This module can be applied to any Kubernetes service (the <code>ambassador<\/code> service itself is a common choice). <strong>You may very well not need this Module.<\/strong> To apply the Module to an Ambassador Service, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> Modules in the same namespace, they should be put in the annotations of each separate Ambassador Service.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"Ambassador Module","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#envoy\">Envoy<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#general\">General<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#grpc\">gRPC<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#header-behavior\">Header behavior<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#observability\">Observability<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#protocols\">Protocols<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#security\">Security<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#service-health--timeouts\">Service health \/ timeouts<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador\/#traffic-management\">Traffic management<\/a><\/li>\n<\/ul>\n<\/div>\n<p>If present, the <code>ambassador<\/code> <code>Module<\/code> defines system-wide configuration for Emissary. You won&rsquo;t need it unless you need to change one of the system-wide configuration settings below.<\/p>\n<p>To use the <code>ambassador<\/code> <code>Module<\/code> to configure Emissary, it MUST be named <code>ambassador<\/code>, otherwise it will be ignored.  To create multiple <code>ambassador<\/code> <code>Module<\/code>s in the same Kubernetes namespace, you will need to apply them as annotations with separate <code>ambassador_id<\/code>s: you will not be able to use multiple CRDs.<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"ambassador module defaults","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/defaults\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/defaults\/","description":"<p>If present, the <code>ambassador Module<\/code> can define a set of defaults that will automatically be applied to certain resources:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">defaults<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">           <\/span><span style=\"color:#8f5902;font-style:italic\"># This is a class. Different resource types will look in different classes.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1   <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># Within a class, you can set different keys.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#204a87;font-weight:bold\">key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">class2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">        <\/span><span style=\"color:#000\">...<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key1<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value1 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># If a key isn&#39;t found in a resource&#39;s class, the system will look in the<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">top_key2<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">value2 <\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#8f5902;font-style:italic\"># toplevel defaults dictionary for it.<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"mapping\">Mapping<\/h3>\n<p>Currently, only the <code>Mapping<\/code> resource uses the <code>defaults<\/code> mechanism. <code>Mapping<\/code> looks first for defaultable resources in the <code>httpmapping<\/code> class, including:<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/architecture\/","description":"<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/architecture\/","description":"<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/architecture\/","description":"<h1 id=\"the-emissary-architecture\">The Emissary architecture<\/h1>\n<h2 id=\"emissary-is-a-control-plane\">Emissary is a control plane<\/h2>\n<p>Emissary is a specialized <a href=\"https:\/\/blog.getambassador.io\/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d\">control plane for Envoy Proxy<\/a>. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>.<\/p>\n<p><img alt=\"Architecture\" src=\"..\/..\/images\/ambassador-arch.png\"><\/p>\n<h2 id=\"details\">Details<\/h2>\n<ol>\n<li>The service owner defines configuration in Kubernetes manifests.<\/li>\n<li>When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.<\/li>\n<li>Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.<\/li>\n<li>The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.<\/li>\n<li>Traffic flows through the reconfigured Envoy, without dropping any connections.<\/li>\n<\/ol>\n<h2 id=\"scaling-and-availability\">Scaling and availability<\/h2>\n<p>Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes <code>deployment<\/code> and can be scaled and managed like any other Kubernetes deployment.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication, via the AuthService resource.  An AuthService configures Emissary to use an external service to check authentication and authorization for incoming requests. Each incoming request is authenticated before routing to its destination.<\/p>\n<p>All requests are validated by the AuthService (unless the Mapping applied to the request sets <code>bypass_auth<\/code>).  It is not possible to combine multiple AuthServices.  While it is possible to create multiple AuthService resources, they will be load-balanced between each resource in a round-robin fashion. This is useful for canarying an AuthService change, but is not useful for deploying multiple distinct AuthServices.  In order to combine multiple external services (either having multiple services apply to the same request, or selecting between different services for the different requests), instead of using an AuthService, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack External Filter<\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"Authentication service","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/auth-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/auth-service\/","description":"<p>Emissary provides a highly flexible mechanism for authentication,\nvia the <code>AuthService<\/code> resource.  An <code>AuthService<\/code> configures\nEmissary to use an external service to check authentication and\nauthorization for incoming requests.  Each incoming request is\nauthenticated before routing to its destination.<\/p>\n<p>All requests are validated by the <code>AuthService<\/code> (unless the <code>Mapping<\/code>\napplied to the request sets <code>bypass_auth<\/code>).  It is not possible to\ncombine multiple <code>AuthServices<\/code>.  While it is possible to create\nmultiple <code>AuthService<\/code> resources, Emissary load-balances between\nthem in a round-robin fashion.  This is useful for canarying an\n<code>AuthService<\/code> change, but is not useful for deploying multiple\ndistinct <code>AuthServices<\/code>.  In order to combine multiple external\nservices (either having multiple services apply to the same request,\nor selecting between different services for the different requests),\ninstead of using an <code>AuthService<\/code>, use an <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">Ambassador Edge Stack <code>External<\/code>\n<code>Filter<\/code><\/a>.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"AuthService settings","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/authservice\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/authservice\/","description":"<p>A Mapping can pass these settings along to an <a href=\"..\/..\/running\/services\/auth-service\">AuthService<\/a>.  This is helpful to allow these specific configurations to apply only to certain Mappings and not globally.<\/p>\n<h2 id=\"bypass-authentication\">Bypass authentication<\/h2>\n<p>An AuthService can be disabled for a specific Mapping with the <code>bypass_auth<\/code> attribute. This will tell Emissary to allow all requests for that Mapping through without interacting with the external auth service.  This could be helpful, for example, for a public API.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"..\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"https:\/\/www.getambassador.io\/docs\/edge-stack\/pre-release\/topics\/using\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"..\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"https:\/\/www.getambassador.io\/docs\/edge-stack\/pre-release\/topics\/using\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"https:\/\/www.getambassador.io\/docs\/edge-stack\/pre-release\/topics\/using\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"https:\/\/www.getambassador.io\/docs\/edge-stack\/pre-release\/topics\/using\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"..\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"..\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"Automatic retries","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/retries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/retries\/","description":"<p>Sometimes requests fail. When these requests fail for transient issues, Emissary can automatically retry the request.<\/p>\n<p>Retry policy can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>. Generally speaking, you should set <code>retry_policy<\/code> on a per mapping basis. Global retries can easily result in unexpected cascade failures.<\/p>\n<blockquote>\n<p>Note that when setting <code>retry_policy<\/code>, adjusting <code>max_retries<\/code> in the <a href=\"..\/circuit-breakers\/\">circuit breaker<\/a> configuration should also be considered in order to account for all desired retries.<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-with-aws\/","description":"<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-with-aws\/","description":"<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-with-aws\/","description":"<h1 id=\"emissary-with-aws\">Emissary with AWS<\/h1>\n<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-with-aws\/","description":"<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-with-aws\/","description":"<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-with-aws\/","description":"<h1 id=\"emissary-with-aws\">Emissary with AWS<\/h1>\n<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-with-aws\/","description":"<h1 id=\"emissary-with-aws\">Emissary with AWS<\/h1>\n<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-with-aws\/","description":"<h1 id=\"emissary-with-aws\">Emissary with AWS<\/h1>\n<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"AWS","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-with-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-with-aws\/","description":"<h1 id=\"emissary-with-aws\">Emissary with AWS<\/h1>\n<p>Emissary is a platform agnostic Kubernetes API gateway. It will run in any distribution of Kubernetes whether it is managed by a cloud provider or on homegrown bare-metal servers.<\/p>\n<p>This document serves as a reference for different configuration options available when running Kubernetes in AWS. See <a href=\"..\/..\/install\">Installing Emissary<\/a> for the various installation methods available.<\/p>\n<h2 id=\"recommended-configuration\">Recommended configuration<\/h2>\n<p>There are lot of configuration options available to you when running Emissary in AWS. While you should read this entire document to understand what is best for you, the following is the recommended configuration when running Emissary in AWS:<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Bare metal","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/bare-metal\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/bare-metal\/","description":"<p>In cloud environments, provisioning a readily available network load balancer with Emissary is the best option for handling ingress into your Kubernetes cluster. When running Kubernetes on a bare metal setup, where network load balancers are not available by default, we need to consider different options for exposing Emissary.<\/p>\n<h2 id=\"exposing-emissary-via-nodeport\">Exposing Emissary via NodePort<\/h2>\n<p>The simplest way to expose an application in Kubernetes is via a <code>NodePort<\/code> service. In this configuration, we create the Emissary service] and identify <code>type: NodePort<\/code> instead of <code>LoadBalancer<\/code>. Kubernetes will then create a service and assign that service a port to be exposed externally and direct traffic to Emissary via the defined <code>port<\/code>.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/install-ambassador-oss\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/ext-filters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/ext-filters\/","description":"<Alert severity=\"info\">\n  This guide applies to Ambassador Edge Stack, use of this guide on the Emissary is not recommended.  API Gateway does <a href=\"..\/basic-auth\">authentication using the AuthService resource<\/a> instead of the Filter resource as described below.\n<\/Alert>\n<p>Ambassador Edge Stack can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Ambassador Edge Stack to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Ambassador Edge Stack tutorial<\/a>.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the quote application in your cluster as described in the <a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing\nservice. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the\nquote application in your cluster as described in the\n<a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the quote application in your cluster as described in the <a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic Authentication","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/basic-auth\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/basic-auth\/","description":"<p>Emissary can authenticate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use an external third\nparty authentication service. We&rsquo;re assuming also that you are running the quote application in your cluster as described in the <a href=\"..\/..\/tutorials\/quickstart-demo\/\">Emissary tutorial<\/a>.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> guide. If you haven&rsquo;t done that already, you should do so now.<\/p>\n<p>Once complete, you&rsquo;ll have a Kubernetes cluster running Emissary. Let&rsquo;s walk through adding authentication to this setup.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/rate-limiting-tutorial\/","description":"<p>IMPORTANT: This guide applies to Emissary, use of this guide on Ambassador Edge Stack is not fully supported.  Use the existing <a href=\"..\/..\/topics\/using\/rate-limits\/\">RateLimitService<\/a> instead.<\/p>\n<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure the Emissary to use a simple third party rate limit service. If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"..\/..\/topics\/using\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/basic-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/basic-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li><code>RateLimitService<\/code> that tells Emissary what service to use for rate\nlimiting. (Emissary provides a <code>RateLimitService<\/code>\nimplementation for you).<\/li>\n<li>Labels that get attached to requests; a label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/li>\n<\/ul>\n<h2 id=\"attaching-labels-to-requests\">Attaching labels to requests<\/h2>\n<p>There are two ways of setting labels on a request:<\/p>\n<ol>\n<li>\n<p>On an individual <a href=\"..\/mappings\">Mapping<\/a>.  Labels set\nhere will only apply to requests that use that Mapping.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/basic-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/basic-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/base-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/base-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/basic-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/basic-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/basic-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/basic-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/basic-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/basic-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/base-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/base-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/base-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/base-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic rate limiting","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/base-rate-limiting\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/base-rate-limiting\/","description":"<p>Rate limiting in Emissary is composed of two parts:<\/p>\n<ul>\n<li>\n<p>The <a href=\"..\/..\/running\/services\/rate-limit-service\"><code>RateLimitService<\/code><\/a> resource tells Emissary what external service\nto use for rate limiting.<\/p>\n<p><Alert severity=\"info\">If Emissary cannot contact the rate limit service, it will allow the request to be processed as if there were no rate limit service configuration.<\/Alert><\/p>\n<\/li>\n<li>\n<p><em>Labels<\/em> that get attached to requests. A label is basic metadata that\nis used by the <code>RateLimitService<\/code> to decide which limits to apply to\nthe request.<\/p>"},{"title":"Basic Rate Limiting","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/rate-limiting-tutorial\/","description":"<p><Alert severity=\"info\">This guide applies to Emissary. It will not work correctly\non Ambassador Edge Stack.<\/Alert><\/p>\n<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Basic Rate Limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/rate-limiting-tutorial\/","description":"<p><Alert severity=\"info\">This guide applies to Emissary. It will not work correctly\non Ambassador Edge Stack.<\/Alert><\/p>\n<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Basic Rate Limiting","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/rate-limiting-tutorial\/","description":"<p><Alert severity=\"info\">This guide applies to Emissary. It will not work correctly\non Ambassador Edge Stack.<\/Alert><\/p>\n<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Canary releases","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/canary\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/canary\/","description":"<p>Canary releasing is a deployment pattern where a small percentage of traffic is diverted to an early (&ldquo;canary&rdquo;) release of a particular service. This technique lets you test a release on a small subset of users, mitigating the impact of any given bug. Canary releasing also allows you to quickly roll back to a known good version in the event of an unexpected error. Detailed monitoring of core service metrics is an essential part of canary releasing, as monitoring enables the rapid detection of problems in the canary release.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>Circuit breaking configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>circuit_breakers<\/code> attribute configures circuit breaking. The following fields are supported:<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Circuit breakers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/circuit-breakers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/circuit-breakers\/","description":"<p>Circuit breakers are a powerful technique to improve resilience. By preventing additional connections or requests to an overloaded service, circuit breakers limit the <a href=\"https:\/\/www.ibm.com\/garage\/method\/practices\/manage\/practice_limited_blast_radius\/\">&ldquo;blast radius&rdquo;<\/a> of an overloaded service. By design, Emissary circuit breakers are distributed, i.e., different Emissary instances do not coordinate circuit breaker information.<\/p>\n<h2 id=\"circuit-breaker-configuration\">Circuit breaker configuration<\/h2>\n<p>A default circuit breaking configuration can be set for all\nEmissary resources in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set to a different value on a\nper-resource basis for <a href=\"..\/mappings\"><code>Mappings<\/code><\/a>,\n<a href=\"..\/tcpmappings\/\"><code>TCPMappings<\/code><\/a>, and\n<a href=\"..\/..\/running\/services\/auth-service\/\"><code>AuthServices<\/code><\/a>.<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications will choose to encrypt all traffic, there\nare reasons why you will want to support clients who access your website\nwithout encryption in cleartext.<\/p>\n<p>Emissary supports both forcing\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<h2 id=\"cleartext-routing\">Cleartext routing<\/h2>\n<p>Emissary has full support for routing cleartext traffic to upstream services\nfor a <code>Host<\/code>.<\/p>\n<h3 id=\"only-cleartext\">Only cleartext<\/h3>\n<p>The default for the Open-Source Emissary is to serve cleartext on\nport 8080 in the container. See <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/\">TLS documentation<\/a> for information on\nhow to configure TLS termination.<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Cleartext support","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/cleartext-redirection\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/cleartext-redirection\/","description":"<p>While most modern web applications choose to encrypt all traffic, there remain\ncases where supporting cleartext communications is important. Emissary supports\nboth forcing <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/cleartext-redirection\/#http-https-redirection\">automatic redirection to HTTPS<\/a> and\n<a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/cleartext-redirection\/#cleartext-routing\">serving cleartext<\/a> traffic on a <code>Host<\/code>.<\/p>\n<Alert severity=\"info\">\n  The <a href=\"..\/..\/listener\"><code>Listener<\/code><\/a> and\n  <a href=\"..\/..\/host-crd\"><code>Host<\/code><\/a> CRDs work together to manage HTTP and HTTPS routing.\n  This document is meant as a quick reference to the <code>Host<\/code> resource: for a more complete\n  treatment of handling cleartext and HTTPS, see <a href=\"..\/..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.\n<\/Alert>\n<h2 id=\"cleartext-routing\">Cleartext Routing<\/h2>\n<p>To allow cleartext to be routed, set the <code>requestPolicy.insecure.action<\/code> of a <code>Host<\/code> to <code>Route<\/code>:<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Client certificate validation","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/client-cert-validation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/client-cert-validation\/","description":"<p>Sometimes, for additional security or authentication purposes, you will want\nthe server to validate who the client is before establishing an encrypted\nconnection.<\/p>\n<p>To support this, Emissary can be configured to use a provided CA certificate\nto validate certificates sent from your clients. This allows for client-side\nmTLS where both Emissary and the client provide and validate each other&rsquo;s\ncertificates.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.openssl.org\/source\/\">openssl<\/a> For creating client certificates<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a><\/li>\n<li><a href=\"..\/..\/tutorials\/getting-started\">Emissary<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/download.html\">cURL<\/a><\/li>\n<\/ul>\n<h2 id=\"configuration\">Configuration<\/h2>\n<ol>\n<li>\n<p>Create a certificate and key.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Configuring Emissary Communications","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/configure-communications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/configure-communications\/","description":"<p>For Emissary to do its job of managing network communications for your services, it first needs to know how its own communications should be set up. This is handled by a combination of resources: the <code>Listener<\/code>, the <code>Host<\/code>, and the <code>TLSContext<\/code>.<\/p>\n<ul>\n<li><code>Listener<\/code>: defines where, and how, Emissary should listen for requests from the network.<\/li>\n<li><code>Host<\/code>: defines which hostnames Emissary should care about, and how to handle different kinds of requests for those hosts. <code>Host<\/code>s can be associated with one or more <code>Listener<\/code>s.<\/li>\n<li><code>TLSContext<\/code>: defines whether, and how, Emissary will manage TLS certificates and options. <code>TLSContext<\/code>s can be associated with one or more <code>Host<\/code>s.<\/li>\n<\/ul>\n<p>Once the basic communications setup is in place, Emissary <code>Mapping<\/code>s and <code>TCPMapping<\/code>s can be associated with <code>Host<\/code>s to actually do routing.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#installing-consul\">Installing consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#routing-to-consul-services\">Routing to consul services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#consul-connector-and-encrypted-tls\">Consul connector and encrypted TLS<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh. You can use Consul with Emissary, as it natively supports Consul for service discovery and end-to-end TLS (including mTLS between services). This capability is particularly useful when deploying Emissary in so-called hybrid clouds, where applications are deployed on VMs and Kubernetes. In this environment, Emissary can securely route over TLS to any application regardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Consul integration","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#consul-integration\">Consul integration<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#architecture-overview\">Architecture overview<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#installing-consul\">Installing Consul<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#installing-consul\">Installing Emissary<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#using-consul-for-service-discovery\">Using Consul for service discovery<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#using-consul-for-authorization-and-encryption\">Using Consul for authorization and encryption<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#environment-variables\">Environment variables<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/consul\/#more-information\">More information<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/www.consul.io\">Consul<\/a> is a widely used service mesh.\nEmissary natively supports service discovery and unauthenticated\ncommunication to services in Consul.  Additionally, the <em>Ambassador\nConsul Connector<\/em> enables Emissary to encrypt and authenticate\nits communication via mTLS with services in Consul that make use of\n<a href=\"https:\/\/www.consul.io\/docs\/connect\">Consul&rsquo;s <em>Connect<\/em> feature<\/a>.<\/p>\n<h2 id=\"architecture-overview\">Architecture overview<\/h2>\n<p>Using Consul with Emissary is particularly useful when deploying\nEmissary in hybrid cloud environments where you deploy\napplications on VMs and Kubernetes.  In this environment, Consul\nenables Emissary to securely route over TLS to any application\nregardless of where it is deployed.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary $version$ installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary 3.X installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary $version$ installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary $version$ installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary $version$ installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary $version$ installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary 3.X installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Convert to v3alpha1","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/convert-to-v3alpha1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/convert-to-v3alpha1\/","description":"<p>Once your Emissary 3.X installation is running, it is <strong>strongly recommended<\/strong> that\nyou convert your existing configuration resources from <code>getambassador.io\/v2<\/code> to\n<code>getambassador.io\/v3alpha1<\/code>.<\/p>\n<Alert severity=\"info\">\n  While it is not necessary to convert all your resources to <code>getambassador.io\/v3alpha1<\/code>\n  immediately, you should ultimately update them all for full functionality with Emissary\n<\/Alert>\n<p>In general, the best way to convert any resource is to start with <code>kubectl get<\/code>: using\n<code>kubectl get -o yaml<\/code> on any <code>getambassador.io\/v2<\/code> resource will cause Emissary to\ntranslate it to a <code>getambassador.io\/v3alpha1<\/code> resource. You can then verify that the\n<code>getambassador.io\/v3alpha1<\/code> resource looks correct and re-apply it, which will convert the\nstored copy to <code>getambassador.io\/v3alpha1<\/code>.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Cross-Origin Resource Sharing (CORS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/cors\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/cors\/","description":"<p>Cross-Origin resource sharing lets users request resources (e.g., images, fonts, videos) from domains outside the original domain.<\/p>\n<p>CORS configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>When the CORS attribute is set at either the <code>Mapping<\/code> or <code>Module<\/code> level, Emissary will intercept the pre-flight <code>OPTIONS<\/code> request and respond with the appropriate CORS headers. This means you will not need to implement any logic in your upstreams to handle these CORS <code>OPTIONS<\/code> requests.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on a <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Custom error responses","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/custom-error-responses\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/custom-error-responses\/","description":"<p>Custom error responses set overrides for HTTP response statuses generated either\nby Emissary or upstream services.<\/p>\n<p>They can be configured either on the Emissary\n<a href=\"..\/ambassador\"><code>Module<\/code><\/a>\nor on an <a href=\"..\/..\/using\/intro-mappings\/\"><code>Mapping<\/code><\/a>, the schema is identical. See\nbelow for more information on <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/custom-error-responses\/#rule-precedence\">rule precedence<\/a>.<\/p>\n<ul>\n<li><code>on_status_code<\/code>: HTTP status code to match for this rewrite\nrule. Only 4xx and 5xx classes are supported.<\/li>\n<li><code>body<\/code>: Describes the response body contents and format.\n<ul>\n<li><code>content_type<\/code>: A string that sets the content type of the\nresponse.<\/li>\n<li><code>text_format<\/code>: A string whose value will be used as the new\nresponse body. <code>Content-Type<\/code> will default to <code>text\/plain<\/code> if\nunspecified.<\/li>\n<li><code>json_format<\/code>: A config object whose keys and values will be\nserialized as JSON and used as the new response body.<\/li>\n<li><code>text_format_source<\/code>: Describes a file to be used as the\nresponse. If used, <code>filename<\/code> must be set and the file must exist\non the Emissary pod.\n<ul>\n<li><code>filename<\/code>: A file path on the Emissary pod that will be used\nas the new response body.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Only one of <code>text_format<\/code>, <code>json_format<\/code>, or <code>text_format_source<\/code> may be provided.<\/p>"},{"title":"Customizing Project deployment","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/project-customization\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/project-customization\/","description":"<h2 id=\"this-feature-is-deprecated-consider-the-argo-rollouts-integrationdocsargolatestquick-start-with-emissary\">This feature is DEPRECATED. Consider the <a href=\"https:\/\/emissary-ingress.dev\/docs\/argo\/latest\/quick-start\">Argo Rollouts integration<\/a> with Emissary.<\/h2>\n<p>The project controller deploys each project revision using a default set of resources that include:<\/p>\n<ul>\n<li>a Deployment<\/li>\n<li>a Service<\/li>\n<li>a Mapping<\/li>\n<\/ul>\n<p>If you want to customize how these resources are defined or even deploy your application using a different set of resources, then you can define a <code>project-revision.yaml.tmpl<\/code> file in your repo.<\/p>\n<p>When writing this file there are a number of things that are helpful to keep in mind:<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the &ldquo;Diagnostics&rdquo; tab from the <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/edge-policy-console\/\">Edge Policy Console<\/a>, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"check-emissary-status\">Check Emissary status<\/h2>\n<p>First, check to see if the Edge Policy Console is reachable. If it is successful, try to diagnose your original issue with the Console.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Debugging","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/debugging\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/debugging\/","description":"<p>If you\u2019re experiencing issues with the Emissary and cannot diagnose the issue through the <code>\/ambassador\/v0\/diag\/<\/code> diagnostics endpoint, this document covers various approaches and advanced use cases for debugging Emissary issues.<\/p>\n<p>We assume that you already have a running Emissary installation in the following sections.<\/p>\n<h2 id=\"a-note-on-tls\">A Note on TLS<\/h2>\n<p><a href=\"..\/tls\">TLS<\/a> can appear intractable if you haven&rsquo;t set up <a href=\"..\/tls#certificates-and-secrets\">certificates<\/a> correctly. If you&rsquo;re\nhaving trouble with TLS, always <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/debugging\/#review-logs\">check the logs<\/a> of your Emissary Pods and look for\ncertificate errors.<\/p>"},{"title":"Deploying to Kubernetes from Github","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/projects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/projects\/","description":"<h2 id=\"this-feature-is-deprecated-consider-the-argo-rollouts-integrationdocsargolatestquick-start-with-emissary\">This feature is DEPRECATED. Consider the <a href=\"https:\/\/emissary-ingress.dev\/docs\/argo\/latest\/quick-start\">Argo Rollouts integration<\/a> with Emissary.<\/h2>\n<p>In this guide, we&rsquo;ll walk you through using Emissary&rsquo;s <a href=\"..\/..\/topics\/using\/projects\/\">Project CRD<\/a>. At the end of this you will have launched your own microservice in less time than it takes to microwave popcorn. Not only that, but this service will meet the most important standards of <strong>production-readiness<\/strong>. It will be:<\/p>\n<ul>\n<li><strong>Secure:<\/strong> Protected with TLS, Authentication, and Rate Limiting<\/li>\n<li><strong>Robust:<\/strong> Complete with the usual -ilities: scalability, reliability, availability<\/li>\n<li><strong>Agile:<\/strong> Can be updated <em>quickly<\/em> and <em>frequently<\/em> without disrupting users!<\/li>\n<\/ul>\n<h2 id=\"before-you-begin\">Before You Begin<\/h2>\n<p>You will need:<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Deployment architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-deployment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-deployment\/","description":"<p>Emissary can be deployed in a variety of configurations. The specific configuration depends on your data center.<\/p>\n<h2 id=\"public-cloud\">Public cloud<\/h2>\n<p>If you&rsquo;re using a public cloud provider such as Amazon, Azure, or Google, Emissary can be deployed directly to a Kubernetes cluster running in the data center. Traffic is routed to Emissary via a cloud-managed load balancer such as an Amazon Elastic Load Balancer or Google Cloud Load Balancer. Typically, this load balancer is transparently managed by Kubernetes in the form of the <code>LoadBalancer<\/code> service type. Emissary then routes traffic to your services running in Kubernetes.<\/p>"},{"title":"Dev Portal tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/dev-portal-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/dev-portal-tutorial\/","description":"<p>In this tutorial, you will access and explore some of the key features of the Dev Portal.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster. This tutorial assumes you have deployed the <code>quote<\/code> app and\n<code>Mapping<\/code> from the <a href=\"..\/getting-started\/\">Emissary tutorial<\/a>.<\/p>\n<pre tabindex=\"0\"><code>export AMBASSADOR_LB_ENDPOINT=$(kubectl -n ambassador get svc ambassador -o &#34;go-template={{range .status.loadBalancer.ingress}}{{or .ip .hostname}}{{end}}&#34;)\n<\/code><\/pre><h2 id=\"edge-policy-console\">Edge Policy Console<\/h2>\n<p>First you are going to log in to the Edge Policy Console to explore some of its\nfeatures. The console is a web-based interface that can be used to configure and\nmonitor Emissary.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Developing custom filters for routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/filter-dev-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/filter-dev-guide\/","description":"<p>Sometimes you may want Ambassador Edge Stack to manipulate an incoming request. Some example use cases:<\/p>\n<ul>\n<li>Inspect an incoming request, and add a custom header that can then be used for routing<\/li>\n<li>Add custom Authorization headers<\/li>\n<li>Validate an incoming request fits an OpenAPI specification before passing the request to a target service<\/li>\n<\/ul>\n<p>Ambassador Edge Stack supports these use cases by allowing you to execute custom logic in <code>Filters<\/code>. Filters are written in Golang, and managed by Ambassador Edge Stack. If you want to write a filter in a language other than Golang, Ambassador Edge Stack also has an HTTP\/gRPC interface for Filters called <code>External<\/code>.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/diagnostics\/","description":"<p>If you&rsquo;re experiencing issues with Emissary, log in to your Edge Policy Console and choose from the left menu whether you want to:<\/p>\n<ul>\n<li>Debug issues from the Debugging tab<\/li>\n<li>Check the health status of your services from the Mappings tab<\/li>\n<\/ul>\n<h2 id=\"debugging\">Debugging<\/h2>\n<p>If Emissary is not routing your services as you&rsquo;d expect, your first step should be Emissary Diagnostics in the Edge Policy Console. Login to your Edge Policy Console and select the &ldquo;Debugging&rdquo; tab from the left menu.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/diagnostics\/","description":"<p>If you&rsquo;re experiencing issues with Emissary, log in to your Edge Policy Console and choose from the left menu whether you want to:<\/p>\n<ul>\n<li>Debug issues from the Debugging tab<\/li>\n<li>Check the health status of your services from the Mappings tab<\/li>\n<\/ul>\n<h2 id=\"debugging\">Debugging<\/h2>\n<p>If Emissary is not routing your services as you&rsquo;d expect, your first step should be Emissary Diagnostics in the Edge Policy Console. Login to your Edge Policy Console and select the &ldquo;Debugging&rdquo; tab from the left menu.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Diagnostics","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/diagnostics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/diagnostics\/","description":"<p>With Emissary Diagnostics and Ambassador Cloud, you get a summary of the current status and Mappings of your cluster and it&rsquo;s services, which gets displayed\nin <a href=\"https:\/\/www.getambassador.io\/docs\/cloud\/latest\/diagnostics-ui\/view-diagnostics\/\">Diagnostics Overview<\/a>.<\/p>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"cant-access-emissary-diagnostics-overview\">Can&rsquo;t access Emissary Diagnostics Overview?<\/h3>\n<p>Create an Ambassador <code>Module<\/code> if one does not already exist, and add the following config to enable diagnostics data.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Module<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">ambassador<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">config<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">diagnostics<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">      <\/span><span style=\"color:#204a87;font-weight:bold\">enabled<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Next, ensure that the <code>AES_REPORT_DIAGNOSTICS_TO_CLOUD<\/code> environment variable is set to <code>&quot;true&quot;<\/code> on the Agent deployment to allow diagnostics information to be reported to the cloud.<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building <a href=\"https:\/\/lightstep.com\/deep-systems\/\">\u201cdeep systems\u201d<\/a>.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building <a href=\"https:\/\/lightstep.com\/deep-systems\/\">\u201cdeep systems\u201d<\/a>.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building deep systems.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building <a href=\"https:\/\/lightstep.com\/deep-systems\/\">\u201cdeep systems\u201d<\/a>.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building <a href=\"https:\/\/lightstep.com\/deep-systems\/\">\u201cdeep systems\u201d<\/a>.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building deep systems.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building deep systems.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building deep systems.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/dist-tracing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/dist-tracing\/","description":"<p>The Kubernetes monitoring and distributed tracing landscape is hard to grasp. Although this conceptual approach to <a href=\"https:\/\/blog.getambassador.io\/distributed-tracing-with-java-microdonuts-kubernetes-and-the-ambassador-api-gateway-ace15b62a89e\">observability is nothing new<\/a> \u2014 companies like New Relic revolutionized single-application performance monitoring (APM) over a decade ago \u2014 it took a few years and the <a href=\"https:\/\/research.google\/pubs\/pub36356\/\">Dapper publication<\/a> for this idea to migrate to distributed applications. The importance of this technology is only increasing, as more and more of us are building deep systems.<\/p>\n<p>As the industry is slowly but surely maturing, standardization is underway. Standardization means proprietary vendor solutions and open source projects are able to collaborate, making our lives easier. For newcomers, understanding the plethora of options, concepts, specifications, and implementations available is still a daunting task:<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote of the Moment service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with Datadog","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-datadog\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-datadog\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use DataDog APM to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Dash0","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-dash0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-dash0\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Dash0 to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial will walk you through setting up Emissary with distributed tracing using Dash0. We&rsquo;ll use a local <a href=\"https:\/\/kind.sigs.k8s.io\/\">kind<\/a> cluster for this guide.<\/p>\n<p>First, create a kind cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>kind create cluster --name emissary\n<\/span><\/span><\/code><\/pre><\/div><p>Then follow the <a href=\"..\/..\/quick-start\">Quick Start<\/a> guide to install Emissary and the Faces demo application. After completing those steps, you&rsquo;ll have a Kubernetes cluster running Emissary and the Faces demo. Now let&rsquo;s add distributed tracing to this setup.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Dash0","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-dash0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-dash0\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Dash0 to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial will walk you through setting up Emissary with distributed tracing using Dash0. We&rsquo;ll use a local <a href=\"https:\/\/kind.sigs.k8s.io\/\">kind<\/a> cluster for this guide.<\/p>\n<p>First, create a kind cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>kind create cluster --name emissary\n<\/span><\/span><\/code><\/pre><\/div><p>Then follow the <a href=\"..\/..\/quick-start\">Quick Start<\/a> guide to install Emissary and the Faces demo application. After completing those steps, you&rsquo;ll have a Kubernetes cluster running Emissary and the Faces demo. Now let&rsquo;s add distributed tracing to this setup.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Dash0","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-dash0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-dash0\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Dash0 to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial will walk you through setting up Emissary with distributed tracing using Dash0. We&rsquo;ll use a local <a href=\"https:\/\/kind.sigs.k8s.io\/\">kind<\/a> cluster for this guide.<\/p>\n<p>First, create a kind cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span>kind create cluster --name emissary\n<\/span><\/span><\/code><\/pre><\/div><p>Then follow the <a href=\"..\/..\/quick-start\">Quick Start<\/a> guide to install Emissary and the Faces demo application. After completing those steps, you&rsquo;ll have a Kubernetes cluster running Emissary and the Faces demo. Now let&rsquo;s add distributed tracing to this setup.<\/p>"},{"title":"distributed tracing with opentelemetry and lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed Tracing with OpenTelemetry and Lightstep","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-lightstep\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-lightstep\/","description":"<p>In this tutorial, we&rsquo;ll configure <a href=\"https:\/\/www.getambassador.io\/products\/edge-stack\/api-gateway\">Emissary<\/a> to initiate a trace on some sample requests, collect them with the OpenTelemetry Collector and use Lightstep to visualize them.<\/p>\n<Alert severity=\"warning\">\n  Please note that the <code>TracingService<\/code> no longer supports the native Envoy Lightstep tracing driver as of Emissary version 3.4.0. If you are currently using the native Lightstep tracing driver, please refer to the bottom of the page on how to migrate.\n<\/Alert>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote of the Moment service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Distributed tracing with Zipkin","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-zipkin\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tracing-zipkin\/","description":"<p>In this tutorial, we&rsquo;ll configure Emissary to initiate a trace on some sample requests, and use Zipkin to visualize them.<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed Emissary <a href=\"..\/..\/tutorials\/getting-started\">Getting Started<\/a> guide. If you haven&rsquo;t done that already, you should do that now.<\/p>\n<p>After completing the Getting Started guide you will have a Kubernetes cluster running Emissary and the Quote service. Let&rsquo;s walk through adding tracing to this setup.<\/p>"},{"title":"Docker","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/docker\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/docker\/","description":"<p>In this Docker quickstart guide, we&rsquo;ll get Emissary running locally\nwith a demo configuration. In the next section, we&rsquo;ll then walk through how to\ndeploy Emissary in Kubernetes with a custom configuration.<\/p>\n<p><strong>Note<\/strong>: the Edge Policy Console is not supported on the Docker quickstart and\ncannot be accessed.<\/p>\n<h2 id=\"1-running-the-demo-configuration\">1. Running the demo configuration<\/h2>\n<p>By default, Emissary uses a demo configuration to show some of its basic features. Get it running with Docker, and expose Emissary on port 8080:<\/p>"},{"title":"Docker","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/docker\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/docker\/","description":"<p>In this Docker quickstart guide, we&rsquo;ll get Emissary running locally\nwith a demo configuration. In the next section, we&rsquo;ll then walk through how to\ndeploy Emissary in Kubernetes with a custom configuration.<\/p>\n<h2 id=\"1-running-the-demo-configuration\">1. Running the demo configuration<\/h2>\n<p>By default, Emissary uses a demo configuration to show some of its basic features. Get it running with Docker, and expose Emissary on port 8080:<\/p>\n<pre tabindex=\"0\"><code>docker run -it -p 8080:8080 --name=$productDeploymentName$ --rm docker.io\/emissaryingress\/emissary:$version$ --demo\n<\/code><\/pre><h2 id=\"2-emissarys-diagnostics\">2. Emissary&rsquo;s diagnostics<\/h2>\n<p>Emissary provides live diagnostics viewable with a web browser. While this would normally not be exposed to the public network, the Docker demo publishes the diagnostics service at the following URL:<\/p>"},{"title":"Docker","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/docker\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/docker\/","description":"<p>In this Docker quickstart guide, we&rsquo;ll get Emissary running locally\nwith a demo configuration. In the next section, we&rsquo;ll then walk through how to\ndeploy Emissary in Kubernetes with a custom configuration.<\/p>\n<h2 id=\"1-running-the-demo-configuration\">1. Running the demo configuration<\/h2>\n<p>By default, Emissary uses a demo configuration to show some of its basic features. Get it running with Docker, and expose Emissary on port 8080:<\/p>\n<pre tabindex=\"0\"><code>docker run -it -p 8080:8080 --name=$productDeploymentName$ --rm docker.io\/emissaryingress\/emissary:$version$ --demo\n<\/code><\/pre><h2 id=\"2-emissarys-diagnostics\">2. Emissary&rsquo;s diagnostics<\/h2>\n<p>Emissary provides live diagnostics viewable with a web browser. While this would normally not be exposed to the public network, the Docker demo publishes the diagnostics service at the following URL:<\/p>"},{"title":"Docker","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/docker\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/docker\/","description":"<p>In this Docker quickstart guide, we&rsquo;ll get Emissary running locally\nwith a demo configuration. In the next section, we&rsquo;ll then walk through how to\ndeploy Emissary in Kubernetes with a custom configuration.<\/p>\n<h2 id=\"1-running-the-demo-configuration\">1. Running the demo configuration<\/h2>\n<p>By default, Emissary uses a demo configuration to show some of its basic features. Get it running with Docker, and expose Emissary on port 8080:<\/p>\n<pre tabindex=\"0\"><code>docker run -it -p 8080:8080 --name=$productDeploymentName$ --rm docker.io\/emissaryingress\/emissary:$version$ --demo\n<\/code><\/pre><h2 id=\"2-emissarys-diagnostics\">2. Emissary&rsquo;s diagnostics<\/h2>\n<p>Emissary provides live diagnostics viewable with a web browser. While this would normally not be exposed to the public network, the Docker demo publishes the diagnostics service at the following URL:<\/p>"},{"title":"Docker","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/docker\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/docker\/","description":"<p>In this Docker quickstart guide, we&rsquo;ll get Emissary running locally\nwith a demo configuration. In the next section, we&rsquo;ll then walk through how to\ndeploy Emissary in Kubernetes with a custom configuration.<\/p>\n<h2 id=\"1-running-the-demo-configuration\">1. Running the demo configuration<\/h2>\n<p>By default, Emissary uses a demo configuration to show some of its basic features. Get it running with Docker, and expose Emissary on port 8080:<\/p>\n<pre tabindex=\"0\"><code>docker run -it -p 8080:8080 --name=$productDeploymentName$ --rm docker.io\/emissaryingress\/emissary:$version$ --demo\n<\/code><\/pre><h2 id=\"2-emissarys-diagnostics\">2. Emissary&rsquo;s diagnostics<\/h2>\n<p>Emissary provides live diagnostics viewable with a web browser. While this would normally not be exposed to the public network, the Docker demo publishes the diagnostics service at the following URL:<\/p>"},{"title":"Emissary End of Life Policy","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/emissary-eol\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/emissary-eol\/","description":"<p>This document describes the End of Life policy and maintenance windows for Ambassador Edge Stack, and to the open source project Emissary-ingress.<\/p>\n<h2 id=\"supported-versions\">Supported Versions<\/h2>\n<p>Ambassador Edge Stack and Emissary-ingress versions are expressed as <strong>x.y.z<\/strong>, where <strong>x<\/strong> is the major version, <strong>y<\/strong> is the minor version, and <strong>z<\/strong> is the patch version, following <a href=\"https:\/\/semver.org\/\">Semantic Versioning<\/a> terminology.<\/p>\n<p><strong>X-series (Major Versions)<\/strong><\/p>\n<ul>\n<li><strong>1.y<\/strong>: 1.0 GA on January 2020<\/li>\n<li><strong>2.y<\/strong>: 2.0.4 GA on October 2021, and 2.1.0 in December 2021.<\/li>\n<\/ul>\n<p><strong>Y-release (Minor versions)<\/strong><\/p>"},{"title":"Emissary End of Life Policy","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/emissary-eol\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/emissary-eol\/","description":"<p>This document describes the End of Life policy and maintenance windows for Ambassador Edge Stack, and to the open source project Emissary-ingress.<\/p>\n<h2 id=\"supported-versions\">Supported Versions<\/h2>\n<p>Ambassador Edge Stack and Emissary-ingress versions are expressed as <strong>x.y.z<\/strong>, where <strong>x<\/strong> is the major version, <strong>y<\/strong> is the minor version, and <strong>z<\/strong> is the patch version, following <a href=\"https:\/\/semver.org\/\">Semantic Versioning<\/a> terminology.<\/p>\n<p><strong>X-series (Major Versions)<\/strong><\/p>\n<ul>\n<li><strong>1.y<\/strong>: 1.0 GA on January 2020<\/li>\n<li><strong>2.y<\/strong>: 2.0.4 GA on October 2021, and 2.1.0 in December 2021.<\/li>\n<\/ul>\n<p><strong>Y-release (Minor versions)<\/strong><\/p>"},{"title":"Emissary End of Life Policy","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/emissary-eol\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/emissary-eol\/","description":"<p>This document describes the End of Life policy and maintenance windows for Ambassador Edge Stack, and to the open source project Emissary-ingress.<\/p>\n<h2 id=\"supported-versions\">Supported Versions<\/h2>\n<p>Ambassador Edge Stack and Emissary-ingress versions are expressed as <strong>x.y.z<\/strong>, where <strong>x<\/strong> is the major version, <strong>y<\/strong> is the minor version, and <strong>z<\/strong> is the patch version, following <a href=\"https:\/\/semver.org\/\">Semantic Versioning<\/a> terminology.<\/p>\n<p><strong>X-series (Major Versions)<\/strong><\/p>\n<ul>\n<li><strong>1.y<\/strong>: 1.0 GA on January 2020<\/li>\n<li><strong>2.y<\/strong>: 2.0.4 GA on October 2021, and 2.1.0 in December 2021.<\/li>\n<\/ul>\n<p><strong>Y-release (Minor versions)<\/strong><\/p>"},{"title":"Emissary End of Life Policy","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/emissary-eol\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/emissary-eol\/","description":"<p>This document describes the End of Life policy and maintenance windows for the open source project Emissary.<\/p>\n<h2 id=\"supported-versions\">Supported Versions<\/h2>\n<p>Emissary versions are expressed as <strong>x.y.z<\/strong>, where <strong>x<\/strong> is the major version, <strong>y<\/strong> is the minor version, and <strong>z<\/strong> is the patch version, following <a href=\"https:\/\/semver.org\/\">Semantic Versioning<\/a> terminology.<\/p>\n<p><strong>X-series (Major Versions)<\/strong><\/p>\n<ul>\n<li><strong>1.y<\/strong>: 1.0 GA on January 2020<\/li>\n<li><strong>2.y<\/strong>: 2.0.4 GA on October 2021, and 2.1.0 in December 2021.<\/li>\n<\/ul>\n<p><strong>Y-release (Minor versions)<\/strong><\/p>\n<ul>\n<li>For 1.y, that is <strong>1.14.z<\/strong><\/li>\n<li>For 2.y, that is <strong>2.3.z<\/strong><\/li>\n<\/ul>\n<p>In this document, <strong>Current<\/strong> refers to the latest X-series release.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/environment\/","description":"<p>To give you flexibility and independence from a hosting platform&rsquo;s uptime, you can pull the <code>ambassador<\/code> and <code>aes<\/code> images from any of the following registries:<\/p>\n<ul>\n<li><code>docker.io\/datawire\/<\/code>\n<ul>\n<li><strong>Note<\/strong>: In rare occasions, you may experience rate limits when using Docker Hub. See <a href=\"https:\/\/www.docker.com\/increase-rate-limits\">this page<\/a> to learn how to deal with them.<\/li>\n<\/ul>\n<\/li>\n<li><code>quay.io\/datawire\/<\/code><\/li>\n<li><code>gcr.io\/datawire\/<\/code><\/li>\n<\/ul>\n<p>For an even more robust installation, consider using a <a href=\"https:\/\/docs.docker.com\/registry\/recipes\/mirror\/\">local registry as a pull through cache<\/a> or configure a <a href=\"https:\/\/cloud.google.com\/container-registry\/docs\/using-dockerhub-mirroring\">publicly accessible mirror<\/a>.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Environment Variables","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/","description":"<p>Use the following variables for the environment of your Emissary container:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_id\"><code>AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>[ &quot;default&quot; ]<\/code><\/td>\n          <td style=\"text-align: left\">List of strings<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#aes_log_level\"><code>AES_LOG_LEVEL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>warn<\/code><\/td>\n          <td style=\"text-align: left\">Log level<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#agent_config_resource_name\"><code>AGENT_CONFIG_RESOURCE_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ambassador-agent-cloud-token<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_ambex_no_ratelimit\"><code>AMBASSADOR_AMBEX_NO_RATELIMIT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_ambex_snapshot_count\"><code>AMBASSADOR_AMBEX_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>30<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_cluster_id\"><code>AMBASSADOR_CLUSTER_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_config_base_dir\"><code>AMBASSADOR_CONFIG_BASE_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/ambassador<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_disable_features\"><code>AMBASSADOR_DISABLE_FEATURES<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Any<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_drain_time\"><code>AMBASSADOR_DRAIN_TIME<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>600<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_envoy_api_version\"><code>AMBASSADOR_ENVOY_API_VERSION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>V3<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>V3<\/code> or <code>V2<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_grpc_metrics_sink\"><code>AMBASSADOR_GRPC_METRICS_SINK<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (address:port)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_healthcheck_bind_address\"><code>AMBASSADOR_HEALTHCHECK_BIND_ADDRESS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0.0.0.0<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_healthcheck_bind_port\"><code>AMBASSADOR_HEALTHCHECK_BIND_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8877<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_healthcheck_ip_family\"><code>AMBASSADOR_HEALTHCHECK_IP_FAMILY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>ANY<\/code><\/td>\n          <td style=\"text-align: left\">String Enum; <code>IPV4_ONLY<\/code> or <code>IPV6_ONLY<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_istio_secret_dir\"><code>AMBASSADOR_ISTIO_SECRET_DIR<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>\/etc\/istio-certs<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_json_logging\"><code>AMBASSADOR_JSON_LOGGING<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_ready_port\"><code>AMBASSADOR_READY_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8006<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_ready_log\"><code>AMBASSADOR_READY_LOG<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <a href=\"https:\/\/golang.org\/pkg\/strconv\/#ParseBool\">Go <code>strconv.ParseBool<\/code><\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_label_selector\"><code>AMBASSADOR_LABEL_SELECTOR<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String (label=value)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_namespace\"><code>AMBASSADOR_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>default<\/code> (<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>)<\/td>\n          <td style=\"text-align: left\">Kubernetes namespace<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_reconfig_max_delay\"><code>AMBASSADOR_RECONFIG_MAX_DELAY<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_single_namespace\"><code>AMBASSADOR_SINGLE_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_snapshot_count\"><code>AMBASSADOR_SNAPSHOT_COUNT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>4<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_verify_ssl_false\"><code>AMBASSADOR_VERIFY_SSL_FALSE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#dd_entity_id\"><code>DD_ENTITY_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#dogstatsd\"><code>DOGSTATSD<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#scout_disable\"><code>SCOUT_DISABLE<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>false<\/code>=false, any other value=true<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#statsd_enabled\"><code>STATSD_ENABLED<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#statsd_port\"><code>STATSD_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>8125<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#statsd_host\"><code>STATSD_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>statsd-sink<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#statsd_flush_interval\"><code>STATSD_FLUSH_INTERVAL<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>1<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#_ambassador_id\"><code>_AMBASSADOR_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#_ambassador_tls_secret_name\"><code>_AMBASSADOR_TLS_SECRET_NAME<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#_ambassador_tls_secret_namespace\"><code>_AMBASSADOR_TLS_SECRET_NAMESPACE<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#_consul_host\"><code>_CONSUL_HOST<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">String<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#_consul_port\"><code>_CONSUL_PORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_disable_snapshot_server\"><code>AMBASSADOR_DISABLE_SNAPSHOT_SERVER<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_envoy_base_id\"><code>AMBASSADOR_ENVOY_BASE_ID<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>0<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"feature-flag-environment-variables\">Feature Flag Environment Variables<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Variable<\/th>\n          <th style=\"text-align: left\">Default value<\/th>\n          <th style=\"text-align: left\">Value type<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_eds_bypass\"><code>AMBASSADOR_EDS_BYPASS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; Python <code>value.lower() == &quot;true&quot;<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_force_secret_validation\"><code>AMBASSADOR_FORCE_SECRET_VALIDATION<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean: <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_knative_support\"><code>AMBASSADOR_KNATIVE_SUPPORT<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; non-empty=true, empty=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#ambassador_update_mapping_status\"><code>AMBASSADOR_UPDATE_MAPPING_STATUS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#envoy_concurrency\"><code>ENVOY_CONCURRENCY<\/code><\/a><\/td>\n          <td style=\"text-align: left\">Empty<\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/environment\/#disable_strict_label_selectors\"><code>DISABLE_STRICT_LABEL_SELECTORS<\/code><\/a><\/td>\n          <td style=\"text-align: left\"><code>false<\/code><\/td>\n          <td style=\"text-align: left\">Boolean; <code>true<\/code>=true, any other value=false<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"ambassador_id\"><code>AMBASSADOR_ID<\/code><\/h3>\n<p>Emissary supports running multiple installs in the same cluster without restricting a given instance of Emissary to a single namespace.\nThe resources that are visible to an installation can be limited with the <code>AMBASSADOR_ID<\/code> environment variable.<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\nubiquitous and well-tested <a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a>\nprotocol.  To enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\nubiquitous and well-tested <a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a>\nprotocol.  To enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"Envoy statistics with StatsD","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/statistics\/envoy-statsd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/statistics\/envoy-statsd\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>At the core of Emissary is <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>, which has built-in\nsupport for exporting a multitude of statistics about its own\noperations to StatsD (or to the modified DogStatsD used by Datadog).<\/p>\n<p>If enabled, then Emissary has Envoy expose this information via the\n<a href=\"https:\/\/github.com\/etsy\/statsd\">StatsD<\/a> protocol.\nTo enable this, you will simply need to set the environment\nvariable <code>STATSD_ENABLED=true<\/code> in Emissary&rsquo;s deployment YAML:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/ext_authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/ext_authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/ext_authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/ext_authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExtAuth protocol","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/ext-authz\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/ext-authz\/","description":"<p>By design, the ExtAuth protocol used by <a href=\"..\/auth-service\">the AuthService<\/a> and by <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/filters\/external\">External Filters<\/a> is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:<\/p>\n<ul>\n<li>Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.<\/li>\n<li>Supporting HTTP basic authentication (<a href=\"https:\/\/github.com\/datawire\/ambassador-auth-httpbasic\">see a sample implementation<\/a>).<\/li>\n<li>Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.<\/li>\n<li>Authenticating specific services (URLs), and not others.<\/li>\n<\/ul>\n<p>For each request, the ExtAuth service may either:<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"ExternalDNS","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/external-dns\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/external-dns\/","description":"<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns\">ExternalDNS<\/a> configures your existing DNS provider to make Kubernetes resources discoverable via public DNS servers by getting resources from the Kubernetes API to create a list of DNS records.<\/p>\n<h2 id=\"getting-started\">Getting started<\/h2>\n<h3 id=\"prerequisites\">Prerequisites<\/h3>\n<p>Start by checking the <a href=\"https:\/\/github.com\/kubernetes-sigs\/external-dns#deploying-to-a-cluster\">ExternalDNS repo&rsquo;s deployment instructions<\/a> to get information about the supported DNS providers and steps to setup ExternalDNS for your provider. Each DNS provider will have its own required steps as well as annotations, arguments, and permissions needed for the following configuration.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes annotations, so it can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Features and Benefits","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/features-and-benefits\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/features-and-benefits\/","description":"<p>In cloud-native organizations, developers frequently take on responsibility for the full development lifecycle of a service, from development to QA to operations. Emissary was specifically designed for these organizations where developers have operational responsibility for their service(s).<\/p>\n<p>As such, the Emissary is designed to be used by both developers and operators.<\/p>\n<h2 id=\"self-service-via-kubernetes-annotations\">Self-Service via Kubernetes Annotations<\/h2>\n<p>Emissary is built from the start to support <em>self-service<\/em> deployments &ndash; a developer working on a new service doesn&rsquo;t have to go to Operations to get their service added to the mesh, they can do it themselves in a matter of seconds. Likewise, a developer can remove their service from the mesh, or merge services, or separate services, as needed, at their convenience. All of these operations are performed via Kubernetes resources or annotations, so they can easily integrate with your existing development workflow.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>API management capabilities such as a developer portal and OpenID Connect integration for Single Sign-On.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Frequently Asked Questions","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/faq\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/faq\/","description":"<h2 id=\"general\">General<\/h2>\n<h3 id=\"why-emissary\">Why Emissary?<\/h3>\n<p>Kubernetes shifts application architecture for microservices, as well as the\ndevelopment workflow for a full-cycle development. Emissary is designed for\nthe Kubernetes world with:<\/p>\n<ul>\n<li>Sophisticated traffic management capabilities (thanks to its use of <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a>), such as load balancing, circuit breakers, rate limits, and automatic retries.<\/li>\n<li>A declarative, self-service management model built on Kubernetes Custom Resource Definitions, enabling GitOps-style continuous delivery workflows.<\/li>\n<\/ul>\n<p>We&rsquo;ve written about <a href=\"https:\/\/blog.getambassador.io\/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844\">the history of Emissary<\/a>, <a href=\"..\/why-ambassador\">Why Emissary In Depth<\/a>, <a href=\"..\/features-and-benefits\">Features and Benefits<\/a> and about the <a href=\"..\/..\/topics\/concepts\/microservices-api-gateways\/\">evolution of API Gateways<\/a>.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/v1alpha2\/api-types\/gatewayclass\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/v1alpha2\/references\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/reference\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/v1alpha2\/references\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/v1alpha2\/references\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/v1alpha2\/references\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/reference\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/reference\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Gateway API","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/gateway-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/gateway-api\/","description":"<p>Emissary now supports a limited subset of the new <code>v1alpha1<\/code> <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Gateway API<\/a>.\nNote that the Gateway API is not supported when <code>AMBASSADOR_LEGACY_MODE<\/code> is set.<\/p>\n<p>Support is currently limited to the following fields, however this will expand in future releases:<\/p>\n<ul>\n<li><code>Gateway.spec.listeners.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.type<\/code> (<code>Exact<\/code>, <code>Prefix<\/code>, and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.path.value<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.type<\/code> (<code>Exact<\/code> and <code>RegularExpression<\/code>)<\/li>\n<li><code>HTTPRoute.spec.rules.matches.header.values<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.serviceName<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.port<\/code><\/li>\n<li><code>HTTPRoute.spec.rules.forwardTo.weight<\/code><\/li>\n<\/ul>\n<p>Please see the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/reference\/spec\/\">specification<\/a> for more details.<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing Traffic from the Edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/#3-connect-your-cluster-to-ambassador-cloud\">3. Connect your Cluster to Ambassador Cloud<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s Next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<EmissaryGSTabs\/>\n<p><Alert severity=\"success\"><b>Success!<\/b> You have installed Emissary, now let&rsquo;s get some traffic flowing to your services.<\/Alert><\/p>\n<h2 id=\"2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to declaratively define Emissary\u2019s desired state. The workflow you are going to build uses a simple demo app and the <strong>Mapping CRD<\/strong>, which is the core resource that you will use with Emissary. It lets you route requests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/#connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<GettingStartedEmissary21Tabs version=\"$version$\" \/>\n<h3 id=\"connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/h3>\n<p>Now is a great moment to connect your new installation to Ambassador Cloud in order to fully leverage the power of Emissary and the Developer Control Plane (DCP).<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/#connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<GettingStartedEmissary21Tabs version=\"$version$\" \/>\n<h3 id=\"connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/h3>\n<p>Now is a great moment to connect your new installation to Ambassador Cloud in order to fully leverage the power of Emissary and the Developer Control Plane (DCP).<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/","description":"<h1 id=\"emissary-quick-start\">Emissary quick start<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/#connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<GettingStartedEmissary21Tabs version=\"$version$\" \/>\n<h3 id=\"connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/h3>\n<p>Now is a great moment to connect your new installation to Ambassador Cloud in order to fully leverage the power of Emissary and the Developer Control Plane (DCP).<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/","description":"<h1 id=\"emissary-quick-start\">Emissary quick start<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/#connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<GettingStartedEmissary21Tabs version=\"$version$\" \/>\n<h3 id=\"connecting-your-installation-to-ambassador-cloud\">Connecting your installation to Ambassador Cloud<\/h3>\n<p>Now is a great moment to connect your new installation to Ambassador Cloud in order to fully leverage the power of Emissary and the Developer Control Plane (DCP).<\/p>"},{"title":"Getting Started with Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/getting-started\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/getting-started\/","description":"<h1 id=\"emissary-quick-start\">Emissary quick start<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/getting-started\/#1-installation\">1. Installation<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/getting-started\/#2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/getting-started\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"1-installation\">1. Installation<\/h2>\n<p>We&rsquo;ll start by installing Emissary into your cluster.<\/p>\n<p><strong>We recommend using Helm<\/strong> but there are other options below to choose from.<\/p>\n<GettingStartedEmissary21Tabs version=\"$version$\" \/>\n<h2 id=\"2-routing-traffic-from-the-edge\">2. Routing traffic from the edge<\/h2>\n<p>Emissary uses Kubernetes Custom Resource Definitions (CRDs) to declaratively define its desired state. The workflow you are going to build uses a simple demo app, a <strong><code>Listener<\/code> CRD<\/strong>, and a <strong><code>Mapping<\/code> CRD<\/strong>. The <code>Listener<\/code> CRD tells Emissary what port to listen on, and the <code>Mapping<\/code> CRD tells Emissary how to route incoming requests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"GKE","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-with-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ambassador-with-gke\/","description":"<p>Google offers a <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/ingress\">L7 load balancer<\/a> to\nleverage network services such as managed SSL certificates, SSL offloading or the Google content delivery network.\nA L7 load balancer in front of Emissary can be configured by hand or by using the Ingress-GCE resource. Using the\nIngress resource also allows you to create Google-managed SSL certificates through Kubernetes.<\/p>\n<p>With this setup, HTTPS will be terminated at the Google load balancer. The load balancer will be created and configured by\nthe Ingress-GCE resource. The load balancer consists of a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/forwarding-rule-concepts#https_lb\">forwarding rules<\/a> and a set of\n<a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/backend-service\">backend services<\/a>.\nIn this setup, the ingress resource creates two forwarding rules, one for HTTP and one for HTTPS. The HTTPS\nforwarding rule has the SSL certificates attached. Also, one backend service will be created to point to\na list of instance groups at a static port. This will be the NodePort of the Emissary service.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"gRPC","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/grpc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/grpc\/","description":"<p>Emissary makes it easy to access your services from outside your application. This includes gRPC services, although a little bit of additional configuration is required: by default, Envoy connects to upstream services using HTTP\/1.x and then upgrades to HTTP\/2 whenever possible. However, gRPC is built on HTTP\/2 and most gRPC servers do not speak HTTP\/1.x at all. Emissary must tell its underlying Envoy that your gRPC service only wants to speak to that HTTP\/2, using the <code>grpc<\/code> attribute of a <code>Mapping<\/code>.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Gzip compression","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/gzip\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/gzip\/","description":"<p>Gzip enables Emissary to compress upstream data upon client request. Compression is useful in situations where large payloads need to be transmitted without compromising the response time. Compression can also save on bandwidth costs at the expense of increased computing costs.<\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>When the gzip filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. If so, and the request and response headers allow, the content is compressed and then sent to the client with the appropriate headers. It also uses the zlib module, which provides <code>Deflate<\/code> compression and decompression code.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a header to <code>true<\/code> to test for the existence of a header.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Header-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/headers\/","description":"<p>Emissary can route to target services based on HTTP headers with the <code>headers<\/code> and <code>regex_headers<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-headers-annotation\">The <code>headers<\/code> annotation<\/h2>\n<p>The <code>headers<\/code> attribute is a dictionary of <code>header<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>header<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<h3 id=\"example\">Example<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-quote-mode<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">    <\/span><span style=\"color:#204a87;font-weight:bold\">x-random-header<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">datawire<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will allow requests to \/backend\/ to succeed only if the x-quote-mode header has the value backend and the x-random-header has the value <code>datawire<\/code>.<\/p>"},{"title":"Helm","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/helm\/","description":"<p><a href=\"https:\/\/helm.sh\">Helm<\/a> is a package manager for Kubernetes that automates the release and management of software on Kubernetes. Emissary can be installed via a Helm chart with a few simple steps, depending on if you are deploying for the first time, upgrading Emissary from an existing installation, or migrating from Emissary.<\/p>\n<h2 id=\"before-you-begin\">Before you begin<\/h2>\n<p>The Emissary Helm chart is hosted by Datawire and published at <code>https:\/\/www.getambassador.io<\/code>.<\/p>\n<p>Start by adding this repo to your helm client with the following command:<\/p>"},{"title":"Helm","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/helm\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>. This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p><a href=\"https:\/\/helm.sh\">Helm<\/a> is a package manager for Kubernetes that automates the release and management of software on Kubernetes. Emissary can be installed via a Helm chart with a few simple steps, depending on if you are deploying for the first time, upgrading Emissary from an existing installation, or migrating from Emissary.<\/p>"},{"title":"Helm","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/helm\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>. This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p><a href=\"https:\/\/helm.sh\">Helm<\/a> is a package manager for Kubernetes that automates the release and management of software on Kubernetes. Emissary can be installed via a Helm chart with a few simple steps, depending on if you are deploying for the first time, upgrading Emissary from an existing installation, or migrating from Emissary.<\/p>"},{"title":"Helm","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/helm\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>. This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p><a href=\"https:\/\/helm.sh\">Helm<\/a> is a package manager for Kubernetes that automates the release and management of software on Kubernetes. Emissary can be installed via a Helm chart with a few simple steps, depending on if you are deploying for the first time, upgrading Emissary from an existing installation, or migrating from Emissary.<\/p>"},{"title":"Helm","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/helm\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>. This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p><a href=\"https:\/\/helm.sh\">Helm<\/a> is a package manager for Kubernetes that automates the release and management of software on Kubernetes. Emissary can be installed via a Helm chart with a few simple steps, depending on if you are deploying for the first time, upgrading Emissary from an existing installation, or migrating from Emissary.<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which resources to examine for further configuration<\/li>\n<li>How Emissary should handle <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/edgectl\/service-preview-reference\/\">Service Preview URLs<\/a><\/li>\n<\/ul>\n<p>A minimal Host resource, using Let\u2019s Encrypt to handle TLS, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host CRD","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/host-crd\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/host-crd\/","description":"<p>The custom <code>Host<\/code> resource defines how Emissary will be\nvisible to the outside world. It collects all the following information in a\nsingle configuration resource:<\/p>\n<ul>\n<li>The hostname by which Emissary will be reachable<\/li>\n<li>How Emissary should handle TLS certificates<\/li>\n<li>How Emissary should handle secure and insecure requests<\/li>\n<li>Which <code>Mappings<\/code> should be associated with this <code>Host<\/code><\/li>\n<\/ul>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> resources are&nbsp;<b>required<\/b>&nbsp;for a functioning\n  Emissary installation!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.\n<\/Alert>\n<Alert severity=\"warning\">\n  Remember than Emissary does not make sure that a wildcard <code>Host<\/code> exists! If the\n  wildcard behavior is needed, a <code>Host<\/code> with a <code>hostname<\/code> of <code>\"*\"<\/code>\n  must be defined by the user.\n<\/Alert>\n<p>A minimal <code>Host<\/code> resource, assuming no TLS configuration, would be:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"Host headers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/host\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/headers\/host\/","description":"<p>Emissary supports several different methods for managing the HTTP <code>Host<\/code> header.<\/p>\n<h2 id=\"using-host-and-host_regex\">Using <code>host<\/code> and <code>host_regex<\/code><\/h2>\n<p>A mapping that specifies the <code>host<\/code> attribute will take effect <em>only<\/em> if the HTTP <code>Host<\/code> header matches the value in the <code>host<\/code> attribute. If <code>host_regex<\/code> is <code>true<\/code>, the <code>host<\/code> value is taken to be a regular expression. Otherwise, an exact string match is required.<\/p>\n<p>You may have multiple mappings listing the same resource but different <code>host<\/code> attributes to effect <code>Host<\/code>-based routing. An example:<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 configuration","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/http3\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/http3\/","description":"<h1 id=\"http3-in-emissary\">HTTP\/3 in Emissary<\/h1>\n<p>HTTP\/3 is the third version of the Hypertext Transfer Protocol (HTTP). It is built on the <a href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a> network protocol rather than Transmission Control Protocol (TCP) like previous versions.<\/p>\n<h2 id=\"the-changes-and-challenges-of-http3\">The changes and challenges of HTTP\/3<\/h2>\n<p>Since the QUIC network protocol is built on UDP, most clients will require Emissary to advertise its support for HTTP\/3 using the <code>alt-svc<\/code> response header. This header is added to the response of the HTTP\/2 and HTTP\/1.1 connections. When the client sees the <code>alt-svc<\/code> it can choose to upgrade to HTTP\/3 and connect to Emissary using the QUIC protocol.<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Azure Kubernetes Service (AKS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-aks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-aks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Azure Kubernetes Service (AKS). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-aks\">Configuring an external load balancer for AKS<\/h2>\n<p>To configure an external load balancer for AKS, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-gke\/","description":"<h1 id=\"google-kubernetes-service-engine-http3-configuration\">Google Kubernetes Service Engine HTTP\/3 configuration<\/h1>\n<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 support for Google Kubernetes Engine (GKE)","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-gke\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-gke\/","description":"<p>This guide shows how to setup HTTP\/3 support for Google Kubernetes Engine (GKE). The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"configuring-an-external-load-balancer-for-gke\">Configuring an external load balancer for GKE<\/h2>\n<p>Currently, GKE only supports adding feature flags to <code>alpha<\/code> clusters, and doesn&rsquo;t support the creation of mixed protocol services of type <code>LoadBalancer<\/code>. To configure an external load balancer for GKE, you need to:<\/p>\n<ol>\n<li>Reserve a public static IP address.<\/li>\n<li>Create two <code>LoadBalancer<\/code> services, one for TCP and one for UDP.<\/li>\n<li>Assign the public static IP address to the <code>loadBalancerIP<\/code> field.<\/li>\n<\/ol>\n<p>An example of the two load balancer services described above looks as follows:<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/http3-eks\/","description":"<h1 id=\"amazon-elastic-kubernetes-service-http3-configuration\">Amazon Elastic Kubernetes Service HTTP\/3 configuration<\/h1>\n<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS) | Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS) | Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS) | Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"HTTP\/3 with Amazon Elastic Kubernetes Service (EKS) | Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-eks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/http3-eks\/","description":"<p>This guide shows how to setup HTTP\/3 support for Amazon Elastic Kubernetes Service (EKS) The instructions provided in this page are a continuation of the <a href=\"..\/..\/topics\/running\/http3\">HTTP\/3 in Emissary<\/a> documentation.<\/p>\n<h2 id=\"create-a-network-load-balancer-nlb\">Create a network load balancer (NLB)<\/h2>\n<p>The virtual private cloud (VPC) for your load balancer needs one public subnet in each availability zone where you have targets.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#ce5c00;font-weight:bold\">=(<\/span>&lt;your-subnet1-id&gt; &lt;your-subnet2-id&gt; &lt;your-subnet3-id&gt;<span style=\"color:#ce5c00;font-weight:bold\">)<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>aws elbv2 create-load-balancer <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLUSTER_NAME<\/span><span style=\"color:#4e9a06\">}<\/span>-nlb <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --type network <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#4e9a06\"><\/span>  --subnets <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SUBNET_IDS<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"create-a-nodeport-service\">Create a NodePort service<\/h2>\n<p>Now create a <code>NodePort<\/code> service for Emissary installation with two entries. Use <code>port: 443<\/code> to include support for both TCP and UDP traffic.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Ingress controller","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/","description":"<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#when-and-how-to-use-the-ingress-resource\">When and how to use the Ingress resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#what-is-required-to-use-the-ingress-resource\">What is required to use the Ingress resource?<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#when-to-use-an-ingress-instead-of-annotations-or-crds\">When to use an Ingress instead of annotations or CRDs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#ingress-support\">Ingress support<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#examples-of-ingress-configs-vs-mapping-configs\">Examples of Ingress configs vs Mapping configs<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#ingress-routes-and-mappings\">Ingress routes and mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#the-minimal-ingress\">The Minimal Ingress<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#name-based-virtual-hosting-with-an-ambassador-id\">Name based virtual hosting with an Ambassador ID<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/ingress-controller\/#tls-termination\">TLS Termination<\/a><\/li>\n<\/ul>\n<\/div>\n<p>An Ingress resource is a popular way to expose Kubernetes services to the Internet. In order to use Ingress resources, you need to install an <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/\">ingress controller<\/a>. Emissary can function as a fully-fledged Ingress controller, making it easy to work with other Ingress-oriented tools within the Kubernetes ecosystem.<\/p>"},{"title":"Install Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/install-ambassador-oss\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/install-ambassador-oss\/","description":"<p><strong>The Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, the Edge Policy Console UI, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<p>If you still want to use just Emissary, don&rsquo;t worry! You can follow the directions below to install it. Throughout the documentation, you&rsquo;ll see product tags at the top of the page, so you know what features apply to Emissary.<\/p>"},{"title":"Integration in community projects","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, the Edge Policy Console UI, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Integration to community projects","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/ambassador-oss-community\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/ambassador-oss-community\/","description":"<p><strong>Ambassador Edge Stack is now available and includes additional functionality beyond the current Emissary.<\/strong>\nThese features include automatic HTTPS, OAuth\/OpenID Connect authentication support, integrated rate\nlimiting, a developer portal, and <a href=\"https:\/\/emissary-ingress.dev\/edge-stack-faq\/\">more<\/a>.<\/p>\n<h2 id=\"emissary-integrations\">Emissary integrations<\/h2>\n<p>If you still want to use just Emissary, don&rsquo;t worry! Emissary\nis currently available out-of-the-box in some Kubernetes installers and local environments.<\/p>\n<Table \/>"},{"title":"Introduction to the `Project` resource","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/projects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/projects\/","description":"<h2 id=\"this-feature-is-deprecated-consider-the-argo-rollouts-integrationdocsargolatestquick-start-with-emissary\">This feature is DEPRECATED. Consider the <a href=\"https:\/\/emissary-ingress.dev\/docs\/argo\/latest\/quick-start\">Argo Rollouts integration<\/a> with Emissary.<\/h2>\n<p>Please note that the Project functionality is disabled by default. See <a href=\"..\/..\/..\/tutorials\/projects\/\">The Project Quickstart<\/a> for instructions on enabling the Project Controller and setting up your first <code>Project<\/code>.<\/p>\n<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The <code>Project<\/code> resource takes self-service, declarative configuration, and gitops to the next level by enabling developers to stage and deploy code with nothing more than a github repository.<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Introduction to the Mapping Resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/","description":"<p>Emissary is designed around a <a href=\"..\/..\/concepts\/gitops-continuous-delivery\">declarative, self-service management model<\/a>. The core resource used to support application development teams who need to manage the edge with Emissary is the <code>Mapping<\/code> resource.<\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are\n  &nbsp;<b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"quick-example\">Quick example<\/h2>\n<p>At its core a <code>Mapping<\/code> resource maps a <code>resource<\/code> to a <code>service<\/code>:<\/p>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Required attribute<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>name<\/code><\/td>\n          <td style=\"text-align: left\">is a string identifying the <code>Mapping<\/code> (e.g. in diagnostics)<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/#resources\"><code>prefix<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the URL prefix identifying your <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/#resources\">resource<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/#services\"><code>service<\/code><\/a><\/td>\n          <td style=\"text-align: left\">is the name of the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/intro-mappings\/#services\">service<\/a> handling the resource; must include the namespace (e.g. <code>myservice.othernamespace<\/code>) if the service is in a different namespace than Emissary<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>These resources are defined as Kubernetes Custom Resource Definitions. Here&rsquo;s a simple example that maps all requests to <code>\/httpbin\/<\/code> to the <code>httpbin.org<\/code> web service:<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, incoming traffic from outside the cluster is first routed through Emissary, which then routes the traffic to Istio-powered services. Emissary handles authentication, edge routing, TLS termination, and other traditional edge functions.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Istio","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/istio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/istio\/","description":"<p>Emissary and Istio: Edge Proxy and Service Mesh together in one. Emissary is deployed at the edge of your network and routes incoming traffic to your internal services (aka &ldquo;north-south&rdquo; traffic). <a href=\"https:\/\/istio.io\/\">Istio<\/a> is a service mesh for microservices, and is designed to add application-level Layer (L7) observability, routing, and resilience to service-to-service traffic (aka &ldquo;east-west&rdquo; traffic). Both Istio and Emissary are built using <a href=\"https:\/\/www.envoyproxy.io\">Envoy<\/a>.<\/p>\n<p>Emissary and Istio can be deployed together on Kubernetes. In this configuration, Emissary manages\ntraditional edge functions such as authentication, TLS termination, and edge routing. Istio mediates communication\nfrom Emissary to services, and communication between services.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Keepalive","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/keepalive\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/keepalive\/","description":"<p>Keepalive option indicates whether <code>SO_KEEPALIVE<\/code> on the socket should be enabled.<\/p>\n<h2 id=\"keepalive-configuration\">Keepalive configuration<\/h2>\n<p>Keepalive configuration can be set for all Emissary mappings in the <a href=\"..\/..\/running\/ambassador\"><code>ambassador Module<\/code><\/a> or set per <a href=\"..\/mappings\"><code>Mapping<\/code><\/a>.<\/p>\n<p>The <code>keepalive<\/code> attribute configures keepalive. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">keepalive<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">idle_time<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">interval<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">probes<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;integer&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"idle_time\"><code>idle_time<\/code><\/h3>\n<p>(Default: <code>7200<\/code>) The number of seconds a connection needs to be idle before keep-alive probes start being sent.<\/p>\n<h3 id=\"interval\"><code>interval<\/code><\/h3>\n<p>(Default: <code>75<\/code>) The number of seconds between keep-alive probes.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Knative","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/knative\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/knative\/","description":"<p><a href=\"https:\/\/knative.dev\/\">Knative<\/a> is a popular Kubernetes-based platform for managing serverless workloads with two main components:<\/p>\n<ul>\n<li>Eventing: Management and delivery of events<\/li>\n<li>Serving: Request-driven compute that can scale to zero<\/li>\n<\/ul>\n<p>We will be focusing on Knative Serving, which builds on Kubernetes to support deploying and serving of serverless applications and functions.<\/p>\n<p>Ambassador can watch for changes in Knative configuration in your Kubernetes cluster and set up routing accordingly.<\/p>\n<p><strong>Note:<\/strong> Knative was originally built with Istio handling cluster networking. This integration lets us replace Istio with  Ambassador, which will dramatically reduce the operational overhead of running Knative.<\/p>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Known Issues","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/known-issues\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/known-issues\/","description":"<h2 id=\"221\">2.2.1<\/h2>\n<ul>\n<li>TLS certificates using elliptic curves were incorrectly flagged as invalid. This issue is\ncorrected in Emissary 2.2.2.<\/li>\n<\/ul>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes Network Architecture","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/kubernetes-network-architecture\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/kubernetes-network-architecture\/","description":"<h1 id=\"kubernetes-network-architecture\">Kubernetes Network architecture<\/h1>\n<h2 id=\"kubernetes-has-its-own-isolated-network\">Kubernetes has its own isolated network<\/h2>\n<p>Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.<\/p>\n<h2 id=\"routing-traffic-to-your-kubernetes-cluster\">Routing traffic to your Kubernetes cluster<\/h2>\n<p>While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy \/ ingress controller along with an external load balancer. In this architecture, the network topology looks like this:<\/p>"},{"title":"Kubernetes SSO with OIDC and Keycloak","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/auth-kubectl-keycloak\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/auth-kubectl-keycloak\/","description":"<p>Developers use <code>kubectl<\/code> to access Kubernetes clusters. By default <code>kubectl<\/code> uses a certificate to authenticate to the Kubernetes API. This means that when multiple developers need to access a cluster, the certificate needs to be shared. Sharing the credentials to access a Kubernetes cluster presents a significant security problem. Compromise of the certificate is very easy and the consequences can be catastrophic.<\/p>\n<p>In this tutorial, we walk through how to set up your Kubernetes cluster to add Single Sign-On support for <code>kubectl<\/code> using OpenID Connect (OIDC) and Keycloak. Instead of using a shared certificate, users will be able to use their own personal credentials to use <code>kubectl<\/code> with <code>kubelogin<\/code>.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Linkerd 2","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/linkerd2\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/linkerd2\/","description":"<p><a href=\"https:\/\/www.linkerd.io\">Linkerd 2<\/a> is a zero-config and ultra-lightweight service mesh. Emissary natively supports Linkerd 2 for service discovery, end-to-end TLS (including mTLS between services), and (with Linkerd 2.8) multicluster operation.<\/p>\n<h2 id=\"architecture\">Architecture<\/h2>\n<p>Linkerd 2 is designed for simplicity, security, and performance. In the cluster, it runs a control plane in its own namespace and then injects sidecar proxy containers in every Pod that should be meshed.<\/p>\n<p>Emissary itself also needs to be interwoven or &ldquo;meshed&rdquo; with Linkerd 2, and then configured to add special Linkerd headers to requests that tell Linkerd 2 where to forward them. This ie because mTLS between services is automatically handled by the control plane and the proxies. Istio and Consul allow Emissary to initiate mTLS connections to upstream services by grabbing a certificate from a Kubernetes Secret. However, Linkerd 2 does not work this way, so Emissary must rely on Linkerd 2 for mTLS connections to upstream services. This means we want Linkerd 2 to inject its sidecar into Emissary&rsquo;s pods, but not Istio and Consul.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Listener CRD","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/listener\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/listener\/","description":"<p>The <code>Listener<\/code> CRD defines where, and how, Emissary should listen for requests from the network, and which <code>Host<\/code> definitions should be used to process those requests. For further examples of how to use <code>Listener<\/code>, see <a href=\"..\/..\/..\/howtos\/configure-communications\">Configuring Emissary Communications<\/a>.<\/p>\n<p><strong>Note that <code>Listener<\/code>s are never created by Emissary, and must be defined by the user.<\/strong> If you do not\ndefine any <code>Listener<\/code>s, Emissary will not listen anywhere for connections, and therefore won&rsquo;t do\nanything useful. It will log a <code>WARNING<\/code> to this effect.<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Load balancing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/load-balancer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/load-balancer\/","description":"<p>Load balancing configuration can be set for all Emissary mappings in the <a href=\"..\/ambassador\"><code>ambassador<\/code> <code>Module<\/code><\/a>, or set per <a href=\"..\/..\/using\/mappings\"><code>Mapping<\/code><\/a>. If nothing is set, simple round robin balancing is used via Kubernetes services.<\/p>\n<p>To use advanced load balancing, you must first configure a <a href=\"..\/resolvers\">resolver<\/a> that supports advanced load balancing (e.g., the Kubernetes Endpoint Resolver or Consul Resolver). Once a resolver is configured, you can use the <code>load_balancer<\/code> attribute. The following fields are supported:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">load_balancer<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">policy<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">&lt;load balancing policy to use&gt;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>Supported load balancer policies:<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Log Service","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/log-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/log-service\/","description":"<p>By default, Emissary puts the access logs on stdout; such\nthat the can be read using <code>kubectl logs<\/code>.  The format of those logs,\nand the local destination of them, can be configured using the\n<a href=\"..\/..\/ambassador\"><code>envoy_log_<\/code> settings in the <code>ambassador Module<\/code><\/a>.  However, the\noptions there only allow for logging local to Emissary&rsquo;s Pod.  By\nconfiguring a <code>LogService<\/code>, you can configure Emissary to\nreport its access logs to a remote service, in addition to the usual\n<code>ambassador Module<\/code> configured logging.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary $version$. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary 2.0. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary $version$. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary $version$. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary $version$. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary $version$. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary 2.0. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 2.X","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/changes-2.x\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/changes-2.x\/","description":"<p>The 2.X family introduces a number of changes to allow Emissary\nto more gracefully handle larger installations, reduce global configuration to\nbetter handle multitenant or multiorganizational installations, reduce memory\nfootprint, and improve performance. We welcome feedback!! Join us on\n<a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>While Emissary 2 is functionally compatible with Emissary 1.14, note\nthat this is a <strong>major version change<\/strong> and there are important differences between\nEmissary 1.X and Emissary 2.0. For details, read on.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Major Changes in Emissary 3.X","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/changes-3.y\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/about\/changes-3.y\/","description":"<p>The 3.X family introduces a number of changes to ensure Emissary\nkeeps up with latest Envoy versions and to support new features such as HTTP\/3.\nWe welcome feedback! Join us on <a href=\"http:\/\/a8r.io\/slack\">Slack<\/a> and let us know what you think.<\/p>\n<p>Emissary 3 is functionally compatible with Emissary 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.<\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#applying-a-mapping-resouce\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the Mapping resource.<\/p>\n<p><strong>A Mapping resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This Mapping would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">webapp-mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/webapp\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">webapp-svc<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>metadata.name<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Identifies the Mapping.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">The URL prefix identifying your resource. <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#resources\">See below<\/a> on how Emissary handles resources.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.service<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">The service handling the resource.  If a Kubernetes service, it must include the namespace (in the format <code>service.namespace<\/code>) if the service is in a different namespace than Emissary. <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/route\/#services\">See below<\/a> on service name formatting.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>Here&rsquo;s another example using a web service that maps requests to <code>\/httpbin\/<\/code> to <code>http:\/\/httpbin.org<\/code>:<\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#applying-a-mapping-resouce\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Mapping resource","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/","description":"<h1 id=\"get-traffic-from-the-edge\">Get traffic from the edge<\/h1>\n<div class=\"docs-article-toc\">\n<h3>Contents<\/h3>\n<ul>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#examples\">Examples<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#applying-a-mapping-resource\">Applying a Mapping Resource<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#resources\">Resources<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#services\">Services<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#extending-mappings\">Extending Mappings<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#best-practices\">Best Practices<\/a><\/li>\n<li><a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/route\/#img-classos-logo-srcimageslogopng-whats-next\">What&rsquo;s next?<\/a><\/li>\n<\/ul>\n<\/div>\n<p>The core Emissary resource used to manage cluster ingress is the <code>Mapping<\/code> resource.<\/p>\n<p><strong>A <code>Mapping<\/code> resource routes a URL path (or prefix) to a service (either a Kubernetes service or other web service).<\/strong><\/p>\n<Alert severity=\"warning\">\n  Remember that <code>Listener<\/code> and <code>Host<\/code> resources are&nbsp;\n  <b>required<\/b>&nbsp;for a functioning Emissary installation that can route traffic!<br\/>\n  <a href=\"..\/..\/topics\/running\/listener\">Learn more about <code>Listener<\/code><\/a>.<br\/>\n  <a href=\"..\/..\/topics\/running\/host-crd\">Learn more about <code>Host<\/code><\/a>.\n<\/Alert>\n<h2 id=\"examples\">Examples<\/h2>\n<p>This <code>Mapping<\/code> would route requests to <code>https:\/\/&lt;hostname&gt;\/webapp\/<\/code> to the <code>webapp-svc<\/code> Service. <strong>This is not a\ncomplete example on its own; see below.<\/strong><\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Method-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/method\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/method\/","description":"<p>Emissary supports routing based on the HTTP method and regular expression.<\/p>\n<h2 id=\"using-method\">Using <code>method<\/code><\/h2>\n<p>The <code>method<\/code> annotation specifies the specific HTTP method for a mapping. The value of the <code>method<\/code> annotation must be in all upper case.<\/p>\n<p>For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">get<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/get_only\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">method<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">GET<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"using-method_regex\">Using <code>method_regex<\/code><\/h2>\n<p>When <code>method_regex<\/code> is set to <code>true<\/code>, the value of the <code>method<\/code> annotation will be interpreted as a regular expression.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/microservices-api-gateways\/","description":"<h1 id=\"microservices-api-gateways\">Microservices API gateways<\/h1>\n<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/microservices-api-gateways\/","description":"<h1 id=\"microservices-api-gateways\">Microservices API gateways<\/h1>\n<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Microservices & API gateways","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/microservices-api-gateways\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/microservices-api-gateways\/","description":"<p>A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.<\/p>\n<p>This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary $version$:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 2.X:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary $versionTwoX$:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 2.x:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 2.x:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary $versionTwoX$:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 2.X:<\/p>"},{"title":"Migrate to Emissary 2.x","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migrate-to-2-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migrate-to-2-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 2.X:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 3.X:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary $version$:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 3.x:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 3.x:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary $version$:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 3.X:<\/p>"},{"title":"Migrate to Emissary 3.x","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migrate-to-3-alternate\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/install\/migrate-to-3-alternate\/","description":"<p>You can upgrade from any version of Ambassador Edge Stack or Emissary to\nany version of either by installing the new version in a new Kubernetes cluster,\nthen copying over configuration as needed. This is the way to be absolutely\ncertain that each installation cannot affect the other: it is extremely safe,\nbut is also significantly more effort.<\/p>\n<p>For example, to upgrade from some other version of Ambassador Edge Stack or\nEmissary to Emissary 3.X:<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using <a href=\"..\/helm\">Helm<\/a> or\nYAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-are-currently-running-ambassador-edge-stack\">If you are currently running Ambassador Edge Stack<\/h2>\n<p>See the <a href=\"..\/..\/..\/..\/..\/edge-stack\/$aesDocsVersion$\/topics\/install\/migration-matrix\">instructions on updating Ambassador Edge Stack<\/a>.<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using <a href=\"..\/helm\">Helm<\/a> or\nYAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-are-currently-running-ambassador-edge-stack\">If you are currently running Ambassador Edge Stack<\/h2>\n<p>See the <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/$aesDocsVersion$\/topics\/install\/migration-matrix\/\">instructions on updating Ambassador Edge Stack<\/a>.<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using <a href=\"..\/helm\">Helm<\/a> or\nYAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-are-currently-running-ambassador-edge-stack\">If you are currently running Ambassador Edge Stack<\/h2>\n<p>See the <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/$aesDocsVersion$\/topics\/install\/migration-matrix\/\">instructions on updating Ambassador Edge Stack<\/a>.<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using <a href=\"..\/helm\">Helm<\/a> or\nYAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-are-currently-running-ambassador-edge-stack\">If you are currently running Ambassador Edge Stack<\/h2>\n<p>See the <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/$aesDocsVersion$\/topics\/install\/migration-matrix\/\">instructions on updating Ambassador Edge Stack<\/a>.<\/p>"},{"title":"Migration Matrix","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migration-matrix\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/install\/migration-matrix\/","description":"<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<p>There are currently multiple paths for upgrading Emissary, depending on what version you&rsquo;re currently\nrunning, what you want to be running, and whether you installed Emissary using <a href=\"..\/helm\">Helm<\/a> or\nYAML.<\/p>\n<p>(To check out if you installed Emissary using Helm, run <code>helm list --all-namespaces<\/code> and see if\nEmissary is listed. If so, you installed using Helm.)<\/p>\n<Alert severity=\"warning\">\n  <b>Read the instructions below<\/b> before making any changes to your cluster!\n<\/Alert>\n<h2 id=\"if-you-are-currently-running-ambassador-edge-stack\">If you are currently running Ambassador Edge Stack<\/h2>\n<p>See the <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/$aesDocsVersion$\/topics\/install\/migration-matrix\/\">instructions on updating Ambassador Edge Stack<\/a>.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Monitoring with Prometheus and Grafana","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/prometheus\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/prometheus\/","description":"<p>Prometheus is an open-source monitoring and alerting system.  When used\nalong with Grafana, you can create a dynamic dashboard for monitoring\ningress into our Kubernetes cluster.<\/p>\n<h2 id=\"deployment\">Deployment<\/h2>\n<p>This guide will focus on deploying Prometheus and Grafana alongside\nEmissary in Kubernetes using the <a href=\"https:\/\/github.com\/coreos\/prometheus-operator\">Prometheus\nOperator<\/a>.<\/p>\n<p><strong>Note:<\/strong> Both Prometheus and Grafana can be deployed as standalone\napplications outside of Kubernetes.  This process is well-documented\nwithin the website and docs within their respective projects.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Mutual TLS (mTLS)","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/mtls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/mtls\/","description":"<p>Many organizations have security concerns that require all network traffic\nthroughout their cluster be encrypted. With traditional architectures,\nthis was not that complicated of a requirement since internal network traffic\nwas fairly minimal. With microservices, we are making many more requests over\nthe network that must all be authenticated and secured.<\/p>\n<p>In order for services to authenticate with each other, they will each need to\nprovide a certificate and key that the other trusts before establishing a\nconnection. This action of both the client and server providing and validating\ncertificates is referred to as mutual TLS.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where applications composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Operating Model","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/gitops-continuous-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/gitops-continuous-delivery\/","description":"<h1 id=\"the-ambassador-operating-model-gitops-and-continuous-delivery\">The Ambassador operating model: GitOps and continuous delivery<\/h1>\n<p>Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.<\/p>\n<h2 id=\"policies-declarative-configuration-and-custom-resource-definitions\">Policies, declarative configuration, and Custom Resource Definitions<\/h2>\n<p>Emissary configuration is built on the concept of <em>policies<\/em>. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of unconstrained <code>Mapping<\/code> resources (these will apply to all <code>Host<\/code> resources).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Performance and scaling","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/scaling\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/scaling\/","description":"<p>Scaling any cloud native application is inherently domain specific, however the content here\nreflects common issues, tips, and tricks that come up frequently.<\/p>\n<h2 id=\"performance-dimensions\">Performance dimensions<\/h2>\n<p>The performance of Emissary&rsquo;s control plane can be characterized along a number of\ndifferent dimensions:<\/p>\n<ul>\n<li>The number of <code>TLSContext<\/code> resources.<\/li>\n<li>The number of <code>Host<\/code> resources.<\/li>\n<li>The number of <code>Mapping<\/code> resources per <code>Host<\/code> resource.<\/li>\n<li>The number of <code>Mapping<\/code> resources that will span all <code>Host<\/code> resources (either because they&rsquo;re using <code>host_regex<\/code>, or because they&rsquo;re using <code>hostname: &quot;*&quot;<\/code>).<\/li>\n<\/ul>\n<p>If your application involves a larger than average number of any of the above resources, you may\nfind yourself in need of some of the content in this section.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/prefix_regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/prefix_regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/prefix_regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/prefix_regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Prefix regex","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/prefix-regex\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/prefix-regex\/","description":"<h2 id=\"using-prefix-and-prefix_regex\">Using <code>prefix<\/code> and <code>prefix_regex<\/code><\/h2>\n<p>When the <code>prefix_regex<\/code> attribute is set to <code>true<\/code>, Emissary configures a <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.5.0\/api-v1\/route_config\/route#route\">regex route<\/a> instead of a prefix route in Envoy. <strong>This means the entire path must match the regex specified, not only the prefix.<\/strong><\/p>\n<h2 id=\"example-with-a-version-in-the-url\">Example with a version in the URL<\/h2>\n<p>If the version is a path parameter and the resources are served by different services, then<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;\/(v1|v2)\/qotm\/.*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix_regex<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#204a87;font-weight:bold\">true<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">qotm<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will map requests to both <code>\/v1<\/code> and <code>\/v2<\/code> to the <code>qotm<\/code> service.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Progressive Delivery","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/progressive-delivery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/progressive-delivery\/","description":"<p>Today&rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.<\/p>\n<p>Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Protecting Access to the Diagnostics Interface","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/protecting-diag-access\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/protecting-diag-access\/","description":"<p>Out of the box, Emissary enables <code>Mapping<\/code>s to provide access to the diagnostics\ninterfaces that can help you debug your installation. In a production environment, though,\npublic access to these endpoints is not an ideal situation.  To solve this, we will be\nusing the Ambassador <code>Module<\/code> to remove the default mappings, after which we&rsquo;ll create a\nnew, host-based <code>mapping<\/code> to expose the diagnostics interface more securely.  The\nAmbassador <code>Module<\/code> applies system-wide configuration settings for Emissary to follow.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/query_parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/query_parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Query parameter-based routing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/query-parameters\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/query-parameters\/","description":"<p>Emissary can route to target services based on HTTP query parameters with the <code>query_parameters<\/code> and <code>regex_query_parameters<\/code> specifications. Multiple mappings with different annotations can be applied to construct more complex routing rules.<\/p>\n<h2 id=\"the-query_parameters-annotation\">The <code>query_parameters<\/code> annotation<\/h2>\n<p>The <code>query_parameters<\/code> attribute is a dictionary of <code>query_parameter<\/code>: <code>value<\/code> pairs. Emissary will only allow requests that match the specified <code>query_parameter<\/code>: <code>value<\/code> pairs to reach the target service.<\/p>\n<p>You can also set the <code>value<\/code> of a query parameter to <code>true<\/code> to test for the existence of a query parameter.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Quickstart","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/quickstart-demo\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/tutorials\/quickstart-demo\/","description":"<p>In this article, you will explore some of the key features of Emissary by walking through an example workflow and exploring the\nEdge Policy Console.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<p>You must have <a href=\"..\/getting-started\/\">Emissary installed<\/a> in your\nKubernetes cluster.<\/p>\n<h2 id=\"routing-traffic-from-the-edge\">Routing Traffic from the Edge<\/h2>\n<p>Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to\ndeclaratively define Emissary\u2019s desired state. The workflow you are going to\nbuild uses a sample deployment and the <code>Mapping<\/code> CRD, which is the core resource\nthat you will use with Emissary to manage your edge. It enables you to route\nrequests by host and URL path from the edge of your cluster to Kubernetes services.<\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>.  These labels are\nexposed to a third-party service via a gRPC API.  The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limit service","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/rate-limit-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/rate-limit-service\/","description":"<p>Rate limiting is a powerful technique to improve the <a href=\"https:\/\/blog.getambassador.io\/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4\">availability and\nresilience of your\nservices<\/a>.\nIn Emissary, each request can have one or more <em>labels<\/em>. These labels are\nexposed to a third-party service via a gRPC API. The third-party service can\nthen rate limit requests based on the request labels.<\/p>\n<p><strong>Note that <code>RateLimitService<\/code> is only applicable to Emissary,\nand not Ambassador Edge Stack, as Ambassador Edge Stack includes a\nbuilt-in rate limit service.<\/strong><\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate limiting at the edge","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/rate-limiting-at-the-edge\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/concepts\/rate-limiting-at-the-edge\/","description":"<p>Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it\u2019s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.<\/p>\n<h2 id=\"two-approaches-rate-limiting-and-load-shedding\">Two approaches: Rate limiting and load shedding<\/h2>\n<p>Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.<\/p>"},{"title":"Rate Limiting Tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/rate-limiting-tutorial\/","description":"<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Rate Limiting Tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/rate-limiting-tutorial\/","description":"<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Rate Limiting Tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/rate-limiting-tutorial\/","description":"<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Rate Limiting Tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/rate-limiting-tutorial\/","description":"<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Rate Limiting Tutorial","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/rate-limiting-tutorial\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/rate-limiting-tutorial\/","description":"<p>Emissary can validate incoming requests before routing them to a backing service. In this tutorial, we&rsquo;ll configure Emissary to use a simple third party rate limit service. (If you don&rsquo;t want to implement your own rate limiting service, Ambassador Edge Stack integrates a <a href=\"https:\/\/emissary-ingress.dev\/docs\/edge-stack\/latest\/topics\/using\/rate-limits\/rate-limits\/\">powerful, flexible rate limiting service<\/a>.)<\/p>\n<h2 id=\"before-you-get-started\">Before you get started<\/h2>\n<p>This tutorial assumes you have already followed the Emissary <a href=\"..\/..\/topics\/install\/\">Installation<\/a> and <a href=\"..\/..\/tutorials\/quickstart-demo\">Quickstart Tutorial<\/a> guides. If you haven&rsquo;t done that already, you should do so now.<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Redirects","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/redirects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/redirects\/","description":"<p>Emissary can perform 3xx redirects on <code>Mapping<\/code>s to a different host, with various options to redirect the path and to return a different 3xx response code instead of the default 301.<\/p>\n<h2 id=\"schema\">Schema<\/h2>\n<table>\n  <thead>\n      <tr>\n          <th style=\"text-align: left\">Name<\/th>\n          <th style=\"text-align: left\">Type<\/th>\n          <th style=\"text-align: left\">Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.host_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">This is <em>required<\/em> to be set to <code>true<\/code> to use any type of redirect, otherwise the request will be proxied instead of redirected.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.path_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, changes the path for the redirect.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.prefix_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, matches the <code>prefix<\/code> value and replaces it with the <code>prefix_redirect<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.regex_redirect<\/code><\/td>\n          <td style=\"text-align: left\">String<\/td>\n          <td style=\"text-align: left\">Optional, uses regex to match and replace the <code>prefix<\/code> value.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.redirect_response_code<\/code><\/td>\n          <td style=\"text-align: left\">Integer<\/td>\n          <td style=\"text-align: left\">Optional, changes the response code from the default 301, valid values are 301, 302, 303, 307, and 308.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  x_forwarded_proto_redirect<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Redirect only the originating HTTP requests to HTTPS, allowing the originating HTTPS requests to pass through.<\/td>\n      <\/tr>\n      <tr>\n          <td style=\"text-align: left\"><code>spec.config.  use_remote_address<\/code><\/td>\n          <td style=\"text-align: left\">Boolean<\/td>\n          <td style=\"text-align: left\">Required to be set to <code>false<\/code> to use the <code>x_forwarded_proto_redirect<\/code> feature.<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"examples\">Examples<\/h2>\n<h3 id=\"basic-redirect\">Basic redirect<\/h3>\n<p>To effect any type of HTTP <code>Redirect<\/code>, the <code>Mapping<\/code> <em>must<\/em> set <code>host_redirect<\/code> to <code>true<\/code>, with <code>service<\/code> set to the host to which the client should be redirected:<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/remove_request_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/remove_request_headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/remove_request_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/remove_request_headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove request headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/remove-request-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/remove-request-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the upstream from the request.<\/p>\n<h2 id=\"the-remove_request_headers-attribute\">The <code>remove_request_headers<\/code> attribute<\/h2>\n<p>The <code>remove_request_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_request_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">authorization<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>authorization<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/remove_response_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/headers\/remove_response_headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (eg. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/remove_response_headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/headers\/remove_response_headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Remove response headers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/remove-response-headers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/headers\/remove-response-headers\/","description":"<p>Emissary can remove a list of HTTP headers that would be sent to the client in the response (e.g. default <code>x-envoy-upstream-service-time<\/code>).<\/p>\n<h2 id=\"the-remove_response_headers-attribute\">The <code>remove_response_headers<\/code> attribute<\/h2>\n<p>The <code>remove_response_headers<\/code> attribute takes a list of keys used to match to the header.<\/p>\n<p><code>remove_request_headers<\/code> can be set either in a <code>Mapping<\/code> or using <a href=\"..\/..\/defaults\"><code>ambassador Module defaults<\/code><\/a>.<\/p>\n<h2 id=\"mapping-example\">Mapping example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#000\">quote-backend<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/backend\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">remove_response_headers<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span>- <span style=\"color:#000\">x-envoy-upstream-service-time<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">quote<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>will drop the header with key <code>x-envoy-upstream-service-time<\/code>.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Rewrites","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/rewrites\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/rewrites\/","description":"<p>Once Emissary uses a prefix to identify the service to which a given request should be passed, it can rewrite the URL before handing it off to the service.<\/p>\n<p>There are two approaches for rewriting: <code>rewrite<\/code> for simpler scenarios and <code>regex_rewrite<\/code> for more advanced rewriting.<\/p>\n<p><strong>Please note that<\/strong> only one of these two can be configured for a mapping <strong>at the same time<\/strong>. As a result Emissary ignores <code>rewrite<\/code> when <code>regex_rewrite<\/code> is provided.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Running and deployment","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/running\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/running\/","description":"<p>This section is intended for operators running Emissary, and covers various aspects of deploying and configuring the Emissary in production.<\/p>\n<h2 id=\"emissary-and-kubernetes\">Emissary and Kubernetes<\/h2>\n<p>Emissary relies on Kubernetes for reliability, availability, and scalability. This means that features such as Kubernetes readiness and liveness probes, rolling updates, and the Horizontal Pod Autoscaling should be utilized to manage Emissary.<\/p>\n<h2 id=\"default-configuration\">Default configuration<\/h2>\n<p>The default configuration of Emissary includes default <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#resource-requests-and-limits-of-pod-and-container\">resource limits<\/a>, as well as <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">readiness and liveness probes<\/a>. These values should be adjusted for your specific environment.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a Host<\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Server Name Indication (SNI)","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/sni\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/sni\/","description":"<p>Emissary supports serving multiple <code>Host<\/code>s behind a single IP address, each\nwith their own certificate.<\/p>\n<p>This is as easy to do as creating a <code>Host<\/code> for each domain or subdomain you\nwant Emissary to serve, getting a certificate for each, and telling\nEmissary which <code>Host<\/code> the route should be created for.<\/p>\n<p>The example below configures two <code>Host<\/code>s and assigns routes to them.<\/p>\n<h2 id=\"configuring-a-host\">Configuring a <code>Host<\/code><\/h2>\n<p>The <code>Host<\/code> resources lets you separate configuration for each distinct domain\nand subdomain you plan on serving behind Emissary.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Service discovery and resolvers","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/resolvers\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/resolvers\/","description":"<p>Service discovery is how cloud applications and their microservices are located on the network. In a cloud environment, services are ephemeral, existing only as long as they are needed and in use, so a real-time service discovery mechanism is required. Emissary uses information from service discovery to determine where to route incoming requests.<\/p>\n<h2 id=\"emissary-support-for-service-discovery\">Emissary support for service discovery<\/h2>\n<p>Emissary supports different mechanisms for service discovery. These mechanisms are:<\/p>\n<ul>\n<li>Kubernetes service-level discovery (default).<\/li>\n<li>Kubernetes endpoint-level discovery.<\/li>\n<li>Consul endpoint-level discovery.<\/li>\n<\/ul>\n<h3 id=\"kubernetes-service-level-discovery\">Kubernetes service-level discovery<\/h3>\n<p>By default, Emissary uses Kubernetes DNS and service-level discovery. In a <code>Mapping<\/code> resource, specifying <code>service: foo<\/code> will prompt Emissary to look up the DNS address of the <code>foo<\/code> Kubernetes service. Traffic will be routed to the <code>foo<\/code> service. Kubernetes will then load balance that traffic between multiple pods. For more details on Kubernetes networking and how this works, see our blog post on <a href=\"https:\/\/blog.getambassador.io\/session-affinity-load-balancing-controls-grpc-web-and-ambassador-0-52-2b916b396d0c\">Session affinity, load balancing controls, gRPC-Web, and Emissary<\/a>.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>If you are running the Emissary or the Ambassador Edge Stack with free, community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>When running Emissary, or Ambassador Edge Stack with free community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>When running Emissary, or Ambassador Edge Stack with free community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>When running Emissary, or Ambassador Edge Stack with free community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>When running Emissary$ with free community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>\n<h3 id=\"ambassador-edge-stack-enterprise\">Ambassador Edge Stack Enterprise<\/h3>\n<p>With Ambassador Edge Stack Enterprise, you have access to deployment and production support. To learn more, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact sales<\/a>.<\/p>"},{"title":"Support","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/support\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/support\/","description":"<p>If you need help deploying Emissary at your organization, there are several different options available to you.<\/p>\n<h2 id=\"support-tiers\">Support tiers<\/h2>\n<h3 id=\"emissary-community-support\">Emissary community support<\/h3>\n<p>When running Emissary, or Ambassador Edge Stack with free community licenses, <a href=\"http:\/\/a8r.io\/slack\">join our Slack channel<\/a> to talk with other users in the community and get your questions answered.<\/p>\n<p>If you can\u2019t find an answer there, <a href=\"https:\/\/emissary-ingress.dev\/contact-us\">contact us<\/a> to learn more about the support options available with Ambassador Edge Stack Enterprise.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, GRPC, and Websockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<h2 id=\"tcpmapping\">TCPMapping<\/h2>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with Kubernetes <em>services<\/em>. Cleartext TCP connections are defined by destination IP address and\/or destination TCP port; TLS TCP connections can also be defined by the hostname presented using SNI. A service is exactly the same as in Kubernetes.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"TCPMapping resources","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/tcpmappings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/tcpmappings\/","description":"<p>In addition to managing HTTP, gRPC, and WebSockets at layer 7, Emissary can also manage TCP connections at layer 4. The core abstraction used to support TCP connections is the <code>TCPMapping<\/code>.<\/p>\n<p>An Emissary <code>TCPMapping<\/code> associates TCP connections with upstream <em>services<\/em>.\nCleartext TCP connections are defined by destination IP address and\/or destination TCP port;\nTLS-encrypted TCP connections can also be defined by the hostname presented using SNI.\nA service is exactly the same as in HTTP <a href=\"..\/mappings\/\"><code>Mappings<\/code><\/a> and other Emissary resources.<\/p>"},{"title":"The Ambassador Operator","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/aes-operator\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/aes-operator\/","description":"<p>The Ambassador Operator is a Kubernetes Operator that controls the\ncomplete lifecycle of Emissary in your cluster. It also\nautomates many of the repeatable tasks you have to perform for Emissary. Once installed, the Ambassador Operator will automatically complete rapid\ninstallations and seamless upgrades to new versions of Emissary.  <a href=\"https:\/\/github.com\/datawire\/ambassador-operator\/blob\/master\/README.md\">Read\nmore<\/a>\nabout the benefits of the Operator.<\/p>\n<p>A Kubernetes operator is a software extension that makes it easier to manage and automate your\nKubernetes-based applications, in the spirit of a human operator. Operators complete actions such\nas deploying, upgrading and maintaining applications, and many others. Read more about Kubernetes\nOperators <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/extend-kubernetes\/operator\/\">here<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.15.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code> (new in 1.7.0):\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.15.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code> (new in 1.7.0):\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"The metrics endpoint","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/statistics\/8877-metrics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/statistics\/8877-metrics\/","description":"<blockquote>\n<p>For an overview of other options for gathering statistics on\nEmissary, see the <a href=\"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/\">Statistics and Monitoring<\/a> overview.<\/p>\n<\/blockquote>\n<p>Each Emissary pod exposes statistics and metrics for that pod at\n<code>http:\/\/{POD}:8877\/metrics<\/code>.  The response is in the text-based\nPrometheus <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exposition_formats\/\">exposition format<\/a>.<\/p>\n<h2 id=\"understanding-the-statistics\">Understanding the statistics<\/h2>\n<p>The Prometheus exposition format includes special &ldquo;HELP&rdquo; lines that\nmake the file self-documenting as to what specific statistics mean.<\/p>\n<!--\n\n  TODO(lukeshu): Go in to more detail about Envoy's statistics; the\n  discoverability of them in Envoy's docs is really bad.  The best\n  thing to grep for in envoy.git is:\n\n     git grep -E ', *(Gauge|Counter|Histogram) *,' docs\n\n-->\n<ul>\n<li><code>envoy_*<\/code>: See the <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.23.0\/operations\/admin.html#get--stats-prometheus\">Envoy documentation<\/a>.<\/li>\n<li><code>ambassador_*<\/code>:\n<ul>\n<li><code>ambassador_edge_stack_*<\/code> (not present in Emissary):\n<ul>\n<li><code>ambassador_edge_stack_go_*<\/code>: See [<code>promethus.NewGoCollector()<\/code>][].<\/li>\n<li><code>ambassador_edge_stack_promhttp_*<\/code> See <a href=\"https:\/\/godoc.org\/github.com\/prometheus\/client_golang\/prometheus\/promhttp#Handler\"><code>promhttp.Handler()<\/code><\/a>.<\/li>\n<li><code>ambassador_edge_stack_process_*<\/code>: See [<code>promethus.NewProcessCollector()<\/code>][]..<\/li>\n<\/ul>\n<\/li>\n<li><code>ambassador_*_time_seconds<\/code> (for <code>*<\/code> = one of <code>aconf<\/code>, <code>diagnostics<\/code>, <code>econf<\/code>, <code>fetcher<\/code>, <code>ir<\/code>, or <code>reconfiguration<\/code>):\nGauges of how long the various core operations take in the diagd\nprocess.<\/li>\n<li><code>ambassador_diagnostics_(errors|notices)<\/code>: The number of\ndiagnostics errors and notices that would be shown in the\ndiagnostics UI or the Edge Policy Console.<\/li>\n<li><code>ambassador_diagnostics_info<\/code>: <a href=\"https:\/\/github.com\/prometheus\/client_python#info\">Info<\/a>\nabout the Emissary install; all information is presented in\nlabels; the value of the Gauge is always &ldquo;1&rdquo;.<\/li>\n<li><code>ambassador_process_*<\/code>: See <a href=\"https:\/\/github.com\/prometheus\/client_python#process-collector\"><code>prometheus_client.ProcessCollector<\/code><\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"polling-the-8877metrics-endpoint-with-prometheus\">Polling the <code>:8877\/metrics<\/code> endpoint with Prometheus<\/h2>\n<p>To scrape metrics directly, follow the instructions for <a href=\"..\/..\/..\/..\/howtos\/prometheus\">Monitoring\nwith Prometheus and Grafana<\/a>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"Timeouts","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/timeouts\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/timeouts\/","description":"<p>Emissary enables you to control timeouts in several different ways.<\/p>\n<h2 id=\"request-timeout-timeout_ms\">Request timeout: <code>timeout_ms<\/code><\/h2>\n<p><code>timeout_ms<\/code> is the end-to-end timeout for an entire user-level transaction in milliseconds. It begins after the full incoming request is received up until the full response stream is returned to the client. This timeout includes all retries. It can be disabled by setting the value to <code>0<\/code>.<\/p>\n<p>Default: <code>3000<\/code><\/p>\n<h2 id=\"idle-timeout-idle_timeout_ms\">Idle timeout: <code>idle_timeout_ms<\/code><\/h2>\n<p><code>idle_timeout_ms<\/code> controls how long a connection should remain open when no traffic is being sent through the connection. <code>idle_timeout_ms<\/code> is distinct from <code>timeout_ms<\/code>, as the idle timeout applies on either down or upstream request events and is reset every time an encode\/decode event occurrs or data is processed for the stream. <code>idle_timeout_ms<\/code> operates on a per-route basis and will overwrite behavior of the <code>cluster_idle_timeout_ms<\/code>.  If not set, Emissary will default to the value set by <code>cluster_idle_timeout_ms<\/code>. It can be disabled by setting the value to <code>0<\/code>.<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v2<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (e.g. minimum TLS version support or SNI support) you can create a <code>TLSContext<\/code> for Emissary to use when originating TLS.<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Origination","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/origination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/tls\/origination\/","description":"<p>Sometimes you may want traffic from Emissary to your services to be encrypted. For the cases where terminating TLS at the ingress is not enough, Emissary can be configured to originate TLS connections to your upstream services.<\/p>\n<h2 id=\"basic-configuration\">Basic configuration<\/h2>\n<p>Telling Emissary to talk to your services over HTTPS is easily configured in the <code>Mapping<\/code> definition by setting <code>https:\/\/<\/code> in the <code>service<\/code> field.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#000\">---<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">apiVersion<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">getambassador.io\/v3alpha1<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">kind<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">Mapping<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">metadata<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">name<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">basic-tls<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span><span style=\"color:#204a87;font-weight:bold\">spec<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">hostname<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#4e9a06\">&#34;*&#34;<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">prefix<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">\/<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\">  <\/span><span style=\"color:#204a87;font-weight:bold\">service<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\"> <\/span><span style=\"color:#000\">https:\/\/example-service<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"advanced-configuration-using-a-tlscontext\">Advanced configuration using a <code>TLSContext<\/code><\/h2>\n<p>If your upstream services require more than basic HTTPS support (for example, providing a client certificate or\nsetting the minimum TLS version support) you must create a <code>TLSContext<\/code> for Emissary to use when\noriginating TLS. For example:<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#acme-and-tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"TLS Termination and Enabling HTTPS","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tls-termination\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/tls-termination\/","description":"<p>TLS encryption is one of the basic requirements of having a secure system.\nAmbassador Edge Stack <a href=\"..\/..\/topics\/running\/host-crd#tls-settings\">automatically enables TLS termination\/HTTPs\n<\/a>, making TLS encryption\neasy and centralizing TLS termination for all of your services in Kubernetes.<\/p>\n<p>While this automatic certificate management in Ambassador Edge Stack helps\nsimply TLS configuration in your cluster, the Open-Source Emissary\nstill requires you provide your own certificate to enable TLS.<\/p>\n<p>The following will walk you through the process of enabling TLS with a\nself-signed certificate created with the <code>openssl<\/code> utility.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including <a href=\"https:\/\/lightstep.com\/\">LightStep<\/a> and Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.10.0\/intro\/arch_overview\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including <a href=\"https:\/\/lightstep.com\/\">LightStep<\/a> and Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/v1.10.0\/intro\/arch_overview\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Tracing service","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/tracing-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/running\/services\/tracing-service\/","description":"<p>Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.<\/p>\n<p>When enabled, the <code>TracingService<\/code> will instruct Emissary to initiate a trace on requests by generating and populating an <code>x-request-id<\/code> HTTP header. Services can make use of this <code>x-request-id<\/code> header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as <a href=\"https:\/\/zipkin.io\/\">Zipkin<\/a> and <a href=\"https:\/\/github.com\/jaegertracing\/\">Jaeger<\/a> to allow you to store and visualize traces. You can read further on <a href=\"https:\/\/www.envoyproxy.io\/docs\/envoy\/latest\/intro\/arch_overview\/observability\/tracing\">Envoy&rsquo;s Tracing capabilities<\/a>.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Traffic shadowing","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/shadowing\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/topics\/using\/shadowing\/","description":"<p>Traffic shadowing is a deployment pattern where production traffic is asynchronously copied to a non-production service for testing. Shadowing is a close cousin to two other commonly known deployment patterns, <a href=\"..\/canary\">canary releases<\/a> and blue\/green deployments. Shadowing traffic has several important benefits over blue\/green and canary testing:<\/p>\n<ul>\n<li>\n<p>Zero production impact. Since traffic is duplicated, any bugs in services that are processing shadow data have no impact on production.<\/p>\n<\/li>\n<li>\n<p>Test persistent services. Since there is no production impact, shadowing provides a powerful technique to test persistent services. You can configure your test service to store data in a test database, and shadow traffic to your test service for testing. Both blue\/green deployments and canary deployments require more machinery for testing.<\/p>"},{"title":"Upgrading Emissary","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/upgrading\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/upgrading\/","description":"<p>Since Emissary&rsquo;s configuration is entirely stored in Kubernetes resources, no special process\nis necessary to upgrade Emissary.<\/p>\n<p>The steps to upgrade depend on the method that was used to install Emissary, as indicated below.<\/p>\n<blockquote>\n<p><strong>Note:<\/strong> It is always advised to migrate your install of Emissary to the <code>ambassador<\/code> namespace before upgrading to Ambassador Edge Stack with any method.<\/p>\n<\/blockquote>\n<h2 id=\"installed-via-the-operator\">Installed via the Operator?<\/h2>\n<p>If you installed using the Operator, then you&rsquo;ll need to <a href=\"..\/aes-operator\/#updates-by-the-operator\">use the Operator to perform the upgrade<\/a>.\nTo verify whether the Operator was used to install Emissary, run the following command\nto see if it returns resources:<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/cert-manager\/","description":"<p>Emissary has simple and easy built-in support for automatically using ACME to create and renew TLS\ncertificates; configured by the <a href=\"..\/..\/topics\/running\/host-crd\/\"><code>Host<\/code> resource<\/a>.  However, it only supports ACME&rsquo;s\n<code>http-01<\/code> challenge; if you require more flexible certificate management (such as using ACME&rsquo;s <code>dns-01<\/code> challenge, or\nusing a non-ACME certificate source), Emissary also supports using external certificate management\ntools.<\/p>\n<p>One such tool is Jetstack&rsquo;s <a href=\"https:\/\/github.com\/jetstack\/cert-manager\">cert-manager<\/a>, which is a general-purpose tool\nfor managing certificates in Kubernetes.  Cert-manager will automatically create and renew TLS certificates and store\nthem as Kubernetes secrets for easy use in a cluster.  Emissary will automatically watch for secret\nchanges and reload certificates upon renewal.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\/#acme-support\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"Using cert-manager","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/cert-manager\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/cert-manager\/","description":"<p>Ambassador Edge Stack has simple and easy built-in support for automatically <a href=\"..\/..\/topics\/running\/host-crd\">using ACME<\/a> with the\n<code>http-01<\/code> challenge to create and renew TLS certificates. However, this support is not available\nin Emissary, and it is limited to the ACME <code>http-01<\/code> challenge type. If you&rsquo;re running\nEmissary, or if you require more flexible certificate management (such as using ACME&rsquo;s\n<code>dns-01<\/code> challenge, or using a non-ACME certificate source), external certificate management\ntools are also supported.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.10\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.0\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"WebSockets","link":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/websockets\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/4.1\/howtos\/websockets\/","description":"<p>Emissary makes it easy to access your services from outside your\napplication, and this includes services that use WebSockets.  Only a\nsmall amount of additional configuration is required, which is as\nsimple as telling the Mapping to allow &ldquo;upgrading&rdquo; from the HTTP protocol to\nthe &ldquo;websocket&rdquo; protocol:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#204a87;font-weight:bold\">allow_upgrade<\/span><span style=\"color:#000;font-weight:bold\">:<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f8f8f8;text-decoration:underline\"><\/span>- <span style=\"color:#000\">websocket<\/span><span style=\"color:#f8f8f8;text-decoration:underline\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"example-websocket-service\">Example WebSocket service<\/h2>\n<p>The example configuration below demonstrates the addition of the <code>allow_upgrade:<\/code> attribute to support websockets. The use of <code>use_websocket<\/code> is now deprecated.<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"Why Emissary?","link":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/why-ambassador\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.9\/about\/why-ambassador\/","description":"<p>Emissary gives platform engineers a comprehensive, self-service edge stack for managing the boundary between end-users and Kubernetes. Built on the <a href=\"https:\/\/www.envoyproxy.io\">Envoy Proxy<\/a> and fully Kubernetes-native, Emissary is made to support multiple, independent teams that need to rapidly publish, monitor, and update services for end-users. A true edge stack, Emissary can also be used to handle the functions of an API Gateway, a Kubernetes ingress controller, and a layer 7 load balancer (for more, see <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">this blog post<\/a>).<\/p>"},{"title":"YAML","link":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/yaml-install\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/1.14\/topics\/install\/yaml-install\/","description":"<p>In this guide, we&rsquo;ll walk you through installing, configuring, and customizing\nEmissary in your Kubernetes cluster.<\/p>\n<p>The manual install process does require more user configuration than the <a href=\"..\/..\/..\/tutorials\/getting-started\/\">quick\nstart method<\/a>, but it does allow you to control the\naspects of your base Emissary installation.<\/p>\n<h2 id=\"before-you-begin\">Before you begin<\/h2>\n<p>Emissary is designed to run in Kubernetes for production. The most essential requirements are:<\/p>\n<ul>\n<li>Kubernetes 1.11 or later<\/li>\n<li>The <code>kubectl<\/code> command-line tool<\/li>\n<\/ul>\n<h2 id=\"install-emissary\">Install Emissary<\/h2>\n<p>Emissary is typically deployed to Kubernetes from the command line. If you don&rsquo;t have Kubernetes, you should use our <a href=\"..\/docker\">Docker<\/a> image to deploy Emissary locally.<\/p>"},{"title":"YAML","link":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/yaml-install\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/2.5\/topics\/install\/yaml-install\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>.  This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p>In this guide, we&rsquo;ll walk you through installing Emissary in your Kubernetes cluster.<\/p>\n<p>The manual install process does not allow for as much control over configuration\nas the <a href=\"..\/helm\">Helm install method<\/a>, so if you need more control over your Emissary\ninstallation, it is recommended that you use helm.<\/p>"},{"title":"YAML","link":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/yaml-install\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.6\/topics\/install\/yaml-install\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>.  This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p>In this guide, we&rsquo;ll walk you through installing Emissary in your Kubernetes cluster.<\/p>\n<p>The manual install process does not allow for as much control over configuration\nas the <a href=\"..\/helm\">Helm install method<\/a>, so if you need more control over your Emissary\ninstallation, it is recommended that you use helm.<\/p>"},{"title":"YAML","link":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/yaml-install\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.7\/topics\/install\/yaml-install\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>.  This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p>In this guide, we&rsquo;ll walk you through installing Emissary in your Kubernetes cluster.<\/p>\n<p>The manual install process does not allow for as much control over configuration\nas the <a href=\"..\/helm\">Helm install method<\/a>, so if you need more control over your Emissary\ninstallation, it is recommended that you use helm.<\/p>"},{"title":"YAML","link":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/yaml-install\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/emissary-ingress.dev\/docs\/3.8\/topics\/install\/yaml-install\/","description":"<Alert severity=\"warning\">\n<p>To migrate from Emissary 1.X to Emissary 2.X, see the\n<a href=\"..\/migration-matrix\/\">Emissary migration matrix<\/a>.  This guide\n<strong>will not work<\/strong> for that, due to changes to the configuration\nresources used for Emissary 2.X.<\/p>\n<\/Alert>\n<p>In this guide, we&rsquo;ll walk you through installing Emissary in your Kubernetes cluster.<\/p>\n<p>The manual install process does not allow for as much control over configuration\nas the <a href=\"..\/helm\">Helm install method<\/a>, so if you need more control over your Emissary\ninstallation, it is recommended that you use helm.<\/p>"}]}}