CINXE.COM
Get started with Red Hat OpenShift and Kong Mesh | Kong Docs
<!DOCTYPE html> <html lang="en-US" itemscope itemtype="http://schema.org/Article"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- OneTrust Cookies Consent Notice start for konghq.com --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="2c4de954-6bec-4e93-8086-64cb113f151a"> </script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for konghq.com --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-NL48VKT');</script> <!-- End Google Tag Manager --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Get started with Red Hat OpenShift and Kong Mesh | Kong Docs</title> <meta name="description" content="This guide explains how to get started on Kong Mesh with Red Hat OpenShift."> <meta name="author" content="KongHQ"> <meta property="og:title" content="Get started with Red Hat OpenShift and Kong Mesh | Kong Docs"> <meta property="og:site_name" content="Kong Docs"> <!-- use share link for facebook --> <meta property="og:url" content="https://docs.konghq.com"> <meta property="og:description" content="This guide explains how to get started on Kong Mesh with Red Hat OpenShift."> <meta property="og:type" content="website"> <meta property="og:locale" content="en_US"> <meta property="og:image" content="https://docs.konghq.com/assets/images/share.png"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@thekonginc"> <meta name="twitter:creator" content="@thekonginc"> <meta name="twitter:url" content="https://docs.konghq.com"> <meta name="twitter:description" content="This guide explains how to get started on Kong Mesh with Red Hat OpenShift."> <meta name="twitter:image" content="https://docs.konghq.com/assets/images/share.png"> <meta property="fb:admins" content="227304446"> <meta property="fb:admins" content="576641408"> <meta name="google-site-verification" content="CrU3zp02dNKTe8NSAipL4NCPkrIjDXG8fViTZ-MIzP4"> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "KongHQ", "url": "https://docs.konghq.com", "logo": "https://docs.konghq.com/assets/images/logo.png", "sameAs": [ "https://www.facebook.com/konginc", "https://twitter.com/thekonginc", "https://plus.google.com/+mashape" ] } </script> <!-- Preload assets --> <link rel="dns-prefetch" href="https://cloud.typography.com"> <link rel="dns-prefetch" href="https://dev.visualwebsiteoptimizer.com"> <link rel="dns-prefetch" href="https://cdn.segment.com"> <link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@3"> <link rel="canonical" href="https://docs.konghq.com/mesh/latest/features/openshift-quickstart/"> <link rel="alternate" hreflang="x-default" href="https://docs.konghq.com/mesh/latest/features/openshift-quickstart/"> <link rel="alternate" hreflang="ja" href="https://docs.jp.konghq.com/mesh/latest/features/openshift-quickstart/"> <meta name="robots" content="follow,index"> <!-- FontAwesome icon font --> <script src="https://kit.fontawesome.com/1332a92967.js" crossorigin="anonymous"> </script> <script src="/vite/assets/application-D8sXFsvE.js" crossorigin="anonymous" type="module"></script> <link href="/vite/assets/_commonjsHelpers-Cpj98o6Y.js" rel="modulepreload" as="script" crossorigin="anonymous"> <link rel="stylesheet" href="/vite/assets/application-C5Quk452.css" media="screen"> </head> <body id="" data-spy="scroll" data-target="#scroll-sidebar" data-offset="350"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NL48VKT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header class="navbar-v2 closed"> <a class="skip-main" href="#main">Skip to content</a> <!-- uncomment the promo-banner div when adding a new promo banner--> <!--also uncomment the promo banner sections in app/assets/stylesheets/header.less and application.js--> <!-- <div id="promo-banner"> <div class="container"> <div class="closebanner"></div> <strong>2024 API Summit Hackathon: Experiment with API Innovation & AI. Submit by Sept 11 —<a href="https://konghq.com/conferences/kong-summit/hackathon?utm_medium=website&utm_source=docs-konghq-com&utm_campaign=docs-banner">Enter Now →</a> </strong> </div> </div> --> <div class="navbar-content"> <a href="https://konghq.com" class="navbar-brand col col-xl-auto" target="_blank" rel="noopener noreferrer"> <img src="/assets/images/logos/konglogo-dark-theme.svg" alt="Kong Logo" id="kong-logo"> </a> <span class="logo-divider">|</span> <a href="/" class="navbar-brand col col-xl-auto"> <img src="/assets/images/logos/docslogo-dark-theme.svg" alt="Kong Docs Logo" id="kong-docs-logo"> </a> <div class="separator mobile"></div> <div class="search-input-wrapper" id="getkong-algolia-search-input"> </div> <div class="search-results-wrapper"></div> <div class="navbar-items" role="navigation" aria-label="Main menu"> <ul class="navbar-items" role="menubar"> <li id="top-module-list" aria-haspopup="true" role="menuitem" aria-expanded="false" class="navbar-item main-menu-item with-submenu active"> <span tabindex="0" id="docs-link" class="main-menu-item-title">Docs</span> <span class="caret"></span> <ul class="navbar-item-submenu" role="menu"> <div class="submenu-section"> <li role="menuitem" class="docs-dropdown-li"> <a href="/api/" class="docs-dropdown-li__link" tabindex="-1"> <div class="docs-dropdown-li__card"> <span class="heading">Explore the API Specs</span> <div class="docs-dropdown-li__card-link"> <img src="/assets/images/landing-page/view-all-api-specs.png" alt="View all API Specs"> <span class="docs-dropdown-li__card-image"> View all API Specs <img src="/assets/images/landing-page/arrow-right.svg" alt="View all API Specs arrow image"> </span> </div> </div> </a> </li> <li role="menuitem" class="docs-dropdown-li" tabindex="-1"> <div class="docs-dropdown-li__section"> <div class="docs-dropdown-li__section-title"> <span class="heading">Documentation</span> </div> <div class="docs-dropdown-li__section-items"> <a class="item item-all" href="/api/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">API Specs</div> </div> </a> <a class="item" href="/gateway/latest/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong Gateway</div> <div class="item__description-desc">Lightweight, fast, and flexible cloud-native API gateway</div> </div> </a> <a class="item" href="/konnect/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong Konnect</div> <div class="item__description-desc">Single platform for SaaS end-to-end connectivity</div> </div> </a> <a class="item" href="/gateway/latest/ai-gateway/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong AI Gateway</div> <div class="item__description-desc">Multi-LLM AI Gateway for GenAI infrastructure</div> </div> </a> <a class="item" href="/mesh/latest/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong Mesh</div> <div class="item__description-desc">Enterprise service mesh based on Kuma and Envoy</div> </div> </a> <a class="item" href="/deck/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">decK</div> <div class="item__description-desc">Helps manage Kong’s configuration in a declarative fashion</div> </div> </a> <a class="item" href="/kubernetes-ingress-controller/latest/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong Ingress Controller</div> <div class="item__description-desc">Works inside a Kubernetes cluster and configures Kong to proxy traffic</div> </div> </a> <a class="item" href="/gateway-operator/latest/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">Kong Gateway Operator</div> <div class="item__description-desc">Manage your Kong deployments on Kubernetes using YAML Manifests</div> </div> </a> <a class="item" href="https://docs.insomnia.rest/" tabindex="-1" target="_blank" rel="noopener nofollow noreferrer "> <div class="item__description"> <div class="item__description-title">Insomnia</div> <div class="item__description-desc">Collaborative API development platform</div> </div> </a> </div> </div> </li> </div> </ul> </li> <li role="menuitem" aria-haspopup="true" aria-expanded="false" class="navbar-item main-menu-item with-submenu navbar-item-hub"> <span id="plugin-link" class="main-menu-item-title" tabindex="0">Plugin Hub</span> <span class="caret"></span> <ul class="navbar-item-submenu" role="menu"> <div class="submenu-section"> <li role="menuitem" class="docs-dropdown-li"> <a href="/hub/" class="docs-dropdown-li__link" tabindex="-1"> <div class="docs-dropdown-li__card"> <span class="heading">Explore the Plugin Hub</span> <div class="docs-dropdown-li__card-link"> <img src="/assets/images/landing-page/view-all-plugins.svg" alt="View all plugins"> <span class="docs-dropdown-li__card-image"> View all plugins <img src="/assets/images/landing-page/arrow-right.svg" alt="View all plugins arrow image"> </span> </div> </div> </a> </li> <li role="menuitem" class="docs-dropdown-li"> <div class="docs-dropdown-li__section"> <div class="docs-dropdown-li__section-title"> <span class="heading">Functionality</span> <a href="/hub/" class="view-all" tabindex="-1"> View all <img src="/assets/images/landing-page/arrow-right.svg" alt="View all arrow image"> </a> </div> <div class="docs-dropdown-li__section-items"> <a class="item item-all" href="/hub/" tabindex="-1"> <div class="item__description"> <div class="item__description-title">View all plugins</div> </div> </a> <a class="item" href="/hub/?category=ai" tabindex="-1"> <div> <img src="/assets/images/nav/hub/ai.svg" alt="AI's icon"> </div> <div class="item__description"> <div class="item__description-title">AI</div> <div class="item__description-desc">Govern, secure, and control AI traffic with multi-LLM AI Gateway plugins</div> </div> </a> <a class="item" href="/hub/?category=authentication" tabindex="-1"> <div> <img src="/assets/images/nav/hub/lock_person.svg" alt="Authentication's icon"> </div> <div class="item__description"> <div class="item__description-title">Authentication</div> <div class="item__description-desc">Protect your services with an authentication layer</div> </div> </a> <a class="item" href="/hub/?category=security" tabindex="-1"> <div> <img src="/assets/images/nav/hub/shield.svg" alt="Security's icon"> </div> <div class="item__description"> <div class="item__description-title">Security</div> <div class="item__description-desc">Protect your services with additional security layer</div> </div> </a> <a class="item" href="/hub/?category=traffic-control" tabindex="-1"> <div> <img src="/assets/images/nav/hub/route.svg" alt="Traffic Control's icon"> </div> <div class="item__description"> <div class="item__description-title">Traffic Control</div> <div class="item__description-desc">Manage, throttle and restrict inbound and outbound API traffic</div> </div> </a> <a class="item" href="/hub/?category=serverless" tabindex="-1"> <div> <img src="/assets/images/nav/hub/serverless.svg" alt="Serverless's icon"> </div> <div class="item__description"> <div class="item__description-title">Serverless</div> <div class="item__description-desc">Invoke serverless functions in combination with other plugins</div> </div> </a> <a class="item" href="/hub/?category=analytics-monitoring" tabindex="-1"> <div> <img src="/assets/images/nav/hub/bar_chart.svg" alt="Analytics & Monitoring's icon"> </div> <div class="item__description"> <div class="item__description-title">Analytics & Monitoring</div> <div class="item__description-desc">Visualize, inspect and monitor APIs and microservices traffic</div> </div> </a> <a class="item" href="/hub/?category=transformations" tabindex="-1"> <div> <img src="/assets/images/nav/hub/swap_horiz.svg" alt="Transformations's icon"> </div> <div class="item__description"> <div class="item__description-title">Transformations</div> <div class="item__description-desc">Transform request and responses on the fly on Kong</div> </div> </a> <a class="item" href="/hub/?category=logging" tabindex="-1"> <div> <img src="/assets/images/nav/hub/list_alt.svg" alt="Logging's icon"> </div> <div class="item__description"> <div class="item__description-title">Logging</div> <div class="item__description-desc">Log request and response data using the best transport for your infrastructure</div> </div> </a> </div> </div> </li> </div> </ul> </li> <li role="menuitem" class="main-menu-item"> <a href="https://support.konghq.com/" class="navbar-item" target="_blank" rel="noopener nofollow noreferrer ">Support</a> </li> <li role="menuitem" class="main-menu-item"> <a href="https://konghq.com/community/" class="navbar-item" target="_blank" rel="noopener noreferrer">Community</a> </li> <li role="menuitem" class="main-menu-item"> <a href="https://education.konghq.com" class="navbar-item" target="_blank" rel="noopener nofollow noreferrer ">Kong Academy</a> </li> </ul> <a id="top-cta" href="https://konghq.com/contact-sales?utm_source=docs.konghq.com" class="navbar-button" target="_blank" rel="noopener nofollow noreferrer "> Get a Demo </a> <a id="konnect-cta" href="https://konghq.com/products/kong-konnect/register?utm_medium=referral&utm_source=docs&utm_campaign=gateway-konnect&utm_content=top-nav" class="navbar-button" target="_blank" rel="noopener nofollow noreferrer "> Start Free Trial </a> </div> <div id="navbar-menu-toggle-button" class="small-screen-button" aria-label="Toggle navigation"> <div></div> <div></div> <div></div> </div> </div> </header> <div class="page v2 " data-url="/mesh/latest/features/openshift-quickstart/"> <div class="page--header-background page--header-background-doc"></div> <div class="container"> <header class="page-header page-header-doc"> <div class="page-header-product-version"> <div class="edition"> Kong Mesh </div> <div class="version"> 2.9.x <span>(latest)</span> </div> </div> <div class="page-header--nav"> <i class="sidebar-toggle"></i> <ul class="breadcrumbs"> <li class="breadcrumb-item"> <a href="/"> <img src="/assets/images/icons/hub-layout/icn-breadcrumbs.svg" alt="Home icon"> </a> </li> <li class="breadcrumb-item"> <a href="/mesh/latest/">Kong Mesh</a> </li> <li class="breadcrumb-item"> <a href="/mesh/latest/features/">Features</a> </li> <li class="breadcrumb-item"> <a href="/mesh/latest/features/openshift-quickstart/">Get started with Red Hat OpenShift and Kong Mesh</a> </li> </ul> <div class="github-links"> <div class="github-links--edit"> <a href="https://github.com/Kong/docs.konghq.com/edit/main/app/_src/mesh/features/openshift-quickstart.md" target="_blank" rel="noopener nofollow noreferrer "> <img src="/assets/images/icons/third-party/logo-github-white.svg" alt="github-edit-page">Edit this page </a> </div> <div class="github-links--issues"> <a href="https://github.com/Kong/docs.konghq.com/issues/" target="_blank" rel="noopener nofollow noreferrer "> <img src="/assets/images/icons/documentation/icn-monitoring-white.svg" alt="report-issue">Report an issue</a> </div> </div> </div> </header> <aside class="docs-sidebar"> <i class="fa fa-times close-sidebar"></i> <div class="sidebar-title-container"> <div class="docsets-dropdown dropdown"> <button class="dropdown-button" id="module-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="0"> <span> Kong Mesh </span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right with-submenu" id="module-list" role="menu" aria-labelledby="module-dropdown" aria-hidden="true"> <li role="menuitem" tabindex="-1"> <a href="/gateway/latest/">Kong Gateway</a> </li> <li role="menuitem" tabindex="-1"> <a href="/konnect/">Kong Konnect</a> </li> <li role="menuitem" tabindex="-1" class="active"> <a href="/mesh/latest/" class="active">Kong Mesh</a> </li> <li role="menuitem" tabindex="-1"> <a href="/hub/?category=ai">Kong AI Gateway</a> </li> <li role="menuitem" tabindex="-1"> <a href="/hub/">Plugin Hub</a> </li> <li role="menuitem" tabindex="-1"> <a href="/deck/">decK</a> </li> <li role="menuitem" tabindex="-1"> <a href="/kubernetes-ingress-controller/latest/">Kong Ingress Controller</a> </li> <li role="menuitem" tabindex="-1"> <a href="/gateway-operator/latest/">Kong Gateway Operator</a> </li> <li> <a href="https://docs.insomnia.rest/" target="_blank" rel="noopener nofollow noreferrer ">Insomnia</a> </li> <li role="menuitem" tabindex="-1"> <a href="https://kuma.io/docs/" target="_blank" rel="noopener nofollow noreferrer ">Kuma</a> </li> <hr> <li role="menuitem" tabindex="-1"> <a href="/contributing/">Docs contribution guidelines</a> </li> </ul> </div> <div class="versions-dropdown dropdown"> <button class="dropdown-button" id="version-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="0"> <span> Version 2.9.x <span>(latest)</span> </span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" id="version-list" role="menu" aria-labelledby="version-dropdown" aria-hidden="true"> <li role="menuitem" tabindex="-1"> <a href="/mesh/dev/features/openshift-quickstart/" data-version-id="2.10.x"> <em>dev</em> </a> </li> <li class="active" role="menuitem" tabindex="-1"> <a href="/mesh/2.9.x/features/openshift-quickstart/" class="active" data-version-id="2.9.x"> 2.9.x <em>(latest)</em> </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.8.x/features/openshift-quickstart/" data-version-id="2.8.x"> 2.8.x </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.7.x/features/openshift-quickstart/" data-version-id="2.7.x"> 2.7.x (LTS) </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.6.x/features/openshift-quickstart/" data-version-id="2.6.x"> 2.6.x </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.5.x/features/openshift-quickstart/" data-version-id="2.5.x"> 2.5.x </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.4.x/" data-version-id="2.4.x"> 2.4.x </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.3.x/" data-version-id="2.3.x"> 2.3.x </a> </li> <li role="menuitem" tabindex="-1"> <a href="/mesh/2.2.x/" data-version-id="2.2.x"> 2.2.x </a> </li> </ul> </div> </div> <ul class="sidebar-container" role="tree" aria-label="Documentation"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-1-introduction-subtree"> <img src="/assets/images/icons/documentation/icn-flag.svg" alt=""> Introduction <button class="sidebar-tree-toggle" aria-label="toggle Introduction subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-1-introduction-subtree" role="group" aria-label="Introduction"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/about-service-meshes/"> About service meshes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/"> Overview of Kong Mesh </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/how-kong-mesh-works/"> How Kong Mesh works </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/architecture/"> Architecture </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/install/"> Install </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/concepts/"> Concepts </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/availability-stages/"> Stages of software availability </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/support-policy/"> Version support policy </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/sbom/"> Software Bill of Materials </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/vulnerability-patching-process/"> Vulnerability patching process </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/introduction/kuma-requirements/"> Mesh requirements </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/changelog/"> Release notes </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-2-quickstart-subtree"> <img src="/assets/images/icons/documentation/icn-quickstart-color.svg" alt=""> Quickstart <button class="sidebar-tree-toggle" aria-label="toggle Quickstart subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-2-quickstart-subtree" role="group" aria-label="Quickstart"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/quickstart/kubernetes-demo/"> Deploy Kong Mesh on Kubernetes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/quickstart/universal-demo/"> Deploy Kong Mesh on Universal </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-kong-mesh-in-production-subtree"> <img src="/assets/images/icons/documentation/icn-deployment-color.svg" alt=""> Kong Mesh in Production <button class="sidebar-tree-toggle" aria-label="toggle Kong Mesh in Production subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-kong-mesh-in-production-subtree" role="group" aria-label="Kong Mesh in Production"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/"> Overview </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-2-deployment-topologies-subtree"> Deployment topologies <button class="sidebar-tree-toggle" aria-label="toggle Deployment topologies subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-2-deployment-topologies-subtree" role="group" aria-label="Deployment topologies"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/deployment/"> Overview </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/deployment/single-zone/"> Single-zone deployment </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/deployment/multi-zone/"> Multi-zone deployment </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/deployment/high-availability/"> High availability </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/use-mesh/"> Use Kong Mesh </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-4-control-plane-deployment-subtree"> Control plane deployment <button class="sidebar-tree-toggle" aria-label="toggle Control plane deployment subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-4-control-plane-deployment-subtree" role="group" aria-label="Control plane deployment"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/license/"> Kong Mesh license </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/single-zone/"> Deploy a single-zone control plane </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/multi-zone/"> Deploy a multi-zone global control plane </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/zone-ingress/"> Zone Ingress </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/zoneegress/"> Zone Egress </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/zoneproxy-auth/"> Configure zone proxy authentication </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/kuma-cp/"> Control plane configuration reference </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/systemd/"> Systemd </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/kubernetes/"> Kubernetes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/cli/"> kumactl </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/cp-deployment/production-usage-values/"> Deploy Kong Mesh in Production with Helm </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/mesh/"> Configuring your Mesh and multi-tenancy </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-6-data-plane-configuration-subtree"> Data plane configuration <button class="sidebar-tree-toggle" aria-label="toggle Data plane configuration subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-6-data-plane-configuration-subtree" role="group" aria-label="Data plane configuration"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/dpp/"> Data plane proxy </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/dpp-on-kubernetes/"> Configure the data plane on Kubernetes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/dpp-on-universal/"> Configure the data plane on Universal </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/cni/"> Configure the Kong Mesh CNI </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/transparent-proxying/"> Configure transparent proxying </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/dp-config/ipv6/"> IPv6 support </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-7-secure-your-deployment-subtree"> Secure your deployment <button class="sidebar-tree-toggle" aria-label="toggle Secure your deployment subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-7-secure-your-deployment-subtree" role="group" aria-label="Secure your deployment"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/secure-deployment/secrets/"> Manage secrets </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/secure-deployment/api-server-auth/"> Authentication with the API server </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/secure-deployment/dp-auth/"> Authentication with the data plane proxy </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/secure-deployment/dp-membership/"> Configure data plane proxy membership </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/secure-deployment/certificates/"> Secure access accross services </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/rbac/"> Kong Mesh RBAC </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/fips-support/"> FIPS support </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/gui/"> Kong Mesh user interface </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-9-inspect-api-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/inspect-api/"> Inspect API </a> <button class="sidebar-tree-toggle" aria-label="toggle Inspect API subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-9-inspect-api-subtree" role="group" aria-label="Inspect API"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/inspect-api/#matched-policies"> Matched policies </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/inspect-api/#affected-data-plane-proxies"> Affected data plane proxies </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/inspect-api/#envoy-proxy-configuration"> Envoy proxy configuration </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-10-upgrades-and-tuning-subtree"> Upgrades and tuning <button class="sidebar-tree-toggle" aria-label="toggle Upgrades and tuning subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-10-upgrades-and-tuning-subtree" role="group" aria-label="Upgrades and tuning"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/upgrades-tuning/upgrades/"> Upgrade Kong Mesh </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/upgrades-tuning/fine-tuning/"> Performance fine-tuning </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/production/upgrades-tuning/upgrade-notes/"> Version specific upgrade notes </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-3-11-control-plane-configuration-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/documentation/configuration/"> Control Plane Configuration </a> <button class="sidebar-tree-toggle" aria-label="toggle Control Plane Configuration subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-3-11-control-plane-configuration-subtree" role="group" aria-label="Control Plane Configuration"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/documentation/configuration/#modifying-the-configuration"> Modifying the configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/documentation/configuration/#inspecting-the-configuration"> Inspecting the configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/documentation/configuration/#store"> Store </a> </span> </li> </ul> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-using-kong-mesh-subtree"> <img src="/assets/images/icons/documentation/icn-overview-color.svg" alt=""> Using Kong Mesh <button class="sidebar-tree-toggle" aria-label="toggle Using Kong Mesh subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-using-kong-mesh-subtree" role="group" aria-label="Using Kong Mesh"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-1-zero-trust-application-security-subtree"> Zero Trust & Application Security <button class="sidebar-tree-toggle" aria-label="toggle Zero Trust & Application Security subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-1-zero-trust-application-security-subtree" role="group" aria-label="Zero Trust & Application Security"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/mutual-tls/"> Mutual TLS </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/external-services/"> External Service </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-2-resiliency-failover-subtree"> Resiliency & Failover <button class="sidebar-tree-toggle" aria-label="toggle Resiliency & Failover subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-2-resiliency-failover-subtree" role="group" aria-label="Resiliency & Failover"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/documentation/health/"> Dataplane Health </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/service-health-probes/"> Service Health Probes </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-3-managing-incoming-traffic-with-gateways-subtree"> Managing incoming traffic with gateways <button class="sidebar-tree-toggle" aria-label="toggle Managing incoming traffic with gateways subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-3-managing-incoming-traffic-with-gateways-subtree" role="group" aria-label="Managing incoming traffic with gateways"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/overview/"> How ingress works in Kuma </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/delegated/"> Delegated gateways </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/builtin/"> Built-in gateways </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/builtin-k8s/"> Running built-in gateway pods on Kubernetes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/builtin-listeners/"> Configuring built-in listeners </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/builtin-routes/"> Configuring built-in routes </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/using-mesh/managing-ingress-traffic/gateway-api/"> Using the Kubernetes Gateway API </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-4-observability-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/"> Observability </a> <button class="sidebar-tree-toggle" aria-label="toggle Observability subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-4-observability-subtree" role="group" aria-label="Observability"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#demo-setup"> Demo setup </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#control-plane-observability"> Control plane metrics </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#configuring-prometheus"> Configuring Prometheus </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#configuring-grafana"> Configuring Grafana </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#configuring-datadog"> Configuring Datadog </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/explore/observability/#observability-in-multi-zone"> Observability in multi-zone </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-5-route-traffic-shaping-subtree"> Route & Traffic shaping <button class="sidebar-tree-toggle" aria-label="toggle Route & Traffic shaping subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-5-route-traffic-shaping-subtree" role="group" aria-label="Route & Traffic shaping"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/protocol-support-in-kong-mesh/"> Protocol support in Kong Mesh </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-4-6-service-discovery-networking-subtree"> Service Discovery & Networking <button class="sidebar-tree-toggle" aria-label="toggle Service Discovery & Networking subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-4-6-service-discovery-networking-subtree" role="group" aria-label="Service Discovery & Networking"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/service-discovery/"> Service Discovery </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/meshservice/"> MeshService </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/meshmultizoneservice/"> MeshMultiZoneService </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/hostnamegenerator/"> HostnameGenerator </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/dns/"> DNS </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/non-mesh-traffic/"> Non-mesh traffic </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/meshexternalservice/"> MeshExternalService </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/networking/transparent-proxying/"> Transparent Proxying </a> </span> </li> </ul> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-policies-subtree"> <img src="/assets/images/icons/documentation/icn-documentation-small.svg" alt=""> Policies <button class="sidebar-tree-toggle" aria-label="toggle Policies subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-policies-subtree" role="group" aria-label="Policies"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-1-introduction-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/"> Introduction </a> <button class="sidebar-tree-toggle" aria-label="toggle Introduction subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-1-introduction-subtree" role="group" aria-label="Introduction"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#what-is-a-policy"> What is a policy? </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#what-do-policies-look-like"> What do policies look like? </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#writing-a-targetref"> Writing a targetRef </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#merging-configuration"> Merging configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#using-policies-with-meshservice-meshmultizoneservice-and-meshexternalservice"> Using policies with MeshService </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#examples"> Examples </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/introduction/#applying-policies-in-shadow-mode"> Applying policies in shadow mode </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-2-meshaccesslog-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshaccesslog/"> MeshAccessLog </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshAccessLog subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-2-meshaccesslog-subtree" role="group" aria-label="MeshAccessLog"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshaccesslog/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshaccesslog/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshaccesslog/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-3-meshcircuitbreaker-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshcircuitbreaker/"> MeshCircuitBreaker </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshCircuitBreaker subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-3-meshcircuitbreaker-subtree" role="group" aria-label="MeshCircuitBreaker"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshcircuitbreaker/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshcircuitbreaker/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshcircuitbreaker/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-4-meshfaultinjection-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshfaultinjection/"> MeshFaultInjection </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshFaultInjection subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-4-meshfaultinjection-subtree" role="group" aria-label="MeshFaultInjection"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshfaultinjection/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshfaultinjection/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshfaultinjection/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-5-meshhealthcheck-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhealthcheck/"> MeshHealthCheck </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshHealthCheck subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-5-meshhealthcheck-subtree" role="group" aria-label="MeshHealthCheck"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhealthcheck/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhealthcheck/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhealthcheck/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-6-meshhttproute-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhttproute/"> MeshHTTPRoute </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshHTTPRoute subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-6-meshhttproute-subtree" role="group" aria-label="MeshHTTPRoute"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhttproute/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhttproute/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhttproute/#examples"> Examples </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshhttproute/#merging"> Merging </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-7-meshloadbalancingstrategy-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshloadbalancingstrategy/"> MeshLoadBalancingStrategy </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshLoadBalancingStrategy subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-7-meshloadbalancingstrategy-subtree" role="group" aria-label="MeshLoadBalancingStrategy"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshloadbalancingstrategy/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshloadbalancingstrategy/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshloadbalancingstrategy/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-8-meshmetric-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/"> MeshMetric </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshMetric subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-8-meshmetric-subtree" role="group" aria-label="MeshMetric"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/#prometheus"> Prometheus </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/#opentelemetry"> OpenTelemetry </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshmetric/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-9-meshpassthrough-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshpassthrough/"> MeshPassthrough </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshPassthrough subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-9-meshpassthrough-subtree" role="group" aria-label="MeshPassthrough"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshpassthrough/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshpassthrough/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshpassthrough/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-10-meshproxypatch-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshproxypatch/"> MeshProxyPatch </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshProxyPatch subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-10-meshproxypatch-subtree" role="group" aria-label="MeshProxyPatch"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshproxypatch/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshproxypatch/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshproxypatch/#examples"> Examples </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshproxypatch/#merging"> Merging </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-11-meshratelimit-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshratelimit/"> MeshRateLimit </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshRateLimit subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-11-meshratelimit-subtree" role="group" aria-label="MeshRateLimit"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshratelimit/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshratelimit/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshratelimit/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-12-meshretry-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshretry/"> MeshRetry </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshRetry subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-12-meshretry-subtree" role="group" aria-label="MeshRetry"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshretry/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshretry/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshretry/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-13-meshtcproute-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtcproute/"> MeshTCPRoute </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshTCPRoute subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-13-meshtcproute-subtree" role="group" aria-label="MeshTCPRoute"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtcproute/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtcproute/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtcproute/#examples"> Examples </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtcproute/#route-policies-with-different-types-targeting-the-same-destination"> Route policies with different types targeting the same destination </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-14-meshtimeout-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtimeout/"> MeshTimeout </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshTimeout subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-14-meshtimeout-subtree" role="group" aria-label="MeshTimeout"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtimeout/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtimeout/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtimeout/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-15-meshtls-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtls/"> MeshTLS </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshTLS subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-15-meshtls-subtree" role="group" aria-label="MeshTLS"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtls/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtls/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtls/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-16-meshtrace-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrace/"> MeshTrace </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshTrace subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-16-meshtrace-subtree" role="group" aria-label="MeshTrace"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrace/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrace/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrace/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-17-meshtrafficpermission-subtree"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrafficpermission/"> MeshTrafficPermission </a> <button class="sidebar-tree-toggle" aria-label="toggle MeshTrafficPermission subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-17-meshtrafficpermission-subtree" role="group" aria-label="MeshTrafficPermission"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrafficpermission/#targetref-support-matrix"> TargetRef support matrix </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrafficpermission/#configuration"> Configuration </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshtrafficpermission/#examples"> Examples </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/meshopa/"> MeshOPA </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/meshglobalratelimit/"> MeshGlobalRateLimit (beta) </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-5-20-previous-policies-subtree"> Previous Policies <button class="sidebar-tree-toggle" aria-label="toggle Previous Policies subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-5-20-previous-policies-subtree" role="group" aria-label="Previous Policies"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/general-notes-about-kong-mesh-policies/"> General notes about Kong Mesh policies </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/how-kong-mesh-chooses-the-right-policy-to-apply/"> How Kong Mesh chooses the right policy to apply </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/traffic-permissions/"> Traffic Permissions </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/traffic-route/"> Traffic Route </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/traffic-metrics/"> Traffic Metrics </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/traffic-trace/"> Traffic Trace </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/traffic-log/"> Traffic Log </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/locality-aware/"> Locality-aware Load Balancing </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/fault-injection/"> Fault Injection </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/health-check/"> Health Check </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/circuit-breaker/"> Circuit Breaker </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/retry/"> Retry </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/timeout/"> Timeout </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/rate-limit/"> Rate Limit </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/virtual-outbound/"> Virtual Outbound </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/policies/meshgatewayroute/"> MeshGatewayRoute </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/opa/"> OPA policy </a> </span> </li> </ul> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-6-guides-subtree"> <img src="/assets/images/icons/documentation/icn-learning.svg" alt=""> Guides <button class="sidebar-tree-toggle" aria-label="toggle Guides subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-6-guides-subtree" role="group" aria-label="Guides"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/federate/"> Federate zone control plane </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/gateway-builtin/"> Add a builtin Gateway </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/gateway-delegated/"> Add Kong as a delegated Gateway </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/gateway-api/"> Kubernetes Gateway API </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/otel-metrics/"> Collect Metrics with OpenTelemetry </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/migration-to-the-new-policies/"> Migration to the new policies </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/progressively-rolling-in-strict-mtls/"> Progressively rolling in strict MTLS </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/guides/consumer-producer-policies/"> Producer and consumer policies </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-7-enterprise-features-subtree"> <img src="/assets/images/icons/documentation/icn-enterprise-blue.svg" alt=""> Enterprise Features <button class="sidebar-tree-toggle" aria-label="toggle Enterprise Features subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-7-enterprise-features-subtree" role="group" aria-label="Enterprise Features"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/"> Overview </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/vault/"> HashiCorp Vault CA </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/acmpca/"> Amazon ACM Private CA </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/cert-manager/"> cert-manager Private CA </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/opa/"> OPA policy support </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/meshopa/"> MeshOPA </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/kds-auth/"> Multi-zone authentication </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/fips-support/"> FIPS support </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/ca-rotation/"> Certificate Authority rotation </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/rbac/"> Role-Based Access Control </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-7-11-red-hat-subtree"> Red Hat <button class="sidebar-tree-toggle" aria-label="toggle Red Hat subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-7-11-red-hat-subtree" role="group" aria-label="Red Hat"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/ubi-images/"> UBI Images </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/openshift-quickstart/"> Red Hat OpenShift Quickstart </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/windows/"> Windows Support </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/installation/ecs/"> ECS Support </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/access-audit/"> Auditing </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/meshglobalratelimit/"> MeshGlobalRateLimit (beta) </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/signed-images/"> Verify signatures for signed Kong Mesh images </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-7-17-build-provenance-subtree"> Build provenance <button class="sidebar-tree-toggle" aria-label="toggle Build provenance subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-7-17-build-provenance-subtree" role="group" aria-label="Build provenance"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/provenance-verification-images/"> Verify build provenance for signed Kong Mesh images </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/features/provenance-verification-binaries/"> Verify build provenance for signed Kong Mesh binaries </a> </span> </li> </ul> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-8-reference-subtree"> <img src="/assets/images/icons/documentation/icn-references-color.svg" alt=""> Reference <button class="sidebar-tree-toggle" aria-label="toggle Reference subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-8-reference-subtree" role="group" aria-label="Reference"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/http-api/"> HTTP API </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/kubernetes-annotations/"> Kubernetes annotations and labels </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/data-collection/"> Kuma data collection </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/kuma-cp/"> Control plane configuration reference </a> </span> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="/mesh/latest/reference/proxy-template/"> Envoy proxy template </a> </span> </li> </ul> </li> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label" aria-expanded="false" aria-owns="id-9-community-subtree"> <img src="/assets/images/icons/documentation/icn-references-color.svg" alt=""> Community <button class="sidebar-tree-toggle" aria-label="toggle Community subtree" tabindex="-1"> <i class="fa fa-chevron-down"></i> </button> </span> <ul class="items" id="id-9-community-subtree" role="group" aria-label="Community"> <li class="sidebar-item" role="none"> <span role="treeitem" class="sidebar-label"> <a class="sidebar-link" tabindex="-1" href="https://kuma.io/community/" target="_blank" rel="noopener nofollow noreferrer "> Contribute to Kuma </a> </span> </li> </ul> </li> </ul> </aside> <aside class="docs-toc"> <i class="fa fa-times close-sidebar"></i> <i class="fa fa-chevron-right collapse-toc"></i> <i class="far fa-list-alt expand-toc"></i> <div id="oss-ee-toggle" data-current="Enterprise" style="display: none"> <span class="oss-ee-toggle-inner"> <img src="/assets/images/icons/icn-enterprise-black.svg" alt="enterprise-switcher-icon"> <span>Switch to <span id="switch-to-version">OSS</span></span> </span> </div> <div class="docs-toc-title"> <img src="/assets/images/icons/hub-layout/icn-on-this-page.svg" alt="On this page"><a href="#">On this page</a> </div> <ul> <li><a href="#prerequisites" class="active scroll-to">Prerequisites</a></li> <li><a href="#install-rosa" class="scroll-to">Install ROSA</a></li> <li><a href="#install-kong-mesh-in-standalone-mode" class="scroll-to">Install Kong Mesh in standalone mode</a></li> <li><a href="#deploy-the-demo-application" class="scroll-to">Deploy the demo application</a></li> <li><a href="#test-kong-mesh-capabilities" class="scroll-to">Test Kong Mesh capabilities</a></li> <li><a href="#clean-up" class="scroll-to">Clean up</a></li> <li><a href="#next-steps" class="scroll-to">Next steps</a></li> </ul> </aside> <div class="page-content-container page-content-container-doc v2 " id="documentation"> <div class="toggles "> <i class="far fa-list-alt toc-sidebar-toggle"></i> </div> <div class="page-content"> <div class="content show-anchor-links"> <h1 tabindex="-1" id="main" class="page-content-title">Get started with Red Hat OpenShift and Kong Mesh <a href="https://konghq.com/pricing" class="badge enterprise" aria-label="available with Kong Gateway Enterprise subscription" target="_blank" rel="noopener nofollow noreferrer "> </a> </h1> <p>In this guide, you will learn how to get Kong Mesh up and running quickly in <a href="/mesh/2.9.x/production/deployment/stand-alone/">standalone mode</a> on <a href="https://www.redhat.com/technologies/cloud-computing/openshift" target="_blank" rel="noopener nofollow noreferrer ">Red Hat OpenShift</a>. This tutorial assumes some base-level OpenShift knowledge.</p> <p>This tutorial doesn’t require a license because Kong Mesh can start in evaluation mode, which allows you to have up to five data planes or sidecars. This provides just enough data planes to get comfortable with the product and test it out.</p> <p>This quickstart tutorial covers:</p> <ul> <li>How to use the Red Hat Certified Kong Mesh images</li> <li>How to implement the required OpenShift security context constraints (SCCs) for the <code class="language-plaintext highlighter-rouge">kong-mesh</code> sidecar</li> <li>How to deploy a sample application, <code class="language-plaintext highlighter-rouge">kuma-demo</code>, on the mesh and validate that the application is working</li> <li>How to use the sample application to test the features of Kong Mesh</li> </ul> <h2 id="prerequisites">Prerequisites</h2> <ul> <li> <a href="https://docs.openshift.com/rosa/rosa_install_access_delete_clusters/rosa_getting_started_iam/rosa-installing-rosa.html" target="_blank" rel="noopener nofollow noreferrer ">Red Hat OpenShift Service on AWS (ROSA) CLI installed</a> or another OpenShift 4.12 cluster with the ability to create LoadBalancer type Kubernetes Services</li> <li><a href="https://docs.openshift.com/rosa/rosa_install_access_delete_clusters/rosa_getting_started_iam/rosa-config-aws-account.html" target="_blank" rel="noopener nofollow noreferrer ">An AWS account with ROSA permissions enabled</a></li> <li><a href="https://kubernetes.io/docs/tasks/tools/" target="_blank" rel="noopener nofollow noreferrer ">kubectl CLI installed</a></li> <li><a href="https://docs.openshift.com/container-platform/latest/cli_reference/openshift_cli/getting-started-cli.html" target="_blank" rel="noopener nofollow noreferrer ">OpenShift Container Platform CLI installed</a></li> <li><a href="https://helm.sh/docs/intro/install/" target="_blank" rel="noopener nofollow noreferrer ">Helm 3 installed</a></li> <li>Clone the Kong Mesh OpenShift quickstart repository: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> git clone https://github.com/Kong/kong-mesh-quickstart-openshift.git </code></pre></div> </div> </li> </ul> <h2 id="install-rosa">Install ROSA</h2> <p>In this section, you will install a ROSA cluster called <code class="language-plaintext highlighter-rouge">kong-mesh-2</code> in the <code class="language-plaintext highlighter-rouge">us-west-2</code> region. Then, you’ll create an admin user to get quick access to the cluster.</p> <ol> <li> <p>Navigate to the <code class="language-plaintext highlighter-rouge">kong-mesh-quickstart-openshift</code> repository that you just cloned in the prerequisites. All commands in this guide should be run from that repository.</p> </li> <li>Create system variables for the cluster name and region: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> <span class="nv">CLUSTER_NAME</span><span class="o">=</span>kong-mesh-demo <span class="nv">REGION</span><span class="o">=</span>us-west-2 </code></pre></div> </div> </li> <li>Create a small ROSA cluster: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> rosa create cluster <span class="nt">--cluster-name</span><span class="o">=</span><span class="nv">$CLUSTER_NAME</span> <span class="nt">--region</span><span class="o">=</span><span class="nv">$REGION</span> <span class="nt">--multi-az</span><span class="o">=</span><span class="nb">false</span> <span class="nt">--version</span> 4.12.13 </code></pre></div> </div> </li> <li>When the cluster install is complete, create a cluster-admin user: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> rosa create admin <span class="nt">--cluster</span> <span class="nv">$CLUSTER_NAME</span> </code></pre></div> </div> <p>Creating an admin user gives you quick access to the cluster for this quickstart. We recommend using a formal identity provider that you grant admin privileges to in a production environment.</p> </li> <li>Validate you can log in to the cluster using the credentials provided by the ROSA CLI <code class="language-plaintext highlighter-rouge">stout</code>. Once you successfully login, you can proceed to the next section.</li> </ol> <h2 id="install-kong-mesh-in-standalone-mode">Install Kong Mesh in standalone mode</h2> <p>In this section, you’ll install Kong Mesh in standalone mode. Standalone mode is used in this quickstart for simplicity.</p> <ol> <li>Create the <code class="language-plaintext highlighter-rouge">kong-mesh-system</code> namespace: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl create namespace kong-mesh-system </code></pre></div> </div> </li> <li>Create the image pull secret: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl create secret docker-registry rh-registry-secret <span class="nt">-n</span> kong-mesh-system <span class="se">\</span> <span class="nt">--docker-server</span><span class="o">=</span>registry.connect.redhat.com <span class="se">\</span> <span class="nt">--docker-username</span><span class="o">=</span><username> <span class="se">\</span> <span class="nt">--docker-password</span><span class="o">=</span><password> <span class="se">\</span> <span class="nt">--docker-email</span><span class="o">=</span><email> </code></pre></div> </div> <p>This authenticates you to Red Hat’s image registry, which allows you to pull the certified images.</p> </li> <li>Add <code class="language-plaintext highlighter-rouge">nonroot-v2</code> to job service accounts so that each of their Kubernetes jobs successfully runs: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> oc adm policy add-scc-to-user nonroot-v2 system:serviceaccount:kong-mesh-system:kong-mesh-install-crds oc adm policy add-scc-to-user nonroot-v2 system:serviceaccount:kong-mesh-system:kong-mesh-patch-ns-job oc adm policy add-scc-to-user nonroot-v2 system:serviceaccount:kong-mesh-system:kong-mesh-pre-delete-job </code></pre></div> </div> </li> <li>Get the latest Helm chart: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> helm repo add kong-mesh https://kong.github.io/kong-mesh-charts </code></pre></div> </div> </li> <li>Update Helm chart: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> helm repo update </code></pre></div> </div> </li> <li>Install Kong Mesh: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> helm upgrade <span class="nt">-i</span> kong-mesh kong-mesh/kong-mesh <span class="nt">--version</span> 2.2.0 <span class="nt">-f</span> kong-mesh/values.yaml <span class="nt">-n</span> kong-mesh-system </code></pre></div> </div> </li> <li>Verify that Kong Mesh installed correctly by checking the pod health: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl get pods <span class="nt">-n</span> kong-mesh-system </code></pre></div> </div> <p>This should return the control plane that is running, like the following:</p> <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> NAME READY STATUS RESTARTS AGE kong-mesh-control-plane-7443h46bd4-cmhsa 1/1 Running 0 19s </code></pre></div> </div> </li> <li>In a new terminal window, <code class="language-plaintext highlighter-rouge">port-forward</code> to reach the Kong Mesh GUI: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl port-forward svc/kong-mesh-control-plane <span class="nt">-n</span> kong-mesh-system 5681:5681 </code></pre></div> </div> <p>You should be able to reach the Kong Mesh UI at <code class="language-plaintext highlighter-rouge">http://localhost:5681/gui</code>.</p> </li> <li>Finally, you must do some prep work for the sidecar itself so sidecars will start up successfully. <ol> <li>Apply the <code class="language-plaintext highlighter-rouge">kong-mesh-sidecar</code> SCCs: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl create <span class="nt">-f</span> kong-mesh/kong-mesh-sidecar-scc.yaml </code></pre></div> </div> </li> <li>Apply the corresponding container patches: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl apply <span class="nt">-f</span> kong-mesh/container-patch.yaml </code></pre></div> </div> <p>In OpenShift, by default, all pods and containers are given the restricted SCC. This is insufficient for the Kong Mesh sidecars (containers). The sidecars need a slightly escalated permissions, these permissions are defined in the <code class="language-plaintext highlighter-rouge">kong-mesh-sidecar-scc</code> manifest. The <code class="language-plaintext highlighter-rouge">container-patch</code> file defines how to patch the sidecars with the SCCs.</p> </li> </ol> </li> </ol> <h2 id="deploy-the-demo-application">Deploy the demo application</h2> <p>In this step, you’ll deploy the <a href="/mesh/2.9.x/quickstart/kubernetes"><code class="language-plaintext highlighter-rouge">kuma-demo</code> app</a> to Kong Mesh. This allows you to quickly populate your mesh with services so you can test the capabilities of Kong Mesh.</p> <p>The <code class="language-plaintext highlighter-rouge">kuma-demo</code> app consists of two services:</p> <ul> <li> <code class="language-plaintext highlighter-rouge">demo-app</code>: A web application that lets you increment a numeric counter</li> <li> <code class="language-plaintext highlighter-rouge">redis</code>: A data store for the counter</li> </ul> <ol> <li>Escalate the SCC of PostgreSQL SA to <code class="language-plaintext highlighter-rouge">privileged</code>: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> oc adm policy add-scc-to-user privileged system:serviceaccount:kuma-demo:kuma-demo-postgres </code></pre></div> </div> <p>Escalating the SCC allows access to all privileged and host features. This is only recommended for this tutorial, do not escalate the SSC of PostgreSQL SA in a production environment.</p> </li> <li>Escalate the SCC of the default SA (this is the SA for the rest of the <code class="language-plaintext highlighter-rouge">kuma-demo</code> application pods) to use the <code class="language-plaintext highlighter-rouge">kong-mesh-sidecar</code> SCC: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> oc adm policy add-scc-to-user kong-mesh-sidecar system:serviceaccount:kuma-demo:default </code></pre></div> </div> </li> <li>In the <code class="language-plaintext highlighter-rouge">kuma-demo</code> directory, deploy the application: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl apply <span class="nt">-f</span> kuma-demo/kuma-demo-aio-ocp.yaml </code></pre></div> </div> </li> <li>You should see four application pods, each with two containers, in the output: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl get pods <span class="nt">-n</span> kuma-demo NAME READY STATUS RESTARTS AGE kuma-demo-app-5f5f685863-8778x 2/2 Running 0 51s kuma-demo-backend-v0-90bc879754-srafd 2/2 Running 0 52s postgres-master-6577s699c8-z9nas 2/2 Running 0 54s redis-master-949t4d567-khmha 2/2 Running 0 53s </code></pre></div> </div> </li> <li>Use <code class="language-plaintext highlighter-rouge">port-forward</code> to view the application: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl port-forward service/frontend <span class="nt">-n</span> kuma-demo 8080 </code></pre></div> </div> </li> </ol> <p>You can see the applications in the Kong Mesh UI at <code class="language-plaintext highlighter-rouge">http://localhost:8080</code>.</p> <h2 id="test-kong-mesh-capabilities">Test Kong Mesh capabilities</h2> <p>Now that you’ve deployed Kong Mesh along with the demo application on your ROSA cluster, you can test Kong Mesh. You can follow the instructions in <a href="/mesh/2.9.x/quickstart/kubernetes/#enable-mutual-tls-and-traffic-permissions">Enable Mutual TLS and Traffic Permissions</a> to learn how to use policies in Kong Mesh.</p> <h2 id="clean-up">Clean up</h2> <p>In this section, you will remove all components, including <code class="language-plaintext highlighter-rouge">kuma-demo</code> and Kong Mesh, and delete the ROSA cluster. Once all of these are removed, you can create a Kong Mesh production environment.</p> <ol> <li>Remove the <code class="language-plaintext highlighter-rouge">kuma-demo</code> application: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> kubectl delete deploy,svc <span class="nt">--all</span> <span class="nt">-n</span> kuma-demo </code></pre></div> </div> </li> <li>Remove Kong Mesh: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> helm uninstall kong-mesh <span class="nt">-n</span> kong-mesh-system </code></pre></div> </div> <p>All the components are now removed, so it’s safe to delete the ROSA cluster.</p> </li> <li>Delete the ROSA cluster admin user: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> rosa delete admin <span class="nt">--cluster</span> <span class="nv">$CLUSTER_NAME</span> </code></pre></div> </div> </li> <li>Delete the ROSA cluster: <div class="language-bash highlighter-rouge"> <div class="highlight"><pre class="highlight"><code> rosa delete cluster <span class="nt">--cluster</span> <span class="nv">$CLUSTER_NAME</span> </code></pre></div> </div> </li> </ol> <h2 id="next-steps">Next steps</h2> <p>Now that you’ve deleted your demo cluster and components, you can deploy Kong Mesh in a production environment. Follow the instructions in one of the following guides to deploy Kong Mesh using your method of choice:</p> <ul> <li><a href="/mesh/2.9.x/production/cp-deployment/stand-alone/">Deploy a standalone control plane</a></li> <li><a href="/mesh/2.9.x/production/cp-deployment/multi-zone/">Deploy a multi-zone global control plane</a></li> </ul> </div> </div> </div> <div id="scroll-to-top-button"> <i class="fas fa-chevron-up"></i> </div> <div class="feedback-widget-container"> <input id="feedback-widget-checkbox" type="checkbox"> <label for="feedback-widget-checkbox"> <img src="/assets/images/icons/feedback-widget.svg" alt="Feedback widget"> </label> <div class="feedback-container"> <div class="feedback-thankyou"> Thank you for your feedback. </div> <div class="feedback-comment"> <textarea id="feedback-comment-text" rows="3" placeholder="Please let us know what we can improve on this page..."></textarea> <div class="feedback-comment-buttons"> <button id="feedback-comment-button-back">Back</button> <button id="feedback-comment-button-submit" class="button-primary">Submit</button> </div> </div> <div class="feedback-options"> <div class="feedback-options-title">Was this page useful?</div> <div class="feedback-options-buttons"> <i data-feedback-result="yes" class="feedback-options-button far fa-thumbs-up"></i> <i data-feedback-result="no" class="feedback-options-button far fa-thumbs-down"></i> </div> </div> </div> </div> </div> <div id="image-modal" data-image-expand-disabled=""> <div class="image-modal-backdrop"></div> <div class="image-container"> <img src="" alt=""> <i class="fa fa-times"></i> </div> </div> <div class="modal closed" id="modal" role="dialog" aria-hidden="true" aria-labelledby="title" aria-describedby="description"> <div class="konnect-cta-card"> <div class="title"> Too much on your plate? <a href="#" class="cta-card-close modal-close" id="modal-close"> <img src="/assets/images/icons/documentation/close.svg" alt="close cta icon"> </a> </div> <div class="description"> More features, less infrastructure with Kong Konnect. 1M requests per month for free. </div> <a href="https://konghq.com/products/kong-konnect/register?utm_medium=referral&utm_source=docs&utm_campaign=gateway-konnect&utm_campaign=right-nav-card&utm_content=mesh" class="button" target="_blank" rel="noopener nofollow noreferrer "> Try it for Free </a> </div> </div> <div id="modal-open" class="modal-open"></div> <div class="modal-overlay closed" id="modal-overlay"></div> <footer class="marketing-footer--light-gray"> <section> <ul class="newsletter"> <li class="logo-wrapper"> <div class="logo"> <img src="/assets/images/logos/konglogo-light-theme-primary.svg" alt="Kong"> </div> <div class="footer-title">Powering the API world</div> <p> Increase developer productivity, security, and performance at scale with the unified platform for API management, service mesh, and ingress controller. </p> <div class="footer-form-container"> <form id="subscribe-form" method="POST" action="/assets/javascripts/subscribe.js"> <input required id="subscribe-input" type="email" name="email" placeholder="Email" aria-required="true" aria-invalid="false"> <input id="footer-form-button" type="submit" form="subscribe-form" value="Subscribe"> </form> <div id="form-response"></div> </div> </li> <li class="footer-columns"> <ul class="footer-columns-product-list"> <li> <nav> <div class="footer-category">Products</div> <ul> <li> <a href="https://konghq.com/products/kong-konnect" target="_blank" rel="noopener nofollow noreferrer ">Kong Konnect</a> </li> <li> <a href="https://konghq.com/products/kong-enterprise" target="_blank" rel="noopener nofollow noreferrer ">Kong Gateway Enterprise</a> </li> <li> <a href="https://konghq.com/products/kong-gateway" target="_blank" rel="noopener nofollow noreferrer ">Kong Gateway</a> </li> <li> <a href="https://konghq.com/products/kong-mesh" target="_blank" rel="noopener nofollow noreferrer ">Kong Mesh</a> </li> <li> <a href="https://konghq.com/products/kong-ingress-controller" target="_blank" rel="noopener nofollow noreferrer ">Kong Ingress Controller</a> </li> <li> <a href="https://insomnia.rest/" target="_blank" rel="noopener nofollow noreferrer noopener nofollow noreferrer">Kong Insomnia</a> </li> <li> <a href="https://konghq.com/product-updates" target="_blank" rel="noopener nofollow noreferrer ">Product Updates</a> </li> <li> <a href="https://konghq.com/contact-sales" target="_blank" rel="noopener nofollow noreferrer ">Get Started</a> </li> </ul> </nav> </li> <li> <nav> <div class="footer-category">Documentation</div> <ul> <li> <a href="/konnect/">Kong Konnect Docs</a> </li> <li> <a href="/gateway/latest/">Kong Gateway Docs</a> </li> <li> <a href="/gateway/latest/kong-enterprise/">Kong Gateway Enterprise Docs</a> </li> <li> <a href="/mesh/latest/">Kong Mesh Docs</a> </li> <li> <a href="https://docs.insomnia.rest/" target="_blank" rel="noopener nofollow noreferrer noopener nofollow noreferrer">Kong Insomnia Docs</a> </li> <li> <a href="/hub/">Kong Konnect Plugin Hub</a> </li> </ul> </nav> </li> <li> <nav> <div class="footer-category">Open Source</div> <ul> <li> <a href="https://konghq.com/install/#kong-community" target="_blank" rel="noopener nofollow noreferrer ">Kong Gateway</a> </li> <li> <a href="https://kuma.io/" target="_blank" rel="noopener nofollow noreferrer noopener nofollow noreferrer">Kuma</a> </li> <li> <a href="https://insomnia.rest/" target="_blank" rel="noopener nofollow noreferrer noopener nofollow noreferrer">Insomnia</a> </li> <li> <a href="https://konghq.com/community" target="_blank" rel="noopener nofollow noreferrer ">Kong Community</a> </li> </ul> </nav> </li> <li> <nav> <div class="footer-category">Company</div> <ul> <li> <a href="https://konghq.com/company/about-us" target="_blank" rel="noopener nofollow noreferrer ">About Kong</a> </li> <li> <a href="https://konghq.com/customers" target="_blank" rel="noopener nofollow noreferrer ">Customers</a> </li> <li> <a href="https://konghq.com/company/careers" target="_blank" rel="noopener nofollow noreferrer ">Careers</a> </li> <li> <a href="https://konghq.com/press-room" target="_blank" rel="noopener nofollow noreferrer ">Press</a> </li> <li> <a href="https://konghq.com/events" target="_blank" rel="noopener nofollow noreferrer ">Events</a> </li> <li> <a href="https://konghq.com/company/contact-us" target="_blank" rel="noopener nofollow noreferrer ">Contact</a> </li> </ul> </nav> </li> </ul> </li> </ul> </section> <section class="legal"> <div class="container d-flex"> <div class="social"> <div class="social-link"> <a href="https://www.facebook.com/konghq/" title="Facebook" target="_blank" rel="noopener nofollow noreferrer "><i aria-label="Facebook" class="fa fa-facebook-official" aria-hidden="true"></i></a> </div> <div class="social-link"> <a href="https://twitter.com/thekonginc" title="Twitter" target="_blank" rel="noopener nofollow noreferrer "><i aria-label="Twitter" class="fa fa-twitter" aria-hidden="true"></i></a> </div> <div class="social-link"> <a href="https://www.meetup.com/topics/kong/all/" title="Meetup" target="_blank" rel="noopener nofollow noreferrer "><i aria-label="Meetup" class="fa fa-meetup" aria-hidden="true"></i></a> </div> <div class="social-link"> <a href="https://linkedin.com/company/278819" title="LinkedIn" target="_blank" rel="noopener nofollow noreferrer "><i aria-label="GitHub" class="fa fa-linkedin" aria-hidden="true"></i></a> </div> <div class="social-link"> <a href="https://github.com/kong/kong" target="_blank" class="btn-gh" title="GitHub" rel="noopener nofollow noreferrer "> <i class="fa fa-github" aria-hidden="true" aria-label="GitHub"></i> </a> </div> </div> <ul> <li> <span class="mashape-footer-content"> <a href="https://konghq.com/legal/terms-of-use" target="_blank" rel="noopener nofollow noreferrer ">Terms</a><b>•</b> <a href="https://konghq.com/legal/privacy-policy" target="_blank" rel="noopener nofollow noreferrer ">Privacy</a><b>•</b> <a href="https://konghq.com/compliance" target="_blank" rel="noopener nofollow noreferrer ">Trust and Compliance</a> </span> </li> </ul> <div> <span>© Kong Inc. 2025 </span> </div> </div> </section> </footer> <script> var anchorForId = function (id) { var anchor = document.createElement("a"); anchor.className = "header-link"; anchor.href = "#" + id; anchor.innerHTML = "<i class=\"fa fa-link\"></i>"; anchor.title = `${id} Permalink`; return anchor; }; document.onreadystatechange = function () { if (this.readyState === "complete") { var className = ".show-anchor-links h1, .show-anchor-links h2, .show-anchor-links h3, " + ".show-anchor-links h4, .show-anchor-links h5, .show-anchor-links h6"; var headers = document.querySelectorAll(className); for (var i = 0; i < headers.length; i++) { var header = headers[i]; if (typeof header.id !== "undefined" && header.id !== "") { header.prepend(anchorForId(header.id)); } } } }; </script> <script> !function(){var i="analytics",analytics=window[i]=window[i]||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"];analytics.factory=function(e){return function(){if(window[i].initialized)return window[i][e].apply(window[i],arguments);var n=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(e)>-1){var c=document.querySelector("link[rel='canonical']");n.push({__t:"bpc",c:c&&c.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}n.unshift(e);analytics.push(n);return analytics}};for(var n=0;n<analytics.methods.length;n++){var key=analytics.methods[n];analytics[key]=analytics.factory(key)}analytics.load=function(key,n){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.setAttribute("data-global-segment-analytics-key",i);t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r);analytics._loadOptions=n};analytics._writeKey="X7EZTdbdUKQ8M6x42SHHPWiEhjsfs1EQ";;analytics.SNIPPET_VERSION="5.2.0"; analytics.load("X7EZTdbdUKQ8M6x42SHHPWiEhjsfs1EQ"); analytics.page(); }}(); </script> <div id="fb-root"></div> <script id="github-bjs" src="https://buttons.github.io/buttons.js" async defer></script> <script type="text/javascript"> var _vwo_code = (function() { var account_id = 125292, settings_tolerance = 2000, library_tolerance = 2500, use_existing_jquery = true, // DO NOT EDIT BELOW THIS LINE f = false, d = document; return { use_existing_jquery: function() { return use_existing_jquery; }, library_tolerance: function() { return library_tolerance; }, finish: function() { if (!f) { f = true; var a = d.getElementById('_vis_opt_path_hides'); if (a) a.parentNode.removeChild(a); } }, finished: function() { return f; }, load: function(a) { var b = d.createElement('script'); b.src = a; b.type = 'text/javascript'; b.innerText; b.onerror = function() { _vwo_code.finish(); }; d.getElementsByTagName('head')[0].appendChild(b); }, init: function() { settings_timer = setTimeout( '_vwo_code.finish()', settings_tolerance ); this.load( '//dev.visualwebsiteoptimizer.com/j.php?a=' + account_id + '&u=' + encodeURIComponent(d.URL) + '&r=' + Math.random() ); var a = d.createElement('style'), b = '', h = d.getElementsByTagName('head')[0]; a.setAttribute('id', '_vis_opt_path_hides'); a.setAttribute('type', 'text/css'); if (a.styleSheet) a.styleSheet.cssText = b; else a.appendChild(d.createTextNode(b)); h.appendChild(a); return settings_timer; } }; })(); _vwo_settings_timer = _vwo_code.init(); </script> <script src="https://cdn.jsdelivr.net/npm/@docsearch/js@3"></script> <script type="text/javascript"> docsearch({ appId: '05Y6TLHNFZ', apiKey: '80483bfe28d9fd036a11a6f6a06454f8', indexName: 'konghq', container: '#getkong-algolia-search-input', disableUserPersonalization: true, placeholder: 'Search the docs...', // Override selected event to allow for local environment navigation transformItems(items) { return items.map((item) => { var modifiedUrl = window.location.protocol + '//' + window.location.host + item.url.split('docs.konghq.com')[1]; return { ...item, url: modifiedUrl }; }); }, translations: { button: { buttonText: 'Search the docs..', buttonAriaLabel: 'Search the docs...' } }, resultsFooterComponent({ state }) { var facetParameters = {}; facetParameters = {"version[0]":"latest","product[0]":"Kong Mesh"}; var queryParams = new URLSearchParams(facetParameters); queryParams.set('query', state.query); return { // The HTML `tag` type: 'a', ref: undefined, constructor: undefined, key: state.query, // Its props props: { href: `/search/?${queryParams.toString()}`, target: '_blank', // Raw text rendered in the HTML element children: 'See more >' }, __v: null, }; }, searchParameters: { optionalFilters: ['product:Kong Mesh<score=1>'], facetFilters: [ 'version:latest'] } }); </script> </div> </body> </html>