<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configuration on Kiali</title><link>https://staging--kiali.netlify.app/docs/configuration/</link><description>Recent content in Configuration on Kiali</description><generator>Hugo</generator><language>en</language><atom:link href="https://staging--kiali.netlify.app/docs/configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>Console Customization</title><link>https://staging--kiali.netlify.app/docs/configuration/console-customization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/console-customization/</guid><description>&lt;h2 id="custom-metric-aggregations"&gt;Custom metric aggregations&lt;/h2&gt;&#10;&lt;p&gt;The inbound and outbound metric pages, in the &lt;em&gt;Metrics settings&lt;/em&gt; drop-down,&#10;provides an opinionated set of groupings that work both for filtering out&#10;metric data that does not match the selection and for aggregating data into&#10;series. Each option is backed by a label on the collected Istio telemetry.&lt;/p&gt;&#10;&lt;p&gt;It is possible to add custom aggregations, like in the following example:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kiali_feature_flags&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ui_defaults&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics_inbound&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;aggregations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Istio Network&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;topology_istio_io_network&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Istio Revision&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;istio_io_rev&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics_outbound&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;aggregations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Istio Revision&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;istio_io_rev&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Notice that custom aggregations for inbound and outbound metrics are defined separately.&lt;/p&gt;</description></item><item><title>Custom Dashboards</title><link>https://staging--kiali.netlify.app/docs/configuration/custom-dashboard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/custom-dashboard/</guid><description>&lt;p&gt;&lt;a href="https://staging--kiali.netlify.app/docs/features/details/#custom-dash"&gt;Custom Dashboards&lt;/a&gt; require some configuration to work properly.&lt;/p&gt;&#10;&lt;h2 id="declaring-a-custom-dashboard"&gt;Declaring a custom dashboard&lt;/h2&gt;&#10;&lt;p&gt;When installing Kiali, you define your own custom dashboards in the Kiali CR &lt;code&gt;spec.custom_dashboards&lt;/code&gt; field. Here&amp;rsquo;s an example of what it looks like:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_dashboards&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;vertx-custom&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;title&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Vert.x Metrics&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;runtime&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Vert.x&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;discoverOn&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;vertx_http_server_connections&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;items&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;chart&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Server response time&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;unit&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;seconds&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spans&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;6&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;metricName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;vertx_http_server_responseTime_seconds&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;displayName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Server response time&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;dataType&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;histogram&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;aggregations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;displayName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Path&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;method&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;displayName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Method&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;chart&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Server active connections&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;unit&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spans&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;6&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metricName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;vertx_http_server_connections&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;dataType&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;raw&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;include&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;micrometer-1.1-jvm&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;externalLinks&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;My custom Grafana dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;grafana&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;variables&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;app&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;var-app&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;var-namespace&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;var-version&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;em&gt;name&lt;/em&gt; field corresponds to what you can set in the pod annotation &lt;a href="https://staging--kiali.netlify.app/docs/configuration/custom-dashboard/#pod-annotations"&gt;kiali.io/dashboards&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Debugging Kiali</title><link>https://staging--kiali.netlify.app/docs/configuration/debugging-kiali/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/debugging-kiali/</guid><description>&lt;h2 id="logs"&gt;Logs&lt;/h2&gt;&#10;&lt;p&gt;The most basic way of debugging the internals of Kiali is to examine its log messages. A typical way of examining the log messages is via:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;kubectl logs -n istio-system deployment/kiali&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Each log message is logged at a specific level. The different log levels are &lt;code&gt;trace&lt;/code&gt;, &lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;warn&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, and &lt;code&gt;fatal&lt;/code&gt;. By default, log messages at &lt;code&gt;info&lt;/code&gt; level and higher will be logged. If you want to see more verbose logs, set the log level to &lt;code&gt;debug&lt;/code&gt; or &lt;code&gt;trace&lt;/code&gt; (&lt;code&gt;trace&lt;/code&gt; is the most verbose setting and will make the log output very &amp;ldquo;noisy&amp;rdquo;). You set the log level in the Kiali CR:&lt;/p&gt;</description></item><item><title>Istio Environment</title><link>https://staging--kiali.netlify.app/docs/configuration/istio/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/istio/</guid><description>&lt;h2 id="labels-and-resource-names"&gt;Labels and resource names&lt;/h2&gt;&#10;&lt;p&gt;Istio recommends &lt;a href="https://istio.io/latest/docs/ops/deployment/application-requirements/#pod-requirements"&gt;adding &lt;code&gt;app&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; labels to&#10;pods&lt;/a&gt; to attach this information to telemetry. Kiali relies on correctness of these labels for several features.&lt;/p&gt;&#10;&lt;p&gt;In Istio, it is possible to use a different set of labels, like&#10;&lt;code&gt;app.kubernetes.io/name&lt;/code&gt; and &lt;code&gt;app.kubernetes.io/version&lt;/code&gt;, however you must&#10;configure Kiali to the labels you are using. By default, Kiali uses Istio&amp;rsquo;s&#10;recommended labels:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;app_label_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;app&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version_label_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="alert alert-warning" role="alert"&gt;&#10;&lt;p&gt;Although Istio lets you use different labels on different pods, Kiali can only&#10;use a single set.&lt;/p&gt;&#10;&lt;p&gt;For example, Istio lets you use the &lt;code&gt;app&lt;/code&gt; label in one pod and the&#10;&lt;code&gt;app.kubernetes.io/name&lt;/code&gt; in another pod and it will generate telemetry&#10;correctly. However, you will have no way to configure Kiali for this case.&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Kiali CR Reference</title><link>https://staging--kiali.netlify.app/docs/configuration/kialis.kiali.io/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/kialis.kiali.io/</guid><description>&lt;div class="crd-schema-version"&gt;&#10;&lt;h3 id="example-cr"&gt;Example CR&lt;/h3&gt;&#10;&lt;em&gt;(all values shown here are the defaults unless otherwise noted)&lt;/em&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;apiVersion&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;kiali.io/v1alpha1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kind&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Kiali&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metadata&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;kiali&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ansible.sdk.operatorframework.io/verbosity&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_display_details&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;title&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;API Documentation&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;annotation&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali.io/api-spec&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;icon_annotation&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali.io/api-type&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;installation_tag&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ai&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;chat&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;allowed_users&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;default_provider&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;max_tool_iterations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;providers&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;store_config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;inactivity_timeout&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;30m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;max_cache_memory_mb&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;1024&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;reduce_threshold&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;15&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;reduce_with_ai&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tools&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;{}&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;consumption&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;allowed_users_dashboard&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;budgets&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;prices_config_map&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;strategy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;openid&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: additional_request_params is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_request_params&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;openIdReqParam&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;openIdReqParamValue&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: allowed_domains is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;allowed_domains&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;allowed.domain&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;api_proxy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;api_proxy_ca_data&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;api_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;id_token&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;authentication_timeout&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;300&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;authorization_endpoint&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;disable_rbac&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;http_proxy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;https_proxy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify_tls&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;issuer_uri&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;post_logout_redirect_uri&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;openid&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;profile&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;email&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username_claim&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;sub&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;discovery_override&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;authorization_endpoint&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;end_session_endpoint&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;jwks_uri&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_endpoint&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;userinfo_endpoint&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;openshift&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;impersonation&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;allowed_groups&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;allowed_users&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;#redirect_uris:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;#token_inactivity_timeout:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;#token_max_age: &lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;clustering&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;autodetect_secrets&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali.io/multiCluster=true&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;clusters&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ignore_home_cluster&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kiali_urls&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_dashboards is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_dashboards&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;envoy&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;deployment&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_pod_containers_yaml&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_pod_init_containers_yaml&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: additional_service_yaml is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_service_yaml&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;externalName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali.example.com&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;affinity&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: node is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;node&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;nodeSelectorTerms&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;kubernetes.io/e2e-az-name&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;In&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#000"&gt;e2e-az1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#000"&gt;e2e-az2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: pod is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pod&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;labelSelector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;security&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;In&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#000"&gt;S1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;topologyKey&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: pod_anti is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pod_anti&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;preferredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;weight&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;100&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;podAffinityTerm&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;labelSelector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;security&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;In&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#000"&gt;S2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;topologyKey&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cluster_wide_access&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: configmap_annotations is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;configmap_annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;strategy.spinnaker.io/versioned&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_envs is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_envs&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;HTTP_PROXY&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;value&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;http://my.proxy.com:1234&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;NO_PROXY&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;value&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;hostname.example.com&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_secrets is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_secrets&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;a-custom-secret&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mount&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;/a-custom-secret-path&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;optional&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;a-csi-secret&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mount&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;/a-csi-secret-path&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;csi&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;driver&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;secrets-store.csi.k8s.io&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;readOnly&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;volumeAttributes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;secretProviderClass&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;kiali-secretprovider&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: discovery_selectors is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;discovery_selectors&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;default&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchLabels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;region&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;north&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;organization&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;In&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;engineering&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;accounting&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchLabels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;region&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;south&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;app&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;DoesNotExist&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;domain&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;NotIn&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;production&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;overrides&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;myRemoteCluster&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchLabels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;region&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;world&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;organization&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;NotIn&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;marketing&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;matchLabels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;region&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;antarctica&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;matchExpressions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;app&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;DoesNotExist&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;domain&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;In&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;values&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;staging&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;dns&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: config is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;options&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;ndots&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;value&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: policy is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;policy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;ClusterFirst&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;extra_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;{}&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: host_aliases is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;host_aliases&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;ip&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;192.168.1.100&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;hostnames&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;foo.local&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;bar.local&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;hpa&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;api_version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: spec is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;maxReplicas&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;minReplicas&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Resource&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;resource&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;cpu&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;target&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Utilization&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;averageUtilization&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;50&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;image_digest&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;image_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;image_pull_policy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;IfNotPresent&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: image_pull_secrets is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;image_pull_secrets&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;image.pull.secret&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;image_version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ingress&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: additional_labels is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;additional_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ingressAdditionalLabel&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;ingressAdditionalLabelValue&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;class_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;nginx&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: enabled is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: override_yaml is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;override_yaml&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metadata&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;nginx.ingress.kubernetes.io/secure-backends&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;nginx.ingress.kubernetes.io/backend-protocol&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;HTTPS&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;rules&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;http&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;paths&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;path&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;/kiali&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pathType&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Prefix&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;backend&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;number&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;20001&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;instance_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;logger&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;log_level&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;info&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;log_format&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;sampler_rate&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;time_field_format&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;2006-01-02T15:04:05Z07:00&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio-system&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;network_policy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: node_selector is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;node_selector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;nodeSelector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;nodeSelectorValue&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: pod_annotations is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pod_annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;proxy.istio.io/config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#39;{ &amp;#34;holdApplicationUntilProxyStarts&amp;#34;: true }&amp;#39;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pod_disruption_budget&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;api_version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: spec is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;minAvailable&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: pod_labels is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;pod_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;sidecar.istio.io/inject&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;priority_class_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;probes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;liveness&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;initial_delay_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;period_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;30&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;readiness&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;initial_delay_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;period_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;30&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;startup&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;failure_threshold&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;6&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;initial_delay_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;30&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;period_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;remote_cluster_resources_only&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;replicas&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: resources is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;resources&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;requests&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cpu&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;10m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;memory&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;64Mi&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;limits&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;memory&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1Gi&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;secret_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;security_context&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;{}&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: service_annotations is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service_annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;svcAnnotation&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;svcAnnotationValue&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: service_labels is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;svcLabel&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;svcLabelValue&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: service_type is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service_type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;NodePort&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;strategy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;{}&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: tolerations is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tolerations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;example-key&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;operator&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Exists&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;effect&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;NoSchedule&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;topology_spread_constraints&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version_label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;view_only_mode&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: extensions is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;extensions&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;skupper&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;external_services&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_dashboards&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;discovery_auto_threshold&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;discovery_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace_label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;prometheus&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;oauth2&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audience&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth_style&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_secret&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;password&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Valid values: none, basic, bearer, oauth2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_kiali_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_duration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;7&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_expiration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;300&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_headers&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;customHeader1&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_check_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;query_scope&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mesh_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cluster&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;thanos_proxy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;retention_period&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;7d&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scrape_interval&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;30s&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;grafana&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;oauth2&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audience&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth_style&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_secret&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;password&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Valid values: none, basic, bearer, oauth2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_kiali_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;dashboards&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Service Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;variables&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-service&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Workload Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;variables&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;workload&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-workload&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Mesh Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Control Plane Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Performance Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Wasm Extension Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource_uid&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;external_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_check_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;internal_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;http://grafana.istio-system:3000&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;component_status&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;components&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;gateway_api_classes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;gateway_api_classes_label_selector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_api_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_identity_domain&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istiod_polling_interval_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;20&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;validation_change_detection_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;validation_reconcile_interval&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;perses&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;oauth2&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audience&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth_style&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_secret&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;password&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Valid values: none, basic, bearer, oauth2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_kiali_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;dashboards&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Service Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;variables&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;service&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-service&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Workload Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;variables&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;workload&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-workload&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Mesh Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Control Plane Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Performance Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Wasm Extension Dashboard&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;external_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_check_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;internal_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;project&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;url_format&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;prometheus&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;oauth2&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audience&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth_style&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_secret&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;password&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Valid values: none, basic, bearer, oauth2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_kiali_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_duration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;7&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_expiration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;300&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_headers&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;customHeader1&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_check_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;query_scope&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mesh_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cluster&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;thanos_proxy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;retention_period&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;7d&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scrape_interval&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;30s&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tracing&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;insecure_skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;oauth2&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audience&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;auth_style&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;client_secret&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;scopes&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;password&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Valid values: none, basic, bearer, oauth2&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_kiali_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;username&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_headers&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;customHeader1&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;disable_version_check&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;external_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;grpc_port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;9095&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_check_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;internal_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;is_core&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace_selector&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;provider&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;jaeger&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;query_scope&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mesh_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cluster&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;query_timeout&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tempo_config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_capacity&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;200&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;datasource_uid&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;org_id&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tenant&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;url_format&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;grafana&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_grpc&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;use_waypoint_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;whitelist_istio_system&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;jaeger-query&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;,&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio-ingressgateway&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;compute&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;duration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;5m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;refresh_interval&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;3m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;timeout&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;10m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: rate is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;rate&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kind&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tolerance&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;protocol&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;direction&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;code&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;[1234]00&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;degraded&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;failure&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;identity&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: cert_file is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cert_file&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: private_key_file is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;private_key_file&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;app_label_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version_label_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kiali_feature_flags&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;authz&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;require_namespace_get&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;clustering&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enable_exec_provider&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: custom_workload_types is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;custom_workload_types&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;group&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;argoproj.io&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;v1alpha1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kind&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Rollout&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;disabled_features&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_annotation_action&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_injection_action&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;istio_upgrade_action&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ui_defaults&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;graph&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;find_options&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Find: slow edges (&amp;gt; 1s)&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;rt &amp;gt; 1000&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Find: unhealthy nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;! healthy&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Find: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;hide_options&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Hide: healthy nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;healthy&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Hide: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;settings&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;animation&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;point&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;traffic&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ambient&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;grpc&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;http&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tcp&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;sent&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;i18n&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;language&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;list&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;include_health&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;include_istio_resources&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;include_validations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;show_include_toggles&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;mesh&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;find_options&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Find: unhealthy nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;! healthy&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;hide_options&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Hide: healthy nodes&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expression&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;healthy&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: metrics_inbound is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics_inbound&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;aggregations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Network&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;topology_istio_io_network&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;single_selection&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Revision&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio_io_rev&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;single_selection&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: metrics_outbound is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics_outbound&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;aggregations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Network&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;topology_istio_io_network&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;single_selection&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#204a87;font-weight:bold"&gt;display_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;Istio Revision&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;label&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio_io_rev&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;single_selection&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics_per_refresh&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: namespaces is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespaces&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;istio-system&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;refresh_interval&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tracing&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;limit&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;100&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;validations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ignore&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;KIA1301&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;skip_wildcard_gateway_hosts&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kubernetes_config&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;burst&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;200&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_duration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;300&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cache_token_namespace_duration&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;excluded_workloads&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;CronJob&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;DeploymentConfig&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;Job&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;ReplicationController&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;qps&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;175&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;login_token&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;expiration_seconds&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;86400&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;signing_key&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;server&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;address&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;audit_log&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;cors_allow_all&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;gzip_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: node_port is undefined&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;node_port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;32475&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;observability&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metrics&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;health_status&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;max_consecutive_na&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;3&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;9090&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tracing&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;collector_type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;otel&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;collector_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;jaeger-collector.istio-system:4318&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;otel&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ca_name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;protocol&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;skip_verify&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;tls_enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;sampling_rate&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;0.5&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;20001&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;profiler&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;enabled&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;require_auth&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;web_fqdn&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;web_history_mode&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;browser&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;web_port&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;web_root&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;web_schema&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;write_timeout&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;60s&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="validating-your-kiali-cr"&gt;Validating your Kiali CR&lt;/h3&gt;&#10;&lt;p&gt;The Kiali CR has a CRD Schema so it will be validated when you create or update it in your cluster.&lt;/p&gt;&#10;&lt;h3 id="property-details"&gt;Properties&lt;/h3&gt;&#10;&lt;div class="property depth-0"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec"&gt;.spec&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;This is the CRD for the resources called Kiali CRs. The Kiali Operator will watch for resources of this type and when it detects a Kiali CR has been added, deleted, or modified, it will install, uninstall, and update the associated Kiali Server installation. The settings here will configure the Kiali Server as well as the Kiali Operator. All of these settings will be stored in the Kiali ConfigMap. Do not modify the ConfigMap; it will be managed by the Kiali Operator. Only modify the Kiali CR when you want to change a configuration setting.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.additional_display_details"&gt;.spec.additional_display_details&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of additional details that Kiali will look for in annotations. When found on any workload or service, Kiali will display the additional details in the respective workload or service details page. This is typically used to inject some CI metadata or documentation links into Kiali views. For example, by default, Kiali will recognize these annotations on a service or workload (e.g. a Deployment, StatefulSet, etc.):&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; annotations:&#10; kiali.io/api-spec: http://list/to/my/api/doc&#10; kiali.io/api-type: rest&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Note that if you change this setting for your own custom annotations, keep in mind that it would override the current default. So you would have to add the default setting as shown in the example CR if you want to preserve the default links.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.additional_display_details[*]"&gt;.spec.additional_display_details[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.additional_display_details[*].annotation"&gt;.spec.additional_display_details[*].annotation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the annotation whose value is a URL to additional documentation useful to the user.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.additional_display_details[*].icon_annotation"&gt;.spec.additional_display_details[*].icon_annotation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the annotation whose value is used to determine what icon to display. The annotation name itself can be anything, but note that the value of that annotation must be one of: &lt;code&gt;rest&lt;/code&gt;, &lt;code&gt;grpc&lt;/code&gt;, and &lt;code&gt;graphql&lt;/code&gt; - any other value is ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.additional_display_details[*].title"&gt;.spec.additional_display_details[*].title&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The title of the link that Kiali will display. The link will go to the URL specified in the value of the configured &lt;code&gt;annotation&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai"&gt;.spec.ai&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for the AI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat"&gt;.spec.ai.chat&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for the ChatAI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.allowed_users"&gt;.spec.ai.chat.allowed_users&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of users that are allowed to use the ChatAI feature. If this list is empty, all users have access. If populated, only the specified users can see and interact with the Chatbot.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.allowed_users[*]"&gt;.spec.ai.chat.allowed_users[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.default_provider"&gt;.spec.ai.chat.default_provider&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The default provider to use for the ChatAI feature. This is the provider that will be used if no provider is specified in the request.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.enabled"&gt;.spec.ai.chat.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.max_tool_iterations"&gt;.spec.ai.chat.max_tool_iterations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Maximum number of tool-call iterations (LLM call + tool execution round) allowed per request before the loop is force-aborted. Must be between 1 and 20.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers"&gt;.spec.ai.chat.providers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of providers that can be used for the ChatAI feature. This is the list of providers that will be available to the user to choose from.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*]"&gt;.spec.ai.chat.providers[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].config"&gt;.spec.ai.chat.providers[*].config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The provider configuration variant. Valid values depend on &lt;code&gt;type&lt;/code&gt;: &lt;code&gt;anthropic&lt;/code&gt; requires &lt;code&gt;default&lt;/code&gt;; &lt;code&gt;google&lt;/code&gt; requires &lt;code&gt;gemini&lt;/code&gt;; &lt;code&gt;openai&lt;/code&gt; supports &lt;code&gt;default&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, or &lt;code&gt;azure&lt;/code&gt;. Default value is &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].default_model"&gt;.spec.ai.chat.providers[*].default_model&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The default model of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].description"&gt;.spec.ai.chat.providers[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The description of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].enabled"&gt;.spec.ai.chat.providers[*].enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].endpoint"&gt;.spec.ai.chat.providers[*].endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The endpoint of the provider. This is only used if a model has no endpoint specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].insecure_skip_verify"&gt;.spec.ai.chat.providers[*].insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts the AI provider over https. When false (the default), the provider&amp;rsquo;s TLS certificate is validated against the Kiali CA bundle.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].key"&gt;.spec.ai.chat.providers[*].key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The key of the provider. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models"&gt;.spec.ai.chat.providers[*].models&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of models that can be used for the ChatAI feature. This is the list of models that will be available to the user to choose from.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*]"&gt;.spec.ai.chat.providers[*].models[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].description"&gt;.spec.ai.chat.providers[*].models[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The description of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].enabled"&gt;.spec.ai.chat.providers[*].models[*].enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].endpoint"&gt;.spec.ai.chat.providers[*].models[*].endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The endpoint of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].key"&gt;.spec.ai.chat.providers[*].models[*].key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The key of the model. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].model"&gt;.spec.ai.chat.providers[*].models[*].model&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The model of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].models[*].name"&gt;.spec.ai.chat.providers[*].models[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].name"&gt;.spec.ai.chat.providers[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].tools"&gt;.spec.ai.chat.providers[*].tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Optional provider-specific filter for the ChatAI toolset. Applied after the global &lt;code&gt;ai.chat.tools&lt;/code&gt; filter. It can further restrict tools for this provider, but it cannot re-enable tools that were already filtered out globally or by feature availability.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].tools.disabled_tools"&gt;.spec.ai.chat.providers[*].tools.disabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A denylist of tool names to hide from this ChatAI provider. Applied after &lt;code&gt;enabled_tools&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].tools.disabled_tools[*]"&gt;.spec.ai.chat.providers[*].tools.disabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].tools.enabled_tools"&gt;.spec.ai.chat.providers[*].tools.enabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;An allowlist of tool names to expose to this ChatAI provider. If set, only the listed tool names remain available for this provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].tools.enabled_tools[*]"&gt;.spec.ai.chat.providers[*].tools.enabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.providers[*].type"&gt;.spec.ai.chat.providers[*].type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of the AI models provider. Available values are &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, and &lt;code&gt;google&lt;/code&gt;. Default value is &lt;code&gt;openai&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config"&gt;.spec.ai.chat.store_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config.enabled"&gt;.spec.ai.chat.store_config.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config.inactivity_timeout"&gt;.spec.ai.chat.store_config.inactivity_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Idle time allowed before the conversation is deleted due to inactivity.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config.max_cache_memory_mb"&gt;.spec.ai.chat.store_config.max_cache_memory_mb&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The maximum cache memory for the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config.reduce_threshold"&gt;.spec.ai.chat.store_config.reduce_threshold&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The threshold for the ChatAI store reduction with AI. This is the number of messages in a conversation before the conversation is reduced.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.store_config.reduce_with_ai"&gt;.spec.ai.chat.store_config.reduce_with_ai&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI store reduction with AI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.tools"&gt;.spec.ai.chat.tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Optional global filter for the ChatAI toolset. &lt;code&gt;enabled_tools&lt;/code&gt; acts as an allowlist. &lt;code&gt;disabled_tools&lt;/code&gt; acts as a denylist and is applied afterwards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.tools.disabled_tools"&gt;.spec.ai.chat.tools.disabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A denylist of tool names to hide from all ChatAI providers. Applied after &lt;code&gt;enabled_tools&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.tools.disabled_tools[*]"&gt;.spec.ai.chat.tools.disabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.tools.enabled_tools"&gt;.spec.ai.chat.tools.enabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;An allowlist of tool names to expose to ChatAI providers. If set, only the listed tool names remain available.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.chat.tools.enabled_tools[*]"&gt;.spec.ai.chat.tools.enabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption"&gt;.spec.ai.consumption&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for the AI consumption/cost-tracking subsystem. Requires &lt;code&gt;ai.metrics&lt;/code&gt; to be enabled. Kiali ships with a built-in default token pricing catalog; set &lt;code&gt;prices_config_map&lt;/code&gt; to load a replacement catalog from a user-managed ConfigMap.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.allowed_users_dashboard"&gt;.spec.ai.consumption.allowed_users_dashboard&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of users that are allowed to view the AI consumption dashboard. If this list is empty, all users have access.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.allowed_users_dashboard[*]"&gt;.spec.ai.consumption.allowed_users_dashboard[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets"&gt;.spec.ai.consumption.budgets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Budget limits and model/provider restrictions applied per user. If empty, no budget restrictions are applied.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*]"&gt;.spec.ai.consumption.budgets[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].allowed_models"&gt;.spec.ai.consumption.budgets[*].allowed_models&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Model names or IDs this budget allows. Supports &lt;code&gt;*&lt;/code&gt; wildcards. If empty, all models of the allowed providers may be used.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].allowed_models[*]"&gt;.spec.ai.consumption.budgets[*].allowed_models[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].allowed_providers"&gt;.spec.ai.consumption.budgets[*].allowed_providers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Provider types this budget allows (&lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, &lt;code&gt;google&lt;/code&gt;, &lt;code&gt;lightspeed&lt;/code&gt;). If empty, all configured providers may be used.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].allowed_providers[*]"&gt;.spec.ai.consumption.budgets[*].allowed_providers[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].interval"&gt;.spec.ai.consumption.budgets[*].interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Budget reset interval. Valid values are &lt;code&gt;weekly&lt;/code&gt; and &lt;code&gt;monthly&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].max_cost"&gt;.spec.ai.consumption.budgets[*].max_cost&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(number)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Maximum estimated cost allowed in the budget interval, in the pricing currency (typically USD).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].max_tokens"&gt;.spec.ai.consumption.budgets[*].max_tokens&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(number)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Maximum number of tokens allowed in the budget interval, expressed in millions of tokens.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].usernames"&gt;.spec.ai.consumption.budgets[*].usernames&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Users this budget applies to. Use &lt;code&gt;*&lt;/code&gt; as a catch-all. Required and must not be empty.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.budgets[*].usernames[*]"&gt;.spec.ai.consumption.budgets[*].usernames[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.consumption.prices_config_map"&gt;.spec.ai.consumption.prices_config_map&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Name of a ConfigMap in the Kiali deployment namespace that holds a custom token pricing catalog. The ConfigMap is user-managed (the operator never creates or writes it). The operator mounts it read-only at &lt;code&gt;/kiali-ai-pricing&lt;/code&gt; with &lt;code&gt;optional: true&lt;/code&gt;. If omitted or empty, or if the file cannot be read, Kiali uses its built-in catalog. For the ConfigMap format and how to install it, see the documentation at &lt;a href="https://kiali.io/docs/ai/chatbot/kiali-chatbot-prices/"&gt;https://kiali.io/docs/ai/chatbot/kiali-chatbot-prices/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.enabled"&gt;.spec.ai.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the AI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.ai.metrics"&gt;.spec.ai.metrics&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable ChatAI usage metrics. Required for consumption tracking and the AI dashboard.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api"&gt;.spec.api&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: These settings control how the Kiali API should be accessed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces"&gt;.spec.api.namespaces&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: Settings for the API namespaces feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.exclude"&gt;.spec.api.namespaces.exclude&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespace names that will be excluded from Kiali API.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.exclude[*]"&gt;.spec.api.namespaces.exclude[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.include"&gt;.spec.api.namespaces.include&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespace names that will be included in Kiali API.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.include[*]"&gt;.spec.api.namespaces.include[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.label_selector_exclude"&gt;.spec.api.namespaces.label_selector_exclude&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A Kubernetes label selector expression that will be used to exclude namespaces.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.api.namespaces.label_selector_include"&gt;.spec.api.namespaces.label_selector_include&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A Kubernetes label selector expression that will be used to include namespaces.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth"&gt;.spec.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid"&gt;.spec.auth.openid&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;To learn more about these settings and how to configure the OpenId authentication strategy, read the documentation at &lt;a href="https://kiali.io/docs/configuration/authentication/openid/"&gt;https://kiali.io/docs/configuration/authentication/openid/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.additional_request_params"&gt;.spec.auth.openid.additional_request_params&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.allowed_domains"&gt;.spec.auth.openid.allowed_domains&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.allowed_domains[*]"&gt;.spec.auth.openid.allowed_domains[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.api_proxy"&gt;.spec.auth.openid.api_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.api_proxy_ca_data"&gt;.spec.auth.openid.api_proxy_ca_data&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.api_token"&gt;.spec.auth.openid.api_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.authentication_timeout"&gt;.spec.auth.openid.authentication_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.authorization_endpoint"&gt;.spec.auth.openid.authorization_endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.21: Use auth.openid.discovery_override.authorization_endpoint instead. The URL of the provider&amp;rsquo;s authorization endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.client_id"&gt;.spec.auth.openid.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.disable_rbac"&gt;.spec.auth.openid.disable_rbac&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override"&gt;.spec.auth.openid.discovery_override&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Optional configuration to override OpenID Connect auto-discovery. Use when the IdP restricts access to /.well-known/openid-configuration endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override.authorization_endpoint"&gt;.spec.auth.openid.discovery_override.authorization_endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the provider&amp;rsquo;s authorization endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override.end_session_endpoint"&gt;.spec.auth.openid.discovery_override.end_session_endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the provider&amp;rsquo;s RP-Initiated Logout endpoint. If set, logout will terminate both the local Kiali session and the IdP session. If not set, logout will only clear the local Kiali session.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override.jwks_uri"&gt;.spec.auth.openid.discovery_override.jwks_uri&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the provider&amp;rsquo;s JWK Set document.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override.token_endpoint"&gt;.spec.auth.openid.discovery_override.token_endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the provider&amp;rsquo;s token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.discovery_override.userinfo_endpoint"&gt;.spec.auth.openid.discovery_override.userinfo_endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the provider&amp;rsquo;s UserInfo endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.http_proxy"&gt;.spec.auth.openid.http_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.https_proxy"&gt;.spec.auth.openid.https_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.insecure_skip_verify_tls"&gt;.spec.auth.openid.insecure_skip_verify_tls&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.issuer_uri"&gt;.spec.auth.openid.issuer_uri&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.post_logout_redirect_uri"&gt;.spec.auth.openid.post_logout_redirect_uri&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL to redirect the browser to after the IdP terminates the session during RP-Initiated Logout. Must be registered in the IdP&amp;rsquo;s client configuration. If not set, defaults to the Kiali root URL.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.scopes"&gt;.spec.auth.openid.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.scopes[*]"&gt;.spec.auth.openid.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openid.username_claim"&gt;.spec.auth.openid.username_claim&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift"&gt;.spec.auth.openshift&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;To learn more about these settings and how to configure the OpenShift authentication strategy, read the documentation at &lt;a href="https://kiali.io/docs/configuration/authentication/openshift/"&gt;https://kiali.io/docs/configuration/authentication/openshift/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.auth_timeout"&gt;.spec.auth.openshift.auth_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The amount of time in seconds Kiali will wait for a response from the OpenShift API when requesting authentication information.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.client_id_prefix"&gt;.spec.auth.openshift.client_id_prefix&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A prefix that will be applied to the OpenShift OAuth client identifier.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation"&gt;.spec.auth.openshift.impersonation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for Kubernetes API impersonation. When enabled, users authenticate once to the home cluster and Kiali uses its service account to impersonate the user on all clusters (including home).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation.allowed_groups"&gt;.spec.auth.openshift.impersonation.allowed_groups&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When set, only these groups will be included in impersonation headers (in addition to system:authenticated and system:authenticated:oauth which are always included). If empty, all of the user&amp;rsquo;s groups are impersonated. This also restricts the Kiali SA&amp;rsquo;s ClusterRole via resourceNames. Must not contain system: prefixed groups. For full RBAC defense-in-depth, configure both allowed_users and allowed_groups.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation.allowed_groups[*]"&gt;.spec.auth.openshift.impersonation.allowed_groups[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation.allowed_users"&gt;.spec.auth.openshift.impersonation.allowed_users&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When set, only users in this list are permitted to use Kiali with impersonation. Users not in this list will be denied access (HTTP 403). This also restricts the Kiali SA&amp;rsquo;s ClusterRole via resourceNames, limiting which identities the SA can impersonate even at the Kubernetes RBAC level. Must not contain system: prefixed identities. For full RBAC defense-in-depth, configure both allowed_users and allowed_groups.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation.allowed_users[*]"&gt;.spec.auth.openshift.impersonation.allowed_users[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.impersonation.enabled"&gt;.spec.auth.openshift.impersonation.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali will use Kubernetes API impersonation for accessing all clusters instead of requiring per-cluster OAuth login. The user logs in once to the home cluster, and Kiali uses its service account credentials with impersonation headers carrying the user&amp;rsquo;s identity. Requires the Kiali service account on each cluster to have ClusterRole permissions to impersonate users and groups. SECURITY NOTE: Enabling this grants the Kiali service account the ability to impersonate any user. Protect the service account token accordingly.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.insecure_skip_verify_tls"&gt;.spec.auth.openshift.insecure_skip_verify_tls&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts OpenShift over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.redirect_uris"&gt;.spec.auth.openshift.redirect_uris&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom redirect URIs for the OpenShift OAuth client. These URIs specify where users will be redirected after successful authentication. If not specified, Kiali will automatically generate appropriate redirect URIs based on the Kiali server&amp;rsquo;s route. You normally do not have to set this unless you are creating remote cluster resources (see &lt;code&gt;deployment.remote_cluster_resources_only&lt;/code&gt;) with &lt;code&gt;auth.strategy&lt;/code&gt; set to &lt;code&gt;openshift&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.redirect_uris[*]"&gt;.spec.auth.openshift.redirect_uris[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.token_inactivity_timeout"&gt;.spec.auth.openshift.token_inactivity_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Sets the maximum time in seconds that can elapse between consecutive uses of an OAuth access token before it expires due to inactivity. This helps improve security by automatically expiring unused tokens. If set to 0, tokens will not expire due to inactivity. Note that OpenShift may enforce minimum values for this setting, and existing tokens are not affected by changes to this configuration.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.openshift.token_max_age"&gt;.spec.auth.openshift.token_max_age&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Sets the absolute maximum lifetime in seconds for OAuth access tokens, regardless of activity. After this time period, tokens will expire and users must re-authenticate. If set to 0, tokens will not have an absolute expiration time and will only expire due to inactivity (if token_inactivity_timeout is configured).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.auth.strategy"&gt;.spec.auth.strategy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines what authentication strategy to use when users log into Kiali.&#10;Options are &lt;code&gt;anonymous&lt;/code&gt;, &lt;code&gt;token&lt;/code&gt;, &lt;code&gt;openshift&lt;/code&gt;, &lt;code&gt;openid&lt;/code&gt;, or &lt;code&gt;header&lt;/code&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Choose &lt;code&gt;anonymous&lt;/code&gt; to allow full access to Kiali without requiring any credentials.&lt;/li&gt;&#10;&lt;li&gt;Choose &lt;code&gt;token&lt;/code&gt; to allow access to Kiali using service account tokens, which controls&#10;access based on RBAC roles assigned to the service account.&lt;/li&gt;&#10;&lt;li&gt;Choose &lt;code&gt;openshift&lt;/code&gt; to use the OpenShift OAuth login which controls access based on&#10;the individual&amp;rsquo;s RBAC roles in OpenShift. Not valid for non-OpenShift environments.&lt;/li&gt;&#10;&lt;li&gt;Choose &lt;code&gt;openid&lt;/code&gt; to enable OpenID Connect-based authentication. Your cluster is required to&#10;be configured to accept the tokens issued by your IdP. There are additional required&#10;configurations for this strategy. See below for the additional OpenID configuration section.&lt;/li&gt;&#10;&lt;li&gt;Choose &lt;code&gt;header&lt;/code&gt; when Kiali is running behind a reverse proxy that will inject an&#10;Authorization header and potentially impersonation headers.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;When empty, this value will default to &lt;code&gt;openshift&lt;/code&gt; on OpenShift and &lt;code&gt;token&lt;/code&gt; on other Kubernetes environments.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai"&gt;.spec.chat_ai&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.31: Configuration for the ChatAI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.default_provider"&gt;.spec.chat_ai.default_provider&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The default provider to use for the ChatAI feature. This is the provider that will be used if no provider is specified in the request.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.enabled"&gt;.spec.chat_ai.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI feature.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.max_tool_iterations"&gt;.spec.chat_ai.max_tool_iterations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Maximum number of tool-call iterations (LLM call + tool execution round) allowed per request before the loop is force-aborted. Must be between 1 and 20.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers"&gt;.spec.chat_ai.providers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of providers that can be used for the ChatAI feature. This is the list of providers that will be available to the user to choose from.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*]"&gt;.spec.chat_ai.providers[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].config"&gt;.spec.chat_ai.providers[*].config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The provider configuration variant. Valid values depend on &lt;code&gt;type&lt;/code&gt;: &lt;code&gt;anthropic&lt;/code&gt; requires &lt;code&gt;default&lt;/code&gt;; &lt;code&gt;google&lt;/code&gt; requires &lt;code&gt;gemini&lt;/code&gt;; &lt;code&gt;openai&lt;/code&gt; supports &lt;code&gt;default&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, or &lt;code&gt;azure&lt;/code&gt;. Default value is &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].default_model"&gt;.spec.chat_ai.providers[*].default_model&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The default model of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].description"&gt;.spec.chat_ai.providers[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The description of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].enabled"&gt;.spec.chat_ai.providers[*].enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].endpoint"&gt;.spec.chat_ai.providers[*].endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The endpoint of the provider. This is only used if a model has no endpoint specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].insecure_skip_verify"&gt;.spec.chat_ai.providers[*].insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts the AI provider over https. When false (the default), the provider&amp;rsquo;s TLS certificate is validated against the Kiali CA bundle.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].key"&gt;.spec.chat_ai.providers[*].key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The key of the provider. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models"&gt;.spec.chat_ai.providers[*].models&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of models that can be used for the ChatAI feature. This is the list of models that will be available to the user to choose from.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*]"&gt;.spec.chat_ai.providers[*].models[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].description"&gt;.spec.chat_ai.providers[*].models[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The description of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].enabled"&gt;.spec.chat_ai.providers[*].models[*].enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].endpoint"&gt;.spec.chat_ai.providers[*].models[*].endpoint&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The endpoint of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].key"&gt;.spec.chat_ai.providers[*].models[*].key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The key of the model. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].model"&gt;.spec.chat_ai.providers[*].models[*].model&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The model of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].models[*].name"&gt;.spec.chat_ai.providers[*].models[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the model.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].name"&gt;.spec.chat_ai.providers[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].tools"&gt;.spec.chat_ai.providers[*].tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Optional provider-specific filter for the ChatAI toolset. Applied after the global &lt;code&gt;chat_ai.tools&lt;/code&gt; filter. It can further restrict tools for this provider, but it cannot re-enable tools that were already filtered out globally or by feature availability.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].tools.disabled_tools"&gt;.spec.chat_ai.providers[*].tools.disabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A denylist of tool names to hide from this ChatAI provider. Applied after &lt;code&gt;enabled_tools&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].tools.disabled_tools[*]"&gt;.spec.chat_ai.providers[*].tools.disabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].tools.enabled_tools"&gt;.spec.chat_ai.providers[*].tools.enabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;An allowlist of tool names to expose to this ChatAI provider. If set, only the listed tool names remain available for this provider.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].tools.enabled_tools[*]"&gt;.spec.chat_ai.providers[*].tools.enabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.providers[*].type"&gt;.spec.chat_ai.providers[*].type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of the AI models provider. Available values are &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, and &lt;code&gt;google&lt;/code&gt;. Default value is &lt;code&gt;openai&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config"&gt;.spec.chat_ai.store_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config.enabled"&gt;.spec.chat_ai.store_config.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config.inactivity_timeout"&gt;.spec.chat_ai.store_config.inactivity_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Idle time allowed before the conversation is deleted due to inactivity.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config.max_cache_memory_mb"&gt;.spec.chat_ai.store_config.max_cache_memory_mb&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The maximum cache memory for the ChatAI store.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config.reduce_threshold"&gt;.spec.chat_ai.store_config.reduce_threshold&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The threshold for the ChatAI store reduction with AI. This is the number of messages in a conversation before the conversation is reduced.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.store_config.reduce_with_ai"&gt;.spec.chat_ai.store_config.reduce_with_ai&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable the ChatAI store reduction with AI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.tools"&gt;.spec.chat_ai.tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Optional global filter for the ChatAI toolset. &lt;code&gt;enabled_tools&lt;/code&gt; acts as an allowlist. &lt;code&gt;disabled_tools&lt;/code&gt; acts as a denylist and is applied afterwards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.tools.disabled_tools"&gt;.spec.chat_ai.tools.disabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A denylist of tool names to hide from all ChatAI providers. Applied after &lt;code&gt;enabled_tools&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.tools.disabled_tools[*]"&gt;.spec.chat_ai.tools.disabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.tools.enabled_tools"&gt;.spec.chat_ai.tools.enabled_tools&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;An allowlist of tool names to expose to ChatAI providers. If set, only the listed tool names remain available.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.chat_ai.tools.enabled_tools[*]"&gt;.spec.chat_ai.tools.enabled_tools[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering"&gt;.spec.clustering&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Multi-cluster related features.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.autodetect_secrets"&gt;.spec.clustering.autodetect_secrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings to allow cluster secrets to be auto-detected. Secrets must exist in the Kiali deployment namespace.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.autodetect_secrets.enabled"&gt;.spec.clustering.autodetect_secrets.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true then remote cluster secrets will be autodetected during the installation of the Kiali Server Deployment. Any remote cluster secrets found in the Kiali deployment namespace will be mounted to the Kiali Server&amp;rsquo;s file system. If false, you can still manually specify the remote cluster secret information in the &amp;lsquo;clusters&amp;rsquo; setting if you wish to utilize multicluster features.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.autodetect_secrets.label"&gt;.spec.clustering.autodetect_secrets.label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name and value of a label that exists on all remote cluster secrets.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.clusters"&gt;.spec.clustering.clusters&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of clusters that the Kiali Server can access. You need to specify the remote clusters here if &amp;lsquo;autodetect_secrets.enabled&amp;rsquo; is false.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.clusters[*]"&gt;.spec.clustering.clusters[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.clusters[*].name"&gt;.spec.clustering.clusters[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.clusters[*].secret_name"&gt;.spec.clustering.clusters[*].secret_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the secret that contains the credentials necessary to connect to the remote cluster. This secret must exist in the Kiali deployment namespace. If a secret name is not provided then it&amp;rsquo;s assumed that the cluster is inaccessible.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.enable_exec_provider"&gt;.spec.clustering.enable_exec_provider&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to enable exec provider for clustering authentication.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.ignore_home_cluster"&gt;.spec.clustering.ignore_home_cluster&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set to true for an external Kiali deployment, or if Kiali should not try to discover Istio on the home cluster. When set to &lt;code&gt;true&lt;/code&gt;, it is required to set &lt;code&gt;kubernetes_config.cluster_name&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls"&gt;.spec.clustering.kiali_urls&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A map between cluster name, instance name and namespace to a Kiali URL. Will be used showing the Mesh page&amp;rsquo;s Kiali URLs. The Kiali service&amp;rsquo;s &amp;lsquo;kiali.io/external-url&amp;rsquo; annotation will be overridden when this property is set.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls[*]"&gt;.spec.clustering.kiali_urls[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls[*].cluster_name"&gt;.spec.clustering.kiali_urls[*].cluster_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls[*].instance_name"&gt;.spec.clustering.kiali_urls[*].instance_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The instance name of this Kiali installation. This should be the value used in &lt;code&gt;deployment.instance_name&lt;/code&gt; for Kiali resource name.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls[*].namespace"&gt;.spec.clustering.kiali_urls[*].namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace into which Kiali is installed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.clustering.kiali_urls[*].url"&gt;.spec.clustering.kiali_urls[*].url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of Kiali in the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.custom_dashboards"&gt;.spec.custom_dashboards&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of user-defined custom monitoring dashboards that you can use to generate metrics charts&#10;for your applications. The server has some built-in dashboards; if you define a custom dashboard here&#10;with the same name as a built-in dashboard, your custom dashboard takes precedence and will overwrite&#10;the built-in dashboard. You can disable one or more of the built-in dashboards by simply defining an&#10;empty dashboard.&lt;/p&gt;&#10;&lt;p&gt;An example of an additional user-defined dashboard,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; custom_dashboards:&#10; - name: myapp&#10; title: My App Metrics&#10; items:&#10; - chart:&#10; name: &amp;quot;Thread Count&amp;quot;&#10; spans: 4&#10; metricName: &amp;quot;thread-count&amp;quot;&#10; dataType: &amp;quot;raw&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;An example of disabling a built-in dashboard (in this case, disabling the Envoy dashboard),&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; custom_dashboards:&#10; - name: envoy&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To learn more about custom monitoring dashboards, see the documentation at &lt;a href="https://kiali.io/docs/configuration/custom-dashboard/"&gt;https://kiali.io/docs/configuration/custom-dashboard/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.custom_dashboards[*]"&gt;.spec.custom_dashboards[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment"&gt;.spec.deployment&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.accessible_namespaces"&gt;.spec.deployment.accessible_namespaces&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespaces Kiali is allowed to access. This replaces discovery selectors.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.accessible_namespaces[*]"&gt;.spec.deployment.accessible_namespaces[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.additional_pod_containers_yaml"&gt;.spec.deployment.additional_pod_containers_yaml&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional containers to add to the list of pod containers. Use this to add container(s) to the Kiali pod. SECURITY: By default, the operator will forcibly apply a restrictive security context to all containers (allowPrivilegeEscalation: false, privileged: false, readOnlyRootFilesystem: true, runAsNonRoot: true, seccompProfile: RuntimeDefault, capabilities dropped). However, if the operator&amp;rsquo;s ALLOW_SECURITY_CONTEXT_OVERRIDE environment variable is set to &amp;lsquo;true&amp;rsquo;, containers can define their own security contexts which will be preserved. Secret-backed volumes are automatically forced to read-only regardless of the security context override setting. Use with care since containers may cause the Kiali container itself to operate incorrectly. It is up to the user who added the additional containers to ensure it works properly inside the Kiali pod; Kiali makes no guarantee additional containers will work.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.additional_pod_containers_yaml[*]"&gt;.spec.deployment.additional_pod_containers_yaml[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.additional_pod_init_containers_yaml"&gt;.spec.deployment.additional_pod_init_containers_yaml&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional initContainers to add to the list of pod initContainers. Use this to add initContainer(s) to the Kiali pod. SECURITY: By default, the operator will forcibly apply a restrictive security context to all initContainers (allowPrivilegeEscalation: false, privileged: false, readOnlyRootFilesystem: true, runAsNonRoot: true, seccompProfile: RuntimeDefault, capabilities dropped). However, if the operator&amp;rsquo;s ALLOW_SECURITY_CONTEXT_OVERRIDE environment variable is set to &amp;lsquo;true&amp;rsquo;, initContainers can define their own security contexts which will be preserved. Secret-backed volumes are automatically forced to read-only regardless of the security context override setting. Use with care since initContainers may cause the Kiali container itself to operate incorrectly. It is up to the user who added the additional initContainers to ensure it works properly inside the Kiali pod; Kiali makes no guarantee additional initContainers will work.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.additional_pod_init_containers_yaml[*]"&gt;.spec.deployment.additional_pod_init_containers_yaml[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.additional_service_yaml"&gt;.spec.deployment.additional_service_yaml&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional custom yaml to add to the service definition. This is used mainly to customize the service type. For example, if the &lt;code&gt;deployment.service_type&lt;/code&gt; is set to &amp;lsquo;LoadBalancer&amp;rsquo; and you want to set the loadBalancerIP, you can do so here with: &lt;code&gt;additional_service_yaml: { 'loadBalancerIP': '78.11.24.19' }&lt;/code&gt;. Another example would be if the &lt;code&gt;deployment.service_type&lt;/code&gt; is set to &amp;lsquo;ExternalName&amp;rsquo; you will need to configure the name via: &lt;code&gt;additional_service_yaml: { 'externalName': 'my.kiali.example.com' }&lt;/code&gt;. A final example would be if external IPs need to be set: &lt;code&gt;additional_service_yaml: { 'externalIPs': ['80.11.12.10'] }&lt;/code&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.affinity"&gt;.spec.deployment.affinity&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Affinity definitions that are to be used to define the nodes where the Kiali pod should be constrained. See the Kubernetes documentation on Assigning Pods to Nodes for the proper syntax for these three different affinity types.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.affinity.node"&gt;.spec.deployment.affinity.node&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.affinity.pod"&gt;.spec.deployment.affinity.pod&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.affinity.pod_anti"&gt;.spec.deployment.affinity.pod_anti&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.cluster_wide_access"&gt;.spec.deployment.cluster_wide_access&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines if the Kiali server will be granted cluster-wide permissions to see all namespaces. When true, this provides more efficient caching within the Kiali server. It must be &lt;code&gt;true&lt;/code&gt; if &lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt; is left unset. To limit the namespaces for which Kiali has permissions, set to &lt;code&gt;false&lt;/code&gt; and define the desired selectors in &lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.configmap_annotations"&gt;.spec.deployment.configmap_annotations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom annotations to be created on the Kiali ConfigMap.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_envs"&gt;.spec.deployment.custom_envs&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines additional environment variables to be set in the Kiali server pod. This is typically used for (but not limited to) setting proxy environment variables such as HTTP_PROXY, HTTPS_PROXY, and/or NO_PROXY.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_envs[*]"&gt;.spec.deployment.custom_envs[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_envs[*].name"&gt;.spec.deployment.custom_envs[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the custom environment variable.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_envs[*].value"&gt;.spec.deployment.custom_envs[*].value&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The value of the custom environment variable.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets"&gt;.spec.deployment.custom_secrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines additional secrets that are to be mounted in the Kiali pod.&lt;/p&gt;&#10;&lt;p&gt;These are useful to contain client certificates that are used by Kiali to authenticate to third party systems&#10;using mTLS (for example, see &lt;code&gt;external_services.tracing.auth.cert_file&lt;/code&gt; and &lt;code&gt;external_services.tracing.auth.key_file&lt;/code&gt;).&lt;/p&gt;&#10;&lt;p&gt;These secrets must be created by an external mechanism. Kiali will not generate these secrets; it&#10;is assumed these secrets are externally managed. You can define 0, 1, or more secrets.&#10;An example configuration is,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; custom_secrets:&#10; - name: mysecret&#10; mount: /mysecret-path&#10; - name: my-other-secret&#10; mount: /my-other-secret-location&#10; optional: true&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets[*]"&gt;.spec.deployment.custom_secrets[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets[*].csi"&gt;.spec.deployment.custom_secrets[*].csi&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines CSI-specific settings that allows a secret from an external CSI secret store to be injected in the pod via a volume mount. For details, see &lt;a href="https://secrets-store-csi-driver.sigs.k8s.io/"&gt;https://secrets-store-csi-driver.sigs.k8s.io/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets[*].mount"&gt;.spec.deployment.custom_secrets[*].mount&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The file path location where the secret content will be mounted. The custom secret cannot be mounted on a path that the operator will use to mount its secrets. Make sure you set your custom secret mount path to a unique, unused path. Paths such as &lt;code&gt;/kiali-configuration&lt;/code&gt;, &lt;code&gt;/kiali-cert&lt;/code&gt;, &lt;code&gt;/kiali-cabundle&lt;/code&gt;, &lt;code&gt;/kiali-secret&lt;/code&gt;, &lt;code&gt;/kiali-override-secrets&lt;/code&gt;, and &lt;code&gt;/kiali-remote-cluster-secrets&lt;/code&gt; should not be used as mount paths for custom secrets because the operator may want to use one of those paths.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets[*].name"&gt;.spec.deployment.custom_secrets[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the secret that is to be mounted to the Kiali pod&amp;rsquo;s file system. The name of the custom secret must not be the same name as one created by the operator. Names such as &lt;code&gt;kiali&lt;/code&gt;, &lt;code&gt;kiali-cert-secret&lt;/code&gt;, and &lt;code&gt;kiali-cabundle&lt;/code&gt; should not be used as a custom secret name because the operator may want to create one with one of those names.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.custom_secrets[*].optional"&gt;.spec.deployment.custom_secrets[*].optional&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Indicates if the secret may or may not exist at the time the Kiali pod starts. This is ignored if &lt;code&gt;csi&lt;/code&gt; is specified - CSI secrets must exist when specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors"&gt;.spec.deployment.discovery_selectors&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Discovery selectors used to determine which namespaces are accessible to Kiali and which namespaces are visible to Kiali users.&#10;You can define discovery selectors to match namespaces on the local cluster as well as remote clusters.&#10;The list of namespaces that a user can access is a subset of these namespaces, given that user&amp;rsquo;s RBAC permissions.&#10;These selectors will have similar semantics as defined by Istio ( &lt;a href="https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig"&gt;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&lt;/a&gt; )&#10;and the syntax of the equality-based and set-based label selectors are documented by Kubernetes here&#10;( &lt;a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements"&gt;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements&lt;/a&gt; )&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default"&gt;.spec.deployment.discovery_selectors.default&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;These are label selectors for the Kiali local cluster and for all remote clusters that do not have overrides.&#10;Namespaces that match these selectors are visible to Kiali users.&#10;When &lt;code&gt;cluster_wide_access=false&lt;/code&gt; these &lt;code&gt;default&lt;/code&gt; selectors are used to restrict which namespaces Kiali will have access to.&#10;If there are no default discovery selectors, then &lt;code&gt;cluster_wide_access&lt;/code&gt; should be &lt;code&gt;true&lt;/code&gt; in which case Kiali will have&#10;permissions to access all namespaces.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*]"&gt;.spec.deployment.discovery_selectors.default[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions[*]"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions[*].key"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions[*].operator"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].operator&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions[*].values"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-8"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchExpressions[*].values[*]"&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.default[*].matchLabels"&gt;.spec.deployment.discovery_selectors.default[*].matchLabels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.discovery_selectors.overrides"&gt;.spec.deployment.discovery_selectors.overrides&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If a remote cluster has different namespaces than the local cluster, these overrides provide a way for you to match those remote namespaces. Kiali will make these remote namespaces visible to users. The name of the overrides section is the name of the remote cluster. Note that the &lt;code&gt;default&lt;/code&gt; selectors are ignored when matching namespaces on a remote cluster if that remote cluster has overrides defined.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.dns"&gt;.spec.deployment.dns&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Kiali server pod&amp;rsquo;s DNS configuration. Kubernetes supports different DNS policies and configurations.&#10;For further details, consult the Kubernetes documentation - &lt;a href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/"&gt;https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.dns.config"&gt;.spec.deployment.dns.config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DNS configuration that is applied to the DNS policy. See the Kubernetes documentation for the different configuration settings that are supported.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.dns.policy"&gt;.spec.deployment.dns.policy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DNS policy. See the Kubernetes documentation for the different policies that are supported.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.extra_labels"&gt;.spec.deployment.extra_labels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Extra name/value pairs to be added to the labels of all resources created by the operator.&#10;These are added to the labels the operator creates by default. These will not overwrite&#10;labels that the operator creates itself. For example, if you set &amp;ldquo;app.kubernetes.io/name&amp;rdquo;&#10;as an extra label, it will be silently ignored because that is one of the labels the operator&#10;creates on all resources.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.host_aliases"&gt;.spec.deployment.host_aliases&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;This is content for the Kubernetes &amp;lsquo;hostAliases&amp;rsquo; setting for the Kiali server.&#10;This allows you to modify the Kiali server pod &amp;lsquo;/etc/hosts&amp;rsquo; file.&#10;A typical way to configure this setting is,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; host_aliases:&#10; - ip: 192.168.1.100&#10; hostnames:&#10; - &amp;quot;foo.local&amp;quot;&#10; - &amp;quot;bar.local&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;For details on the content of this setting, see &lt;a href="https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases"&gt;https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.host_aliases[*]"&gt;.spec.deployment.host_aliases[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.host_aliases[*].hostnames"&gt;.spec.deployment.host_aliases[*].hostnames&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.host_aliases[*].hostnames[*]"&gt;.spec.deployment.host_aliases[*].hostnames[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.host_aliases[*].ip"&gt;.spec.deployment.host_aliases[*].ip&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.hpa"&gt;.spec.deployment.hpa&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines what (if any) HorizontalPodAutoscaler should be created to autoscale the Kiali pod.&#10;A typical way to configure HPA for Kiali is,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; hpa:&#10; api_version: &amp;quot;autoscaling/v2&amp;quot;&#10; spec:&#10; maxReplicas: 2&#10; minReplicas: 1&#10; metrics:&#10; - type: Resource&#10; resource:&#10; name: cpu&#10; target:&#10; type: Utilization&#10; averageUtilization: 50&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.hpa.api_version"&gt;.spec.deployment.hpa.api_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A specific HPA API version that can be specified in case there is some HPA feature you want to use that is only supported in that specific version. If value is an empty string, an attempt will be made to determine a valid version.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.hpa.spec"&gt;.spec.deployment.hpa.spec&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The &lt;code&gt;spec&lt;/code&gt; specified here will be placed in the created HPA resource&amp;rsquo;s &amp;lsquo;spec&amp;rsquo; section. If &lt;code&gt;spec&lt;/code&gt; is left empty, no HPA resource will be created. Note that you must not specify the &amp;lsquo;scaleTargetRef&amp;rsquo; section in &lt;code&gt;spec&lt;/code&gt;; the Kiali Operator will populate that for you.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_digest"&gt;.spec.deployment.image_digest&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If &lt;code&gt;deployment.image_version&lt;/code&gt; is a digest hash, this value indicates what type of digest it is. A typical value would be &amp;lsquo;sha256&amp;rsquo;. Note: do NOT prefix this value with a &amp;lsquo;@&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_name"&gt;.spec.deployment.image_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines which Kiali image to download and install. If you set this to a specific name (i.e. you do not leave it as the default empty string), you must make sure that image is supported by the operator. If empty, the operator will use a known supported image name based on which &lt;code&gt;version&lt;/code&gt; was defined. Note that, as a security measure, a cluster admin may have configured the Kiali operator to ignore this setting. A cluster admin may do this to ensure the Kiali operator only installs a single, specific Kiali version, thus this setting may have no effect depending on how the operator itself was configured.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_pull_policy"&gt;.spec.deployment.image_pull_policy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Kubernetes pull policy for the Kiali deployment. This is overridden to be &amp;lsquo;Always&amp;rsquo; if &lt;code&gt;deployment.image_version&lt;/code&gt; is set to &amp;lsquo;latest&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_pull_secrets"&gt;.spec.deployment.image_pull_secrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The names of the secrets to be used when container images are to be pulled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_pull_secrets[*]"&gt;.spec.deployment.image_pull_secrets[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.image_version"&gt;.spec.deployment.image_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines which version of Kiali to install.&#10;Choose &amp;lsquo;lastrelease&amp;rsquo; to use the last Kiali release.&#10;Choose &amp;lsquo;latest&amp;rsquo; to use the latest image (which may or may not be a released version of Kiali).&#10;Choose &amp;lsquo;operator_version&amp;rsquo; to use the image whose version is the same as the operator version.&#10;Otherwise, you can set this to any valid Kiali version (such as &amp;lsquo;v1.0&amp;rsquo;) or any valid Kiali&#10;digest hash (if you set this to a digest hash, you must indicate the digest in &lt;code&gt;deployment.image_digest&lt;/code&gt;).&lt;/p&gt;&#10;&lt;p&gt;Note that if this is set to &amp;lsquo;latest&amp;rsquo; then the &lt;code&gt;deployment.image_pull_policy&lt;/code&gt; will be set to &amp;lsquo;Always&amp;rsquo;.&lt;/p&gt;&#10;&lt;p&gt;If you set this to a specific version (i.e. you do not leave it as the default empty string),&#10;you must make sure that image is supported by the operator.&lt;/p&gt;&#10;&lt;p&gt;If empty, the operator will use a known supported image version based on which &amp;lsquo;version&amp;rsquo; was defined.&#10;Note that, as a security measure, a cluster admin may have configured the Kiali operator to&#10;ignore this setting. A cluster admin may do this to ensure the Kiali operator only installs&#10;a single, specific Kiali version, thus this setting may have no effect depending on how the&#10;operator itself was configured.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress"&gt;.spec.deployment.ingress&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures if/how the Kiali endpoint should be exposed externally.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.additional_labels"&gt;.spec.deployment.ingress.additional_labels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional labels to add to the Ingress (or Route if on OpenShift). These are added to the labels that are created by default; these do not override the default labels.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.class_name"&gt;.spec.deployment.ingress.class_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If &lt;code&gt;class_name&lt;/code&gt; is a non-empty string, it will be used as the &amp;lsquo;spec.ingressClassName&amp;rsquo; in the created Kubernetes Ingress resource. This setting is ignored if on OpenShift. This is also ignored if &lt;code&gt;override_yaml.spec&lt;/code&gt; is defined (i.e. you must define the &amp;lsquo;ingressClassName&amp;rsquo; directly in your override yaml).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.enabled"&gt;.spec.deployment.ingress.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines if the Kiali endpoint should be exposed externally. If &amp;lsquo;true&amp;rsquo;, an Ingress will be created if on Kubernetes or a Route if on OpenShift. If left undefined, this will be &amp;lsquo;false&amp;rsquo; on Kubernetes and &amp;lsquo;true&amp;rsquo; on OpenShift.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.override_yaml"&gt;.spec.deployment.ingress.override_yaml&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Because an Ingress into a cluster can vary wildly in its desired configuration,&#10;this setting provides a way to override complete portions of the Ingress resource&#10;configuration (Ingress on Kubernetes and Route on OpenShift). It is up to the user&#10;to ensure this override YAML configuration is valid and supports the cluster environment&#10;since the operator will blindly copy this custom configuration into the resource it&#10;creates.&lt;/p&gt;&#10;&lt;p&gt;This setting is not used if &lt;code&gt;deployment.ingress.enabled&lt;/code&gt; is set to &amp;lsquo;false&amp;rsquo;.&#10;Note that only &amp;lsquo;metadata.annotations&amp;rsquo; and &amp;lsquo;spec&amp;rsquo; is valid and only they will&#10;be used to override those same sections in the created resource. You can define&#10;either one or both.&lt;/p&gt;&#10;&lt;p&gt;Note that &lt;code&gt;override_yaml.metadata.labels&lt;/code&gt; is not allowed - you cannot override the labels; to add&#10;labels to the default set of labels, use the &lt;code&gt;deployment.ingress.additional_labels&lt;/code&gt; setting.&#10;Example,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; ingress:&#10; override_yaml:&#10; metadata:&#10; annotations:&#10; nginx.ingress.kubernetes.io/secure-backends: &amp;quot;true&amp;quot;&#10; nginx.ingress.kubernetes.io/backend-protocol: &amp;quot;HTTPS&amp;quot;&#10; spec:&#10; rules:&#10; - http:&#10; paths:&#10; - path: /kiali&#10; pathType: Prefix&#10; backend:&#10; service&#10; name: &amp;quot;kiali&amp;quot;&#10; port:&#10; number: 20001&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.override_yaml.metadata"&gt;.spec.deployment.ingress.override_yaml.metadata&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.override_yaml.metadata.annotations"&gt;.spec.deployment.ingress.override_yaml.metadata.annotations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.ingress.override_yaml.spec"&gt;.spec.deployment.ingress.override_yaml.spec&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.instance_name"&gt;.spec.deployment.instance_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The instance name of this Kiali installation. This instance name will be the prefix prepended to the names of all Kiali resources created by the operator and will be used to label those resources as belonging to this Kiali installation instance. You cannot change this instance name after a Kiali CR is created. If you attempt to change it, the operator will abort with an error. If you want to change it, you must first delete the original Kiali CR and create a new one. Note that this does not affect the name of the auto-generated signing key secret. If you do not supply a signing key, the operator will create one for you in a secret, but that secret will always be named &amp;lsquo;kiali-signing-key&amp;rsquo; and shared across all Kiali instances in the same deployment namespace. If you want a different signing key secret, you are free to create your own and tell the operator about it via &lt;code&gt;login_token.signing_key&lt;/code&gt;. See the docs on that setting for more details. Note also that if you are setting this value, you may also want to change the &lt;code&gt;installation_tag&lt;/code&gt; setting, but this is not required.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger"&gt;.spec.deployment.logger&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the logger that emits messages to the Kiali server pod logs.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger.log_format"&gt;.spec.deployment.logger.log_format&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Indicates if the logs should be written with one log message per line or using a JSON format. Must be one of: &lt;code&gt;text&lt;/code&gt; or &lt;code&gt;json&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger.log_level"&gt;.spec.deployment.logger.log_level&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The lowest priority of messages to log. Must be one of: &lt;code&gt;trace&lt;/code&gt;, &lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;warn&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, or &lt;code&gt;fatal&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger.log_prometheus_queries"&gt;.spec.deployment.logger.log_prometheus_queries&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and log_level is trace, Kiali logs PromQL instant and range queries used to obtain metrics.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger.sampler_rate"&gt;.spec.deployment.logger.sampler_rate&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;With this setting every sampler_rate-th message will be logged. By default, every message is logged. As an example, setting this to &lt;code&gt;'2'&lt;/code&gt; means every other message will be logged. The value of this setting is a string but must be parsable as an integer.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.logger.time_field_format"&gt;.spec.deployment.logger.time_field_format&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The log message timestamp format. This supports a golang time format (see &lt;a href="https://golang.org/pkg/time/"&gt;https://golang.org/pkg/time/&lt;/a&gt;)&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.namespace"&gt;.spec.deployment.namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace into which Kiali is to be installed. If this is empty or not defined, the default will be the namespace where the Kiali CR is located.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.network_policy"&gt;.spec.deployment.network_policy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures if the Kiali server pod should be protected by a NetworkPolicy resource that restricts both ingress and egress traffic.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.network_policy.enabled"&gt;.spec.deployment.network_policy.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true, a NetworkPolicy resource is created to restrict traffic to the Kiali server pod. The NetworkPolicy will allow ingress traffic only to the Kiali server API port and, if enabled, the metrics port.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.node_selector"&gt;.spec.deployment.node_selector&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of node labels that dictate onto which node the Kiali pod will be deployed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.pod_annotations"&gt;.spec.deployment.pod_annotations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom annotations to be created on the Kiali pod.&#10;By default, the following annotation is applied:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;proxy.istio.io/config: '{ &amp;quot;holdApplicationUntilProxyStarts&amp;quot;: true }'&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;If you define your own pod_annotations, they will overwrite this default.&#10;To retain the default behavior while adding your own annotations,&#10;make sure to include this value alongside your custom annotations.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.pod_disruption_budget"&gt;.spec.deployment.pod_disruption_budget&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines what (if any) PodDisruptionBudget should be created for the Kiali pod.&#10;A typical way to configure PDB for Kiali is,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; pod_disruption_budget:&#10; api_version: &amp;quot;policy/v1&amp;quot;&#10; spec:&#10; minAvailable: 1&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.pod_disruption_budget.api_version"&gt;.spec.deployment.pod_disruption_budget.api_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A specific PDB API version that can be specified in case there is some PDB feature you want to use that is only supported in that specific version. If value is an empty string, the default version of &amp;lsquo;policy/v1&amp;rsquo; will be used.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.pod_disruption_budget.spec"&gt;.spec.deployment.pod_disruption_budget.spec&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The &lt;code&gt;spec&lt;/code&gt; specified here will be placed in the created PDB resource&amp;rsquo;s &amp;lsquo;spec&amp;rsquo; section. If &lt;code&gt;spec&lt;/code&gt; is left empty, no PDB resource will be created. Note that you must not specify the &amp;lsquo;selector&amp;rsquo; section in &lt;code&gt;spec&lt;/code&gt;; the Kiali Operator will populate that for you.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.pod_labels"&gt;.spec.deployment.pod_labels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom labels to be created on the Kiali pod.&#10;An example use for this setting is to inject an Istio sidecar such as,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sidecar.istio.io/inject: &amp;quot;true&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Note that if you set a label key that conflicts with a standard Kiali label,&#10;your value will take precedence (user labels win on collision).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.priority_class_name"&gt;.spec.deployment.priority_class_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The priorityClassName used to assign the priority of the Kiali pod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes"&gt;.spec.deployment.probes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the liveness, readiness, and startup probes of the Kiali pod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.liveness"&gt;.spec.deployment.probes.liveness&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the liveness probe of the Kiali pod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.liveness.initial_delay_seconds"&gt;.spec.deployment.probes.liveness.initial_delay_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.liveness.period_seconds"&gt;.spec.deployment.probes.liveness.period_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.readiness"&gt;.spec.deployment.probes.readiness&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the readiness probe of the Kiali pod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.readiness.initial_delay_seconds"&gt;.spec.deployment.probes.readiness.initial_delay_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.readiness.period_seconds"&gt;.spec.deployment.probes.readiness.period_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.startup"&gt;.spec.deployment.probes.startup&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the startup probe of the Kiali pod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.startup.failure_threshold"&gt;.spec.deployment.probes.startup.failure_threshold&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.startup.initial_delay_seconds"&gt;.spec.deployment.probes.startup.initial_delay_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.probes.startup.period_seconds"&gt;.spec.deployment.probes.startup.period_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.remote_cluster_resources_only"&gt;.spec.deployment.remote_cluster_resources_only&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When &lt;code&gt;true&lt;/code&gt;, only those resources necessary for a remote Kiali Server to access this cluster are created (such as the service account and roles/bindings). There will be no Kiali Server deployment/pod created when this is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.replicas"&gt;.spec.deployment.replicas&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The replica count for the Kiail deployment. If &lt;code&gt;deployment.hpa&lt;/code&gt; is specified, this setting is ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.resources"&gt;.spec.deployment.resources&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines compute resources that are to be given to the Kiali pod&amp;rsquo;s container. The value is a dict as defined by Kubernetes. See the Kubernetes documentation (&lt;a href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container"&gt;https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container&lt;/a&gt;).&#10;If you set this to an empty dict (&lt;code&gt;{}&lt;/code&gt;) then no resources will be defined in the Deployment.&#10;If you do not set this at all, the default is,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; deployment:&#10; resources:&#10; requests:&#10; cpu: &amp;quot;10m&amp;quot;&#10; memory: &amp;quot;64Mi&amp;quot;&#10; limits:&#10; memory: &amp;quot;1Gi&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.secret_name"&gt;.spec.deployment.secret_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a secret used by the Kiali. This secret is optionally used when configuring the OpenID authentication strategy. Consult the OpenID docs for more information at &lt;a href="https://kiali.io/docs/configuration/authentication/openid/"&gt;https://kiali.io/docs/configuration/authentication/openid/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.security_context"&gt;.spec.deployment.security_context&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom security context to be placed on the server container. The entire security context on the container will be the value of this setting if the operator is configured to allow it. Note that, as a security measure, a cluster admin may have configured the Kiali operator to not allow portions of this override setting - in this case you can specify additional security context settings but you cannot replace existing, default ones.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.service_annotations"&gt;.spec.deployment.service_annotations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom annotations to be created on the Kiali Service resource.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.service_labels"&gt;.spec.deployment.service_labels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Custom labels to be created on the Kiali Service resource.&#10;Note that if you set a label key that conflicts with a standard Kiali label,&#10;your value will take precedence (user labels win on collision).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.service_type"&gt;.spec.deployment.service_type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Kiali service type. Kubernetes determines what values are valid. Common values are &amp;lsquo;NodePort&amp;rsquo;, &amp;lsquo;ClusterIP&amp;rsquo;, and &amp;lsquo;LoadBalancer&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.strategy"&gt;.spec.deployment.strategy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures the update strategy for the Kiali deployment. If not specified, a RollingUpdate strategy is used with maxSurge=1 and maxUnavailable=1. See the Kubernetes documentation on Deployment Strategy for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config"&gt;.spec.deployment.tls_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;TLS policy configuration. When source is &amp;lsquo;auto&amp;rsquo; on OpenShift, the APIServer TLSSecurityProfile is used. Otherwise, the explicit config values are enforced.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.cipher_suites"&gt;.spec.deployment.tls_config.cipher_suites&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Explicit TLS cipher suites (OpenSSL names). Ignored for TLS 1.3.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.cipher_suites[*]"&gt;.spec.deployment.tls_config.cipher_suites[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.groups"&gt;.spec.deployment.tls_config.groups&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Explicit TLS groups (supported key exchange mechanisms, e.g., X25519, secp256r1).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.groups[*]"&gt;.spec.deployment.tls_config.groups[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.max_version"&gt;.spec.deployment.tls_config.max_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Maximum TLS version (e.g., TLSv1.3, TLSv1.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.min_version"&gt;.spec.deployment.tls_config.min_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Minimum TLS version (e.g., TLSv1.3, TLSv1.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tls_config.source"&gt;.spec.deployment.tls_config.source&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;TLS policy source: &amp;lsquo;auto&amp;rsquo; to use OpenShift TLSSecurityProfile; &amp;lsquo;config&amp;rsquo; to use explicit settings.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tolerations"&gt;.spec.deployment.tolerations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of tolerations which declare which node taints Kiali can tolerate. See the Kubernetes documentation on Taints and Tolerations for more details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.tolerations[*]"&gt;.spec.deployment.tolerations[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.topology_spread_constraints"&gt;.spec.deployment.topology_spread_constraints&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of constraints which control how the Kiali pods are spread across your cluster to help achieve high availability as well as efficient resource utilization. See the Kubernetes documentation on Topology Spread Constraints for more details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.topology_spread_constraints[*]"&gt;.spec.deployment.topology_spread_constraints[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.verbose_mode"&gt;.spec.deployment.verbose_mode&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: When true, Kiali will log additional debug information about its operations.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.version_label"&gt;.spec.deployment.version_label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Kiali resources will be assigned a &amp;lsquo;version&amp;rsquo; label when they are deployed.&#10;This setting determines what value those &amp;lsquo;version&amp;rsquo; labels will have.&#10;When empty, its default will be determined as follows,&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;If &lt;code&gt;deployment.image_version&lt;/code&gt; is &amp;lsquo;latest&amp;rsquo;, &lt;code&gt;version_label&lt;/code&gt; will be fixed to &amp;lsquo;master&amp;rsquo;.&lt;/li&gt;&#10;&lt;li&gt;If &lt;code&gt;deployment.image_version&lt;/code&gt; is &amp;lsquo;lastrelease&amp;rsquo;, &lt;code&gt;version_label&lt;/code&gt; will be fixed to the last Kiali release version string.&lt;/li&gt;&#10;&lt;li&gt;If &lt;code&gt;deployment.image_version&lt;/code&gt; is anything else, &lt;code&gt;version_label&lt;/code&gt; will be that value, too.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.view_only_mode"&gt;.spec.deployment.view_only_mode&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali will be in &amp;lsquo;view only&amp;rsquo; mode, allowing the user to view and retrieve management and monitoring data for the service mesh, but not allow the user to modify the service mesh.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.extensions"&gt;.spec.extensions&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines third-party extensions whose metrics can be integrated into the Kiali traffic graph.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.extensions[*]"&gt;.spec.extensions[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.extensions[*].enabled"&gt;.spec.extensions[*].enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines if the Kiali traffic graph should incorporate the extension&amp;rsquo;s metrics.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.extensions[*].name"&gt;.spec.extensions[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name that is used to identify the metric time series for the extension.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services"&gt;.spec.external_services&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;These external service configuration settings define how to connect to the external services&#10;like Prometheus, Grafana, and Jaeger.&lt;/p&gt;&#10;&lt;p&gt;Regarding sensitive values in the external_services &amp;lsquo;auth&amp;rsquo; sections:&#10;Some external services configured below support an &amp;lsquo;auth&amp;rsquo; sub-section in order to tell Kiali&#10;how it should authenticate with the external services. Credentials used to authenticate Kiali&#10;to those external services can be defined in the &lt;code&gt;auth.password&lt;/code&gt; and &lt;code&gt;auth.token&lt;/code&gt; values&#10;within the &lt;code&gt;auth&lt;/code&gt; sub-section. Because these are sensitive values, you may not want to declare&#10;the actual credentials here in the Kiali CR. In this case, you may store the actual password&#10;or token string in a Kubernetes secret. If you do, you need to set the &lt;code&gt;auth.password&lt;/code&gt; or&#10;&lt;code&gt;auth.token&lt;/code&gt; to a value in the format &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt; where &lt;code&gt;&amp;lt;secretName&amp;gt;&lt;/code&gt;&#10;is the name of the secret object that Kiali can access, and &lt;code&gt;&amp;lt;secretKey&amp;gt;&lt;/code&gt; is the name of the&#10;key within the named secret that contains the actual password or token string. For example,&#10;if Grafana requires a password, you can store that password in a secret named &amp;lsquo;myGrafanaCredentials&amp;rsquo;&#10;in a key named &amp;lsquo;myGrafanaPw&amp;rsquo;. In this case, you would set &lt;code&gt;external_services.grafana.auth.password&lt;/code&gt;&#10;to &lt;code&gt;secret:myGrafanaCredentials:myGrafanaPw&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards"&gt;.spec.external_services.custom_dashboards&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for enabling and discovering custom dashboards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.discovery_auto_threshold"&gt;.spec.external_services.custom_dashboards.discovery_auto_threshold&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Threshold of the number of pods, for a given Application or Workload, above which dashboards discovery will be skipped. This setting only takes effect when &lt;code&gt;discovery_enabled&lt;/code&gt; is set to &amp;lsquo;auto&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.discovery_enabled"&gt;.spec.external_services.custom_dashboards.discovery_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable, disable or set &amp;lsquo;auto&amp;rsquo; mode to the dashboards discovery process. If set to &amp;lsquo;true&amp;rsquo;, Kiali will always try to discover dashboards based on metrics. Note that this can generate performance penalties while discovering dashboards for workloads having many pods (thus many metrics). When set to &amp;lsquo;auto&amp;rsquo;, Kiali will skip dashboards discovery for workloads with more than a configured threshold of pods (see &lt;code&gt;discovery_auto_threshold&lt;/code&gt;). When discovery is disabled or auto/skipped, it is still possible to tie workloads with dashboards through annotations on pods (refer to the doc &lt;a href="https://kiali.io/docs/configuration/custom-dashboard/#pod-annotations"&gt;https://kiali.io/docs/configuration/custom-dashboard/#pod-annotations&lt;/a&gt;). Value must be a string and be one of: &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;, &lt;code&gt;auto&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.enabled"&gt;.spec.external_services.custom_dashboards.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable or disable custom dashboards, including the dashboards discovery process.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.is_core"&gt;.spec.external_services.custom_dashboards.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.namespace_label"&gt;.spec.external_services.custom_dashboards.namespace_label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Prometheus label name used for identifying namespaces in metrics for custom dashboards. The default is &lt;code&gt;namespace&lt;/code&gt; but you may want to use &lt;code&gt;kubernetes_namespace&lt;/code&gt; depending on your Prometheus configuration.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus"&gt;.spec.external_services.custom_dashboards.prometheus&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Prometheus configuration defined here refers to the Prometheus instance that is dedicated to fetching metrics for custom dashboards. This means you can obtain these metrics for the custom dashboards from a Prometheus instance that is different from the one that Istio uses. If this section is omitted, the same Prometheus that is used to obtain the Istio metrics will also be used for retrieving custom dashboard metrics.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth"&gt;.spec.external_services.custom_dashboards.prometheus.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to authenticate with the Prometheus instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.ca_file"&gt;.spec.external_services.custom_dashboards.prometheus.auth.ca_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.cert_file"&gt;.spec.external_services.custom_dashboards.prometheus.auth.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client certificate file to use when accessing Prometheus using https with mTLS. An empty string means no client certificate is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the certificate is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.insecure_skip_verify"&gt;.spec.external_services.custom_dashboards.prometheus.auth.insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Prometheus over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.key_file"&gt;.spec.external_services.custom_dashboards.prometheus.auth.key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client private key file to use when accessing Prometheus using https with mTLS. An empty string means no client private key is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the key is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for OAuth2 client_credentials authentication. When auth.type is &lt;code&gt;oauth2&lt;/code&gt;, these settings are used to obtain an access token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.audience"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.audience&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The audience parameter sent with the token request. Some providers require this to scope the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.auth_style"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.auth_style&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How to send client credentials to the token endpoint. Use &lt;code&gt;params&lt;/code&gt; to send in the request body or &lt;code&gt;header&lt;/code&gt; to send as HTTP Basic Auth (default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.client_id"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client ID (a public identifier per RFC 6749 §2.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.client_secret"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.client_secret&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client secret. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the value is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.scopes"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of scopes to request with the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-7"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.scopes[*]"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.oauth2.token_url"&gt;.spec.external_services.custom_dashboards.prometheus.auth.oauth2.token_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the OAuth2 token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.password"&gt;.spec.external_services.custom_dashboards.prometheus.auth.password&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Password to be used when making requests to Prometheus, for basic authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the password is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.token"&gt;.spec.external_services.custom_dashboards.prometheus.auth.token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Token / API key to access Prometheus, for token-based authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.type"&gt;.spec.external_services.custom_dashboards.prometheus.auth.type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of authentication to use when contacting the server. Use &lt;code&gt;bearer&lt;/code&gt; to send the token to the Prometheus server. Use &lt;code&gt;basic&lt;/code&gt; to connect with username and password credentials. Use &lt;code&gt;oauth2&lt;/code&gt; to use OAuth2 client_credentials flow. Use &lt;code&gt;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.use_kiali_token"&gt;.spec.external_services.custom_dashboards.prometheus.auth.use_kiali_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and if &lt;code&gt;auth.type&lt;/code&gt; is &lt;code&gt;bearer&lt;/code&gt;, Kiali Service Account token will be used for the API calls to Prometheus (in this case, &lt;code&gt;auth.token&lt;/code&gt; config is ignored).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.auth.username"&gt;.spec.external_services.custom_dashboards.prometheus.auth.username&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Username to be used when making requests to Prometheus with &lt;code&gt;basic&lt;/code&gt; authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the username is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.cache_duration"&gt;.spec.external_services.custom_dashboards.prometheus.cache_duration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Prometheus caching duration expressed in seconds.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.cache_enabled"&gt;.spec.external_services.custom_dashboards.prometheus.cache_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable/disable Prometheus caching used for Health services.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.cache_expiration"&gt;.spec.external_services.custom_dashboards.prometheus.cache_expiration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Prometheus caching expiration expressed in seconds.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.custom_headers"&gt;.spec.external_services.custom_dashboards.prometheus.custom_headers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of name/value settings that will be passed as headers when requests are sent to Prometheus.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.health_check_url"&gt;.spec.external_services.custom_dashboards.prometheus.health_check_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. This is the url which Kiali will ping to determine whether the component is reachable or not. It defaults to &lt;code&gt;url&lt;/code&gt; when not provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.is_core"&gt;.spec.external_services.custom_dashboards.prometheus.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.query_scope"&gt;.spec.external_services.custom_dashboards.prometheus.query_scope&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of labelName/labelValue settings applied to every Prometheus query. Used to narrow unified metrics to only those scoped to the Kiali instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.thanos_proxy"&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Define this section if Prometheus is to be queried through a Thanos proxy. Kiali will still use the &lt;code&gt;url&lt;/code&gt; setting to query for Prometheus metrics so make sure that is set appropriately.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.thanos_proxy.enabled"&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set to true when a Thanos proxy is in front of Prometheus.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.thanos_proxy.retention_period"&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.retention_period&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Thanos Retention period value expressed as a string.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.thanos_proxy.scrape_interval"&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.scrape_interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Thanos Scrape interval value expressed as a string.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.custom_dashboards.prometheus.url"&gt;.spec.external_services.custom_dashboards.prometheus.url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL used to query the Prometheus Server. This URL must be accessible from the Kiali pod. If empty, the default will assume Prometheus is in the Istio control plane namespace; e.g. &lt;code&gt;http://prometheus.istio-system:9090&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana"&gt;.spec.external_services.grafana&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration used to access the Grafana dashboards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth"&gt;.spec.external_services.grafana.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to authenticate with the Grafana instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.ca_file"&gt;.spec.external_services.grafana.auth.ca_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.cert_file"&gt;.spec.external_services.grafana.auth.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client certificate file to use when accessing Grafana using https with mTLS. An empty string means no client certificate is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the certificate is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.insecure_skip_verify"&gt;.spec.external_services.grafana.auth.insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Grafana over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.key_file"&gt;.spec.external_services.grafana.auth.key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client private key file to use when accessing Grafana using https with mTLS. An empty string means no client private key is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the key is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2"&gt;.spec.external_services.grafana.auth.oauth2&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for OAuth2 client_credentials authentication. When auth.type is &lt;code&gt;oauth2&lt;/code&gt;, these settings are used to obtain an access token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.audience"&gt;.spec.external_services.grafana.auth.oauth2.audience&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The audience parameter sent with the token request. Some providers require this to scope the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.auth_style"&gt;.spec.external_services.grafana.auth.oauth2.auth_style&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How to send client credentials to the token endpoint. Use &lt;code&gt;params&lt;/code&gt; to send in the request body or &lt;code&gt;header&lt;/code&gt; to send as HTTP Basic Auth (default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.client_id"&gt;.spec.external_services.grafana.auth.oauth2.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client ID (a public identifier per RFC 6749 §2.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.client_secret"&gt;.spec.external_services.grafana.auth.oauth2.client_secret&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client secret. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the value is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.scopes"&gt;.spec.external_services.grafana.auth.oauth2.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of scopes to request with the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.scopes[*]"&gt;.spec.external_services.grafana.auth.oauth2.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.oauth2.token_url"&gt;.spec.external_services.grafana.auth.oauth2.token_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the OAuth2 token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.password"&gt;.spec.external_services.grafana.auth.password&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Password to be used when making requests to Grafana, for basic authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the password is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.token"&gt;.spec.external_services.grafana.auth.token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Token / API key to access Grafana, for token-based authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.type"&gt;.spec.external_services.grafana.auth.type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of authentication to use when contacting the server. Use &lt;code&gt;bearer&lt;/code&gt; to send the token to the Grafana server. Use &lt;code&gt;basic&lt;/code&gt; to connect with username and password credentials. Use &lt;code&gt;oauth2&lt;/code&gt; to use OAuth2 client_credentials flow. Use &lt;code&gt;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.use_kiali_token"&gt;.spec.external_services.grafana.auth.use_kiali_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and if &lt;code&gt;auth.type&lt;/code&gt; is &lt;code&gt;bearer&lt;/code&gt;, Kiali Service Account token will be used for the API calls to Grafana (in this case, &lt;code&gt;auth.token&lt;/code&gt; config is ignored).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.auth.username"&gt;.spec.external_services.grafana.auth.username&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Username to be used when making requests to Grafana with &lt;code&gt;basic&lt;/code&gt; authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the username is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards"&gt;.spec.external_services.grafana.dashboards&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of Grafana dashboards that Kiali can link to.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*]"&gt;.spec.external_services.grafana.dashboards[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].name"&gt;.spec.external_services.grafana.dashboards[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the Grafana dashboard.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables"&gt;.spec.external_services.grafana.dashboards[*].variables&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.app"&gt;.spec.external_services.grafana.dashboards[*].variables.app&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the app name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.datasource"&gt;.spec.external_services.grafana.dashboards[*].variables.datasource&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the variable that holds the Datasource UID, required if Grafana has multiple datasources configured (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.namespace"&gt;.spec.external_services.grafana.dashboards[*].variables.namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the namespace, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.service"&gt;.spec.external_services.grafana.dashboards[*].variables.service&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the service name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.version"&gt;.spec.external_services.grafana.dashboards[*].variables.version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the version, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.dashboards[*].variables.workload"&gt;.spec.external_services.grafana.dashboards[*].variables.workload&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the workload name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.datasource_uid"&gt;.spec.external_services.grafana.datasource_uid&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The UID of the Datasource configured in Grafana must be specified if multiple datasources are configured. It is empty by default and is used only in conjunction with the &lt;code&gt;datasource&lt;/code&gt; variable.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.enabled"&gt;.spec.external_services.grafana.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Grafana support will be enabled in Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.external_url"&gt;.spec.external_services.grafana.external_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL that the Kiali UI uses when displaying Grafana links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as &amp;lsquo;?orgId=1&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.health_check_url"&gt;.spec.external_services.grafana.health_check_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to &lt;code&gt;internal_url&lt;/code&gt; when not provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.in_cluster_url"&gt;.spec.external_services.grafana.in_cluster_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The URL used for in-cluster access to Grafana.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.internal_url"&gt;.spec.external_services.grafana.internal_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL used by Kiali to perform requests and queries to Grafana. An example would be &lt;code&gt;http://grafana.istio-system:3000&lt;/code&gt;. This URL can contain query parameters if needed, such as &amp;lsquo;?orgId=1&amp;rsquo;. If not defined, it will default to &lt;code&gt;http://grafana.&amp;lt;istio namespace&amp;gt;:3000&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.is_core"&gt;.spec.external_services.grafana.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.grafana.url"&gt;.spec.external_services.grafana.url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The URL used to access Grafana from external sources.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio"&gt;.spec.external_services.istio&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Istio configuration that Kiali needs to know about in order to observe the mesh.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status"&gt;.spec.external_services.istio.component_status&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Istio components whose status will be monitored by Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components"&gt;.spec.external_services.istio.component_status.components&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A specific Istio component whose status will be monitored by Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*]"&gt;.spec.external_services.istio.component_status.components[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*].app_label"&gt;.spec.external_services.istio.component_status.components[*].app_label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Istio component pod app label.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*].is_core"&gt;.spec.external_services.istio.component_status.components[*].is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Whether the component is to be considered a core component for your deployment.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*].is_multicluster"&gt;.spec.external_services.istio.component_status.components[*].is_multicluster&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Whether the component is a multi-cluster component.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*].is_proxy"&gt;.spec.external_services.istio.component_status.components[*].is_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Whether the component is a native Envoy proxy.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.components[*].namespace"&gt;.spec.external_services.istio.component_status.components[*].namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace where the component is installed. It defaults to the Istio control plane namespace (e.g. &lt;code&gt;istio-system&lt;/code&gt;). Note that the Istio documentation suggests you install the ingress and egress to different namespaces, so you most likely will want to explicitly set this namespace value for the ingress and egress components.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.component_status.enabled"&gt;.spec.external_services.istio.component_status.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines if Istio component statuses will be displayed in the Kiali masthead indicator.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.config_map_name"&gt;.spec.external_services.istio.config_map_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The name of the istio control plane config map is now autodetected based on revision.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.egress_gateway_namespace"&gt;.spec.external_services.istio.egress_gateway_namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace where Istio EgressGateway component is read for a status check. When left empty, the control plane namespace is used. e.g. &lt;code&gt;istio-system&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.envoy_admin_local_port"&gt;.spec.external_services.istio.envoy_admin_local_port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The port which Kiali will open to fetch envoy config data information is now hardcoded to the standard Envoy port.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_class_name"&gt;.spec.external_services.istio.gateway_api_class_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The name of the Gateway API Class used by Istio.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_classes"&gt;.spec.external_services.istio.gateway_api_classes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list declaring all the Gateway API Classes used in Istio. If empty or undefined, Kiali attempts to auto-discover Gateway Classes if &lt;code&gt;cluster_wide_access&lt;/code&gt; is set &lt;code&gt;true&lt;/code&gt; for Kiali; otherwise, it defaults to &lt;code&gt;istio&lt;/code&gt;, &lt;code&gt;istio-remote&lt;/code&gt;, and adds &lt;code&gt;istio-waypoint&lt;/code&gt; for Ambient mode or &lt;code&gt;istio-east-west&lt;/code&gt; for multicluster setup.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_classes[*]"&gt;.spec.external_services.istio.gateway_api_classes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_classes[*].class_name"&gt;.spec.external_services.istio.gateway_api_classes[*].class_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the GatewayClass.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_classes[*].name"&gt;.spec.external_services.istio.gateway_api_classes[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the Gateway API implementation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.gateway_api_classes_label_selector"&gt;.spec.external_services.istio.gateway_api_classes_label_selector&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Label selector for auto-discovering K8s Gateway API Classes. Used if &lt;code&gt;gateway_api_classes&lt;/code&gt; is unset and &lt;code&gt;cluster_wide_access&lt;/code&gt; is set &lt;code&gt;true&lt;/code&gt; for Kiali. When left empty then all K8s Gateway API Classes will be loaded.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_api_enabled"&gt;.spec.external_services.istio.istio_api_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Indicates if Kiali has access to istiod.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_canary_revision"&gt;.spec.external_services.istio.istio_canary_revision&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. Canary upgrade/downgrade functionality now autodetects canary revisions from running istiod pods.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_canary_revision.current"&gt;.spec.external_services.istio.istio_canary_revision.current&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: The currently installed Istio revision.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_canary_revision.upgrade"&gt;.spec.external_services.istio.istio_canary_revision.upgrade&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: The installed Istio canary revision to upgrade to.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_identity_domain"&gt;.spec.external_services.istio.istio_identity_domain&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Kubernetes cluster DNS domain suffix used to construct fully qualified service hostnames (e.g. reviews.bookinfo.svc.cluster.local) and service account identity strings for validation. When empty, it is auto-detected from the Istio mesh trustDomain (as &amp;lsquo;svc.&amp;rsquo; + trustDomain). Set explicitly only if you need to override the auto-detected value.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_injection_annotation"&gt;.spec.external_services.istio.istio_injection_annotation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The name of the field that annotates a workload to indicate a sidecar should be automatically injected by Istio is now hardcoded to the standard value.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_sidecar_annotation"&gt;.spec.external_services.istio.istio_sidecar_annotation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The pod annotation used by Istio to identify the sidecar is now hardcoded to the standard value.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istio_sidecar_injector_config_map_name"&gt;.spec.external_services.istio.istio_sidecar_injector_config_map_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The name of the istio-sidecar-injector config map is now autodetected based on revision.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istiod_deployment_name"&gt;.spec.external_services.istio.istiod_deployment_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The name of the istiod deployment is now autodetected.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istiod_pod_monitoring_port"&gt;.spec.external_services.istio.istiod_pod_monitoring_port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The monitoring port of the IstioD pod is now autodetected from the deployment args.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.istiod_polling_interval_seconds"&gt;.spec.external_services.istio.istiod_polling_interval_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How often in seconds Kiali will poll istiod(s) for proxy status. Polling is not performed if istio_api_enabled is false.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.root_namespace"&gt;.spec.external_services.istio.root_namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The namespace to treat as the administrative root namespace for Istio configuration.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.url_service_version"&gt;.spec.external_services.istio.url_service_version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The Istio service used to determine the Istio version is now autodetected from services.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.validation_change_detection_enabled"&gt;.spec.external_services.istio.validation_change_detection_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali will detect changes in Istio configuration and trigger validation reconciliation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.istio.validation_reconcile_interval"&gt;.spec.external_services.istio.validation_reconcile_interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configures how often Kiali will validate Istio configuration. Validations cannot be disabled at the moment but you can set this to a long period of time. Accepts a golang duration string e.g. &amp;lsquo;1h&amp;rsquo; or &amp;lsquo;30m&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses"&gt;.spec.external_services.perses&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration used to access the Perses dashboards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth"&gt;.spec.external_services.perses.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to authenticate with the Perses instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.ca_file"&gt;.spec.external_services.perses.auth.ca_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.cert_file"&gt;.spec.external_services.perses.auth.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client certificate file to use when accessing Perses using https with mTLS. An empty string means no client certificate is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the certificate is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.insecure_skip_verify"&gt;.spec.external_services.perses.auth.insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Perses over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.key_file"&gt;.spec.external_services.perses.auth.key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client private key file to use when accessing Perses using https with mTLS. An empty string means no client private key is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the key is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2"&gt;.spec.external_services.perses.auth.oauth2&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for OAuth2 client_credentials authentication. When auth.type is &lt;code&gt;oauth2&lt;/code&gt;, these settings are used to obtain an access token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.audience"&gt;.spec.external_services.perses.auth.oauth2.audience&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The audience parameter sent with the token request. Some providers require this to scope the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.auth_style"&gt;.spec.external_services.perses.auth.oauth2.auth_style&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How to send client credentials to the token endpoint. Use &lt;code&gt;params&lt;/code&gt; to send in the request body or &lt;code&gt;header&lt;/code&gt; to send as HTTP Basic Auth (default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.client_id"&gt;.spec.external_services.perses.auth.oauth2.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client ID (a public identifier per RFC 6749 §2.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.client_secret"&gt;.spec.external_services.perses.auth.oauth2.client_secret&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client secret. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the value is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.scopes"&gt;.spec.external_services.perses.auth.oauth2.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of scopes to request with the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.scopes[*]"&gt;.spec.external_services.perses.auth.oauth2.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.oauth2.token_url"&gt;.spec.external_services.perses.auth.oauth2.token_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the OAuth2 token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.password"&gt;.spec.external_services.perses.auth.password&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Password to be used when making requests to Perses, for basic authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the password is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.type"&gt;.spec.external_services.perses.auth.type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of authentication to use when contacting the server. Use &lt;code&gt;bearer&lt;/code&gt; to send the token to the Perses server. Use &lt;code&gt;basic&lt;/code&gt; to connect with username and password credentials. Use &lt;code&gt;oauth2&lt;/code&gt; to use OAuth2 client_credentials flow. Use &lt;code&gt;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.use_kiali_token"&gt;.spec.external_services.perses.auth.use_kiali_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and if &lt;code&gt;auth.type&lt;/code&gt; is &lt;code&gt;bearer&lt;/code&gt;, Kiali Service Account token will be used for the API calls to Perses.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.auth.username"&gt;.spec.external_services.perses.auth.username&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Username to be used when making requests to Perses with &lt;code&gt;basic&lt;/code&gt; authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the username is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards"&gt;.spec.external_services.perses.dashboards&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of Perses dashboards that Kiali can link to.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*]"&gt;.spec.external_services.perses.dashboards[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].name"&gt;.spec.external_services.perses.dashboards[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the Perses dashboard.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables"&gt;.spec.external_services.perses.dashboards[*].variables&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.app"&gt;.spec.external_services.perses.dashboards[*].variables.app&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the app name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.datasource"&gt;.spec.external_services.perses.dashboards[*].variables.datasource&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the variable that holds the Datasource UID, required if Perses has multiple datasources configured (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.namespace"&gt;.spec.external_services.perses.dashboards[*].variables.namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the namespace, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.service"&gt;.spec.external_services.perses.dashboards[*].variables.service&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the service name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.version"&gt;.spec.external_services.perses.dashboards[*].variables.version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the version, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.dashboards[*].variables.workload"&gt;.spec.external_services.perses.dashboards[*].variables.workload&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a variable that holds the workload name, if used in that dashboard (else it must be omitted).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.enabled"&gt;.spec.external_services.perses.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Perses support will be enabled in Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.external_url"&gt;.spec.external_services.perses.external_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL that the Kiali UI uses when displaying Perses links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as &amp;lsquo;?orgId=1&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.health_check_url"&gt;.spec.external_services.perses.health_check_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to &lt;code&gt;internal_url&lt;/code&gt; when not provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.internal_url"&gt;.spec.external_services.perses.internal_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL used by Kiali to perform requests and queries to Perses. An example would be &lt;code&gt;http://perses.istio-system:4000&lt;/code&gt;. This URL can contain query parameters if needed, such as &amp;lsquo;?orgId=1&amp;rsquo;. If not defined, it will default to &lt;code&gt;http://perses.&amp;lt;istio_namespace&amp;gt;:4000&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.is_core"&gt;.spec.external_services.perses.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.project"&gt;.spec.external_services.perses.project&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the project where the Dashboards are defined.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.perses.url_format"&gt;.spec.external_services.perses.url_format&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL format. Leave empty (the default) for standard Perses upstream. Use &lt;code&gt;openshift&lt;/code&gt; when using Perses Dashboards via the Cluster Observability operator in OpenShift.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus"&gt;.spec.external_services.prometheus&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Prometheus configuration defined here refers to the Prometheus instance that is used by Istio to store its telemetry.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth"&gt;.spec.external_services.prometheus.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to authenticate with the Prometheus instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.ca_file"&gt;.spec.external_services.prometheus.auth.ca_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.cert_file"&gt;.spec.external_services.prometheus.auth.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client certificate file to use when accessing Prometheus using https with mTLS. An empty string means no client certificate is used. May refer to a secret.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.insecure_skip_verify"&gt;.spec.external_services.prometheus.auth.insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Prometheus over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.key_file"&gt;.spec.external_services.prometheus.auth.key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client private key file to use when accessing Prometheus using https with mTLS. An empty string means no client private key is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the key is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2"&gt;.spec.external_services.prometheus.auth.oauth2&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for OAuth2 client_credentials authentication. When auth.type is &lt;code&gt;oauth2&lt;/code&gt;, these settings are used to obtain an access token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.audience"&gt;.spec.external_services.prometheus.auth.oauth2.audience&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The audience parameter sent with the token request. Some providers require this to scope the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.auth_style"&gt;.spec.external_services.prometheus.auth.oauth2.auth_style&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How to send client credentials to the token endpoint. Use &lt;code&gt;params&lt;/code&gt; to send in the request body or &lt;code&gt;header&lt;/code&gt; to send as HTTP Basic Auth (default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.client_id"&gt;.spec.external_services.prometheus.auth.oauth2.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client ID (a public identifier per RFC 6749 §2.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.client_secret"&gt;.spec.external_services.prometheus.auth.oauth2.client_secret&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client secret. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the value is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.scopes"&gt;.spec.external_services.prometheus.auth.oauth2.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of scopes to request with the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.scopes[*]"&gt;.spec.external_services.prometheus.auth.oauth2.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.oauth2.token_url"&gt;.spec.external_services.prometheus.auth.oauth2.token_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the OAuth2 token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.password"&gt;.spec.external_services.prometheus.auth.password&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Password to be used when making requests to Prometheus, for basic authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the password is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.token"&gt;.spec.external_services.prometheus.auth.token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Token / API key to access Prometheus, for token-based authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.type"&gt;.spec.external_services.prometheus.auth.type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of authentication to use when contacting the server. Use &lt;code&gt;bearer&lt;/code&gt; to send the token to the Prometheus server. Use &lt;code&gt;basic&lt;/code&gt; to connect with username and password credentials. Use &lt;code&gt;oauth2&lt;/code&gt; to use OAuth2 client_credentials flow. Use &lt;code&gt;none&lt;/code&gt; to not use any authentication (this is the default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.use_kiali_token"&gt;.spec.external_services.prometheus.auth.use_kiali_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and if &lt;code&gt;auth.type&lt;/code&gt; is &lt;code&gt;bearer&lt;/code&gt;, Kiali Service Account token will be used for the API calls to Prometheus (in this case, &lt;code&gt;auth.token&lt;/code&gt; config is ignored).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.auth.username"&gt;.spec.external_services.prometheus.auth.username&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Username to be used when making requests to Prometheus with &lt;code&gt;basic&lt;/code&gt; authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the username is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.cache_duration"&gt;.spec.external_services.prometheus.cache_duration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Prometheus caching duration expressed in seconds.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.cache_enabled"&gt;.spec.external_services.prometheus.cache_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable/disable Prometheus caching used for Health services.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.cache_expiration"&gt;.spec.external_services.prometheus.cache_expiration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Prometheus caching expiration expressed in seconds.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.custom_headers"&gt;.spec.external_services.prometheus.custom_headers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of name/value settings that will be passed as headers when requests are sent to Prometheus.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.enabled"&gt;.spec.external_services.prometheus.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali will connect to the Prometheus instance for Istio telemetry metrics. When false, Kiali will run without metrics support - the graph, health based on request rates, and metrics displays will be unavailable.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.health_check_url"&gt;.spec.external_services.prometheus.health_check_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. This is the url which Kiali will ping to determine whether the component is reachable or not. It defaults to &lt;code&gt;url&lt;/code&gt; when not provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.is_core"&gt;.spec.external_services.prometheus.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.query_scope"&gt;.spec.external_services.prometheus.query_scope&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of labelName/labelValue settings applied to every Prometheus query. Used to narrow unified metrics to only those scoped to the Kiali instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.thanos_proxy"&gt;.spec.external_services.prometheus.thanos_proxy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Define this section if Prometheus is to be queried through a Thanos proxy. Kiali will still use the &lt;code&gt;url&lt;/code&gt; setting to query for Prometheus metrics so make sure that is set appropriately.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.thanos_proxy.enabled"&gt;.spec.external_services.prometheus.thanos_proxy.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set to true when a Thanos proxy is in front of Prometheus.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.thanos_proxy.retention_period"&gt;.spec.external_services.prometheus.thanos_proxy.retention_period&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Thanos Retention period value expressed as a string.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.thanos_proxy.scrape_interval"&gt;.spec.external_services.prometheus.thanos_proxy.scrape_interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Thanos Scrape interval value expressed as a string.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.prometheus.url"&gt;.spec.external_services.prometheus.url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL used to query the Prometheus Server. This URL must be accessible from the Kiali pod. If empty, the default will assume Prometheus is in the Istio control plane namespace; e.g. &lt;code&gt;http://prometheus.istio-system:9090&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing"&gt;.spec.external_services.tracing&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration used to access the Tracing (Jaeger or Tempo) dashboards.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth"&gt;.spec.external_services.tracing.auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to authenticate with the Tracing server instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.ca_file"&gt;.spec.external_services.tracing.auth.ca_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.cert_file"&gt;.spec.external_services.tracing.auth.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client certificate file to use when accessing the Tracing server using https with mTLS. An empty string means no client certificate is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the certificate is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.insecure_skip_verify"&gt;.spec.external_services.tracing.auth.insecure_skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts the Tracing server over https.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.key_file"&gt;.spec.external_services.tracing.auth.key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The client private key file to use when accessing the Tracing server using https with mTLS. An empty string means no client private key is used. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the key is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2"&gt;.spec.external_services.tracing.auth.oauth2&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for OAuth2 client_credentials authentication. When auth.type is &lt;code&gt;oauth2&lt;/code&gt;, these settings are used to obtain an access token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.audience"&gt;.spec.external_services.tracing.auth.oauth2.audience&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The audience parameter sent with the token request. Some providers require this to scope the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.auth_style"&gt;.spec.external_services.tracing.auth.oauth2.auth_style&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;How to send client credentials to the token endpoint. Use &lt;code&gt;params&lt;/code&gt; to send in the request body or &lt;code&gt;header&lt;/code&gt; to send as HTTP Basic Auth (default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.client_id"&gt;.spec.external_services.tracing.auth.oauth2.client_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client ID (a public identifier per RFC 6749 §2.2).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.client_secret"&gt;.spec.external_services.tracing.auth.oauth2.client_secret&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The OAuth2 client secret. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the value is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.scopes"&gt;.spec.external_services.tracing.auth.oauth2.scopes&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of scopes to request with the token.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.scopes[*]"&gt;.spec.external_services.tracing.auth.oauth2.scopes[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.oauth2.token_url"&gt;.spec.external_services.tracing.auth.oauth2.token_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL of the OAuth2 token endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.password"&gt;.spec.external_services.tracing.auth.password&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Password to be used when making requests to the Tracing server, for basic authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the password is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.token"&gt;.spec.external_services.tracing.auth.token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Token / API key to access the Tracing server, for token-based authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the token is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.type"&gt;.spec.external_services.tracing.auth.type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of authentication to use when contacting the server. Use &lt;code&gt;bearer&lt;/code&gt; to send the token to the Tracing server. Use &lt;code&gt;basic&lt;/code&gt; to connect with username and password credentials. Use &lt;code&gt;oauth2&lt;/code&gt; to use OAuth2 client_credentials flow (only supported when use_grpc is false). Use &lt;code&gt;none&lt;/code&gt; to not use any authentication (this is the default).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.use_kiali_token"&gt;.spec.external_services.tracing.auth.use_kiali_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true and if &lt;code&gt;auth.type&lt;/code&gt; is &lt;code&gt;bearer&lt;/code&gt;, Kiali Service Account token will be used for the API calls to the Tracing server (in this case, &lt;code&gt;auth.token&lt;/code&gt; config is ignored).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.auth.username"&gt;.spec.external_services.tracing.auth.username&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Username to be used when making requests to the Tracing server with &lt;code&gt;basic&lt;/code&gt; authentication. May refer to a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the username is cached and automatically refreshed when the secret changes, enabling rotation without pod restart.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.custom_headers"&gt;.spec.external_services.tracing.custom_headers&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of name/value settings that will be passed as headers when requests are sent to the Tracing backend.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.disable_version_check"&gt;.spec.external_services.tracing.disable_version_check&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, the version of the Tracing backend will not be retrieved. This will mean Kiali will not be able to display the version of your Tracing component in the Kiali UI. This may be needed in order to avoid Kiali reporting errors in cases where the full version endpoint is not accessible or is unknown. A common use case is when using Jaeger with gRPC and the HTTP endpoint is not deployed in the standard port (80).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.enabled"&gt;.spec.external_services.tracing.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, connections to the Tracing server are enabled. &lt;code&gt;internal_url&lt;/code&gt; and/or &lt;code&gt;external_url&lt;/code&gt; need to be provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.external_url"&gt;.spec.external_services.tracing.external_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL that the Kiali UI uses when displaying Tracing UI links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order to generate valid links. If the tracing service is deployed with a QUERY_BASE_PATH set, set this URL like https://&lt;hostname&gt;/&lt;QUERY_BASE_PATH&gt;; for example, &lt;a href="https://tracing-service:8080/jaeger"&gt;https://tracing-service:8080/jaeger&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.grpc_port"&gt;.spec.external_services.tracing.grpc_port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set port number when &lt;code&gt;use_grpc&lt;/code&gt; is true and &lt;code&gt;provider&lt;/code&gt; is &lt;code&gt;tempo&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.health_check_url"&gt;.spec.external_services.tracing.health_check_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. This is the url which Kiali will ping to determine whether the component is reachable or not. It defaults to &lt;code&gt;url&lt;/code&gt; when not provided.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.in_cluster_url"&gt;.spec.external_services.tracing.in_cluster_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The URL used for in-cluster access to the tracing service.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.internal_url"&gt;.spec.external_services.tracing.internal_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL used by Kiali to perform requests and queries to the tracing backend which enables further integration between Kiali and the tracing server. When not provided, Kiali will only show external links using the &lt;code&gt;external_url&lt;/code&gt; setting. Note: Jaeger v1.20+ has separated ports for GRPC(16685) and HTTP(16686) requests. Make sure you use the appropriate port according to the &lt;code&gt;use_grpc&lt;/code&gt; value. Example: &lt;a href="http://tracing.istio-system:16685"&gt;http://tracing.istio-system:16685&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.is_core"&gt;.spec.external_services.tracing.is_core&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.namespace_selector"&gt;.spec.external_services.tracing.namespace_selector&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Kiali use this boolean to find traces with a namespace selector : service.namespace.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.provider"&gt;.spec.external_services.tracing.provider&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The trace provider to get the traces from. Value must be one of: &lt;code&gt;jaeger&lt;/code&gt; or &lt;code&gt;tempo&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.query_scope"&gt;.spec.external_services.tracing.query_scope&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A set of tagKey/tagValue settings applied to every Jaeger query. Used to narrow unified traces to only those scoped to the Kiali instance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.query_timeout"&gt;.spec.external_services.tracing.query_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The amount of time in seconds Kiali will wait for a response from &amp;lsquo;jaeger-query&amp;rsquo; service when fetching traces.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config"&gt;.spec.external_services.tracing.tempo_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings used to configure the access url to the Tempo Datasource in Grafana.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.cache_capacity"&gt;.spec.external_services.tracing.tempo_config.cache_capacity&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When &lt;code&gt;cache_enabled&lt;/code&gt; is true, the number of traces saved in the cache.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.cache_enabled"&gt;.spec.external_services.tracing.tempo_config.cache_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A FIFO cache with the last &lt;code&gt;cache_capacity&lt;/code&gt; traces viewed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.datasource_uid"&gt;.spec.external_services.tracing.tempo_config.datasource_uid&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The unique identifier (uid) of the Tempo datasource in Grafana.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.name"&gt;.spec.external_services.tracing.tempo_config.name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the Tempo instance for the &lt;code&gt;url_format&lt;/code&gt; of &lt;code&gt;openshift&lt;/code&gt; in the Plugin UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.namespace"&gt;.spec.external_services.tracing.tempo_config.namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace of the Tempo instance for the &lt;code&gt;url_format&lt;/code&gt; of &lt;code&gt;openshift&lt;/code&gt; in the Plugin UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.org_id"&gt;.spec.external_services.tracing.tempo_config.org_id&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Id of the organization that the dashboard is in. Default to 1 (the first and default organization).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.tenant"&gt;.spec.external_services.tracing.tempo_config.tenant&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the Tempo tenant for the &lt;code&gt;url_format&lt;/code&gt; of &lt;code&gt;openshift&lt;/code&gt; in the Plugin UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.tempo_config.url_format"&gt;.spec.external_services.tracing.tempo_config.url_format&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The URL format for the external url. Can be &amp;lsquo;jaeger&amp;rsquo;, &amp;lsquo;grafana&amp;rsquo; or &amp;lsquo;openshift&amp;rsquo;. Default to &amp;lsquo;grafana&amp;rsquo;. Openshift will need the name, namespace and tenant in the &lt;code&gt;tempo_config&lt;/code&gt; settings.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.url"&gt;.spec.external_services.tracing.url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The URL used to access the tracing service from external sources.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.use_grpc"&gt;.spec.external_services.tracing.use_grpc&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set to true in order to enable GRPC connections between Kiali and Jaeger which will speed up the queries. In some setups you might not be able to use GRPC (e.g. if Jaeger is behind some reverse proxy that doesn&amp;rsquo;t support it).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.use_waypoint_name"&gt;.spec.external_services.tracing.use_waypoint_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Set to true in order to look for traces using the waypoint service name and not the actual service. Ex. To find traces for Istio versions earlier than 1.28.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.whitelist_istio_system"&gt;.spec.external_services.tracing.whitelist_istio_system&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Kiali will get the traces of these services found in the Istio control plane namespace.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.external_services.tracing.whitelist_istio_system[*]"&gt;.spec.external_services.tracing.whitelist_istio_system[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A name of a service found in the Istio control plane namespace whose traces will be retrieved by Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config"&gt;.spec.health_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;This section defines what it means for nodes to be healthy. For more details, see &lt;a href="https://kiali.io/docs/configuration/health/"&gt;https://kiali.io/docs/configuration/health/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.compute"&gt;.spec.health_config.compute&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration for health pre-computation and caching.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.compute.duration"&gt;.spec.health_config.compute.duration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The time period over which health is calculated. Used as the rate interval for Prometheus queries.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.compute.refresh_interval"&gt;.spec.health_config.compute.refresh_interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The interval between health cache refreshes.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.compute.timeout"&gt;.spec.health_config.compute.timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The maximum time allowed for a single health refresh cycle. If exceeded, the refresh is cancelled and the next cycle starts on schedule.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate"&gt;.spec.health_config.rate&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*]"&gt;.spec.health_config.rate[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].kind"&gt;.spec.health_config.rate[*].kind&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The type of resource that this configuration applies to. This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].name"&gt;.spec.health_config.rate[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of a resource that this configuration applies to. This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].namespace"&gt;.spec.health_config.rate[*].namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the namespace that this configuration applies to. This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance"&gt;.spec.health_config.rate[*].tolerance&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of tolerances for this configuration.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*]"&gt;.spec.health_config.rate[*].tolerance[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*].code"&gt;.spec.health_config.rate[*].tolerance[*].code&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The status code that applies for this tolerance. This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*].degraded"&gt;.spec.health_config.rate[*].tolerance[*].degraded&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Health will be considered degraded when the telemetry reaches this value (specified as an integer representing a percentage).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*].direction"&gt;.spec.health_config.rate[*].tolerance[*].direction&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The direction that applies for this tolerance (e.g. inbound or outbound). This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*].failure"&gt;.spec.health_config.rate[*].tolerance[*].failure&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A failure status will be shown when the telemetry reaches this value (specified as an integer representing a percentage).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.health_config.rate[*].tolerance[*].protocol"&gt;.spec.health_config.rate[*].tolerance[*].protocol&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The protocol that applies for this tolerance (e.g. grpc or http). This is a regular expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.identity"&gt;.spec.identity&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings that define the Kiali server identity.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.identity.cert_file"&gt;.spec.identity.cert_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Certificate file used to identify the Kiali server. If set, you must go over https to access Kiali. The Kiali operator will set this if it deploys Kiali behind https. When left undefined, the operator will attempt to generate a cluster-specific cert file that provides https by default (today, this auto-generation of a cluster-specific cert is only supported on OpenShift). When set to an empty string, https will be disabled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.identity.private_key_file"&gt;.spec.identity.private_key_file&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Private key file used to identify the Kiali server. If set, you must go over https to access Kiali. When left undefined, the Kiali operator will attempt to generate a cluster-specific private key file that provides https by default (today, this auto-generation of a cluster-specific private key is only supported on OpenShift). When set to an empty string, https will be disabled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.installation_tag"&gt;.spec.installation_tag&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Tag used to identify a particular instance/installation of the Kiali server. This is merely a human-readable string that will be used within Kiali to help a user identify the Kiali being used (e.g. in the Kiali UI title bar). See &lt;code&gt;deployment.instance_name&lt;/code&gt; for the setting used to customize Kiali resource names that are created.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels"&gt;.spec.istio_labels&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines specific labels used by Istio that Kiali needs to know about.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.app_label_name"&gt;.spec.istio_labels.app_label_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If using a single scheme for app/version labeling, set this to the app label name being used. This is typically &lt;code&gt;app&lt;/code&gt; or &lt;code&gt;app.kubernetes.io/name&lt;/code&gt;. The default is unset, and Kiali will handle mixed schemes.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.egress_gateway_label"&gt;.spec.istio_labels.egress_gateway_label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.27: This setting is deprecated and will be ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.ingress_gateway_label"&gt;.spec.istio_labels.ingress_gateway_label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.27: This setting is deprecated and will be ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.injection_label_name"&gt;.spec.istio_labels.injection_label_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.27: This setting is deprecated and will be ignored. The injection label name is now hardcoded to the standard value.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.injection_label_rev"&gt;.spec.istio_labels.injection_label_rev&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.27: This setting is deprecated and will be ignored. The injection label revision is now hardcoded to the standard value.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_labels.version_label_name"&gt;.spec.istio_labels.version_label_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If using a single scheme for app/version labeling, set this to the version label name being used. This is typically &lt;code&gt;version&lt;/code&gt; or &lt;code&gt;app.kubernetes.io/version&lt;/code&gt;. The default is unset, and Kiali will handle mixed schemes.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.istio_namespace"&gt;.spec.istio_namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.11: This setting is deprecated and will be ignored. The namespace where Istio is installed is now autodetected. If left empty, it was previously assumed to be the same namespace as where Kiali is installed (i.e. &lt;code&gt;deployment.namespace&lt;/code&gt;).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags"&gt;.spec.kiali_feature_flags&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Kiali features that can be enabled or disabled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.authz"&gt;.spec.kiali_feature_flags.authz&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Authorization-related feature flags.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.authz.require_namespace_get"&gt;.spec.kiali_feature_flags.authz.require_namespace_get&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, a user must have GET permission on a namespace for it to be visible,&#10;even if the user has LIST permission. When false (the default), a successful LIST&#10;is trusted without per-namespace GET checks. Enable this in multi-tenant environments&#10;where LIST permission is granted broadly but GET is restricted per namespace.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.certificates_information_indicators"&gt;.spec.kiali_feature_flags.certificates_information_indicators&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: Settings for certificate information indicators.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.certificates_information_indicators.enabled"&gt;.spec.kiali_feature_flags.certificates_information_indicators.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: When true, certificate information indicators will be displayed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.certificates_information_indicators.secrets"&gt;.spec.kiali_feature_flags.certificates_information_indicators.secrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: List of secrets that contain certificate information.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.certificates_information_indicators.secrets[*]"&gt;.spec.kiali_feature_flags.certificates_information_indicators.secrets[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering"&gt;.spec.kiali_feature_flags.clustering&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: Multi-cluster related features.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.autodetect_secrets"&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: Settings to allow cluster secrets to be auto-detected.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.autodetect_secrets.enabled"&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: If true then remote cluster secrets will be autodetected.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.autodetect_secrets.label"&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets.label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The name and value of a label that exists on all remote cluster secrets.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.clusters"&gt;.spec.kiali_feature_flags.clustering.clusters&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A list of clusters that the Kiali Server can access.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.clusters[*]"&gt;.spec.kiali_feature_flags.clustering.clusters[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.clusters[*].name"&gt;.spec.kiali_feature_flags.clustering.clusters[*].name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The name of the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.clusters[*].secret_name"&gt;.spec.kiali_feature_flags.clustering.clusters[*].secret_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The name of the secret that contains the credentials necessary to connect to the remote cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.enable_exec_provider"&gt;.spec.kiali_feature_flags.clustering.enable_exec_provider&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: Flag to enable exec provider for clustering authentication.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls"&gt;.spec.kiali_feature_flags.clustering.kiali_urls&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: A map between cluster name, instance name and namespace to a Kiali URL.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls[*]"&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls[*].cluster_name"&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].cluster_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The name of the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls[*].instance_name"&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].instance_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The instance name of this Kiali installation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls[*].namespace"&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The namespace into which Kiali is installed.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.clustering.kiali_urls[*].url"&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v1.73: The URL of Kiali in the cluster.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.custom_workload_types"&gt;.spec.kiali_feature_flags.custom_workload_types&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable observability tabs (Traffic, Logs, Metrics, Traces) for custom workload types beyond the built-in Kubernetes controllers.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.custom_workload_types[*]"&gt;.spec.kiali_feature_flags.custom_workload_types[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.custom_workload_types[*].group"&gt;.spec.kiali_feature_flags.custom_workload_types[*].group&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The API group of the custom workload type (e.g., &amp;lsquo;argoproj.io&amp;rsquo;).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.custom_workload_types[*].kind"&gt;.spec.kiali_feature_flags.custom_workload_types[*].kind&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The kind of the custom workload type (e.g., &amp;lsquo;Rollout&amp;rsquo;).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.custom_workload_types[*].version"&gt;.spec.kiali_feature_flags.custom_workload_types[*].version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;span class="property-required"&gt;*Required*&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The API version of the custom workload type (e.g., &amp;lsquo;v1alpha1&amp;rsquo;).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.disabled_features"&gt;.spec.kiali_feature_flags.disabled_features&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;There may be some features that admins do not want to be accessible to users (even in &amp;lsquo;view only&amp;rsquo; mode). In this case, this setting allows you to disable one or more of those features entirely.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.disabled_features[*]"&gt;.spec.kiali_feature_flags.disabled_features[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.istio_annotation_action"&gt;.spec.kiali_feature_flags.istio_annotation_action&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to enable/disable an Action to edit annotations.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.istio_injection_action"&gt;.spec.kiali_feature_flags.istio_injection_action&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to enable/disable an Action to label a namespace for automatic Istio Sidecar injection.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.istio_upgrade_action"&gt;.spec.kiali_feature_flags.istio_upgrade_action&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to activate the Kiali functionality of upgrading namespaces to point to an installed Istio Canary revision.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults"&gt;.spec.kiali_feature_flags.ui_defaults&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the UI. These defaults apply to all users.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph"&gt;.spec.kiali_feature_flags.ui_defaults.graph&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the Graph UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.find_options"&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of commonly used and useful find expressions that will be provided to the user out-of-box.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.find_options[*]"&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.find_options[*].auto_select"&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].auto_select&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true this option will be selected and take effect automatically. Note that only one option in the list can have this value be set to true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.find_options[*].description"&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.find_options[*].expression"&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].expression&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The find expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.hide_options"&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of commonly used and useful hide expressions that will be provided to the user out-of-box.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.hide_options[*]"&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].auto_select"&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].auto_select&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true this option will be selected and take effect automatically. Note that only one option in the list can have this value be set to true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].description"&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].expression"&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].expression&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The hide expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.settings"&gt;.spec.kiali_feature_flags.ui_defaults.graph.settings&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Various presentation options.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.settings.animation"&gt;.spec.kiali_feature_flags.ui_defaults.graph.settings.animation&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The traffic animation style. Value must be one of: &lt;code&gt;dash&lt;/code&gt; or &lt;code&gt;point&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.traffic"&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;These settings determine which rates are used to determine graph traffic.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.traffic.ambient"&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.ambient&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Ambient traffic is reported by ztunnel and/or waypoints. Value must be one of: &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;total&lt;/code&gt;, &lt;code&gt;waypoint&lt;/code&gt;, or &lt;code&gt;ztunnel&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.traffic.grpc"&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.grpc&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;gRPC traffic is measured in requests or sent/received/total messages. Value must be one of: &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;sent&lt;/code&gt;, &lt;code&gt;received&lt;/code&gt;, or &lt;code&gt;total&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.traffic.http"&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.http&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;HTTP traffic is measured in requests. Value must be one of: &lt;code&gt;none&lt;/code&gt; or &lt;code&gt;requests&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.graph.traffic.tcp"&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.tcp&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;TCP traffic is measured in sent/received/total bytes. Only request traffic supplies response codes. Value must be one of: &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;sent&lt;/code&gt;, &lt;code&gt;received&lt;/code&gt;, or &lt;code&gt;total&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.i18n"&gt;.spec.kiali_feature_flags.ui_defaults.i18n&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the i18n values.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.i18n.language"&gt;.spec.kiali_feature_flags.ui_defaults.i18n.language&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default language used in Kiali application.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.i18n.show_selector"&gt;.spec.kiali_feature_flags.ui_defaults.i18n.show_selector&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED AFTER v2.27: Language selection is available in Preferences by default. If false, the language selector is hidden until this setting is removed in a future release.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.list"&gt;.spec.kiali_feature_flags.ui_defaults.list&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the List views (Apps, Workloads, etc).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.list.include_health"&gt;.spec.kiali_feature_flags.ui_defaults.list.include_health&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Include Health column (by default) for applicable list views. Setting to false can improve performance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.list.include_istio_resources"&gt;.spec.kiali_feature_flags.ui_defaults.list.include_istio_resources&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Include Istio resources (by default) in Details column for applicable list views. Setting to false can improve performance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.list.include_validations"&gt;.spec.kiali_feature_flags.ui_defaults.list.include_validations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Include Configuration validation column (by default) for applicable list views. Setting to false can improve performance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.list.show_include_toggles"&gt;.spec.kiali_feature_flags.ui_defaults.list.show_include_toggles&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true list pages display checkbox toggles for the include options, Otherwise the configured settings are applied but can not be changed by the user.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh"&gt;.spec.kiali_feature_flags.ui_defaults.mesh&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the Mesh UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.find_options"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of commonly used and useful find expressions that will be provided to the user out-of-box.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.find_options[*]"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].auto_select"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].auto_select&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true this option will be selected and take effect automatically. Note that only one option in the list can have this value be set to true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].description"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].expression"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].expression&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The find expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.hide_options"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of commonly used and useful hide expressions that will be provided to the user out-of-box.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*]"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].auto_select"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].auto_select&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true this option will be selected and take effect automatically. Note that only one option in the list can have this value be set to true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].description"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].description&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].expression"&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].expression&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The hide expression.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional label aggregation for inbound metric pages in detail pages.&#10;You will see these configurations in the &amp;lsquo;Metric Settings&amp;rsquo; drop-down.&#10;An example,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; kiali_feature_flags:&#10; ui_defaults:&#10; metrics_inbound:&#10; aggregations:&#10; - display_name: Istio Network&#10; label: topology_istio_io_network&#10; - display_name: Istio Revision&#10; label: istio_io_rev&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*]"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].display_name"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].display_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].label"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].single_selection"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].single_selection&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to indicate if only one option can be selected for this aggregation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Additional label aggregation for outbound metric pages in detail pages.&#10;You will see these configurations in the &amp;lsquo;Metric Settings&amp;rsquo; drop-down.&#10;An example,&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;spec:&#10; kiali_feature_flags:&#10; ui_defaults:&#10; metrics_outbound:&#10; aggregations:&#10; - display_name: Istio Network&#10; label: topology_istio_io_network&#10; - display_name: Istio Revision&#10; label: istio_io_rev&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*]"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].display_name"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].display_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].label"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].label&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-6"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].single_selection"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].single_selection&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Flag to indicate if only one option can be selected for this aggregation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.metrics_per_refresh"&gt;.spec.kiali_feature_flags.ui_defaults.metrics_per_refresh&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Duration of metrics to fetch on each refresh. Value must be one of: &lt;code&gt;1m&lt;/code&gt;, &lt;code&gt;2m&lt;/code&gt;, &lt;code&gt;5m&lt;/code&gt;, &lt;code&gt;10m&lt;/code&gt;, &lt;code&gt;30m&lt;/code&gt;, &lt;code&gt;1h&lt;/code&gt;, &lt;code&gt;3h&lt;/code&gt;, &lt;code&gt;6h&lt;/code&gt;, &lt;code&gt;12h&lt;/code&gt;, &lt;code&gt;1d&lt;/code&gt;, &lt;code&gt;7d&lt;/code&gt;, or &lt;code&gt;30d&lt;/code&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.namespaces"&gt;.spec.kiali_feature_flags.ui_defaults.namespaces&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default selections for the namespace selection dropdown. Non-existent or inaccessible namespaces will be ignored. Omit or set to an empty array for no default namespaces.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.namespaces[*]"&gt;.spec.kiali_feature_flags.ui_defaults.namespaces[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.refresh_interval"&gt;.spec.kiali_feature_flags.ui_defaults.refresh_interval&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The automatic refresh interval for pages offering automatic refresh. &lt;code&gt;Manual&lt;/code&gt; requires user action even for initial page load. Value must be one of: &lt;code&gt;pause&lt;/code&gt;, &lt;code&gt;manual&lt;/code&gt;, &lt;code&gt;10s&lt;/code&gt;, &lt;code&gt;15s&lt;/code&gt;, &lt;code&gt;30s&lt;/code&gt;, &lt;code&gt;1m&lt;/code&gt;, &lt;code&gt;5m&lt;/code&gt; or &lt;code&gt;15m&lt;/code&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.tracing"&gt;.spec.kiali_feature_flags.ui_defaults.tracing&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Default settings for the Tracing UI.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.ui_defaults.tracing.limit"&gt;.spec.kiali_feature_flags.ui_defaults.tracing.limit&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The default limit for the number of traces that will be fetched. It can be customized in the UI. It must be a number between 10 and 1000.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.validations"&gt;.spec.kiali_feature_flags.validations&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Features specific to the validations subsystem.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.validations.ignore"&gt;.spec.kiali_feature_flags.validations.ignore&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A list of one or more validation codes whose errors are to be ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.validations.ignore[*]"&gt;.spec.kiali_feature_flags.validations.ignore[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A validation code (e.g. &lt;code&gt;KIA0101&lt;/code&gt;) for a specific validation error that is to be ignored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_feature_flags.validations.skip_wildcard_gateway_hosts"&gt;.spec.kiali_feature_flags.validations.skip_wildcard_gateway_hosts&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The KIA0301 validation checks duplicity of host and port combinations across all Istio Gateways. This includes also Gateways with &amp;lsquo;*&amp;rsquo; in hosts. But Istio considers such a Gateway with a wildcard in hosts as the last in order, after the Gateways with FQDN in hosts. This option is to skip Gateways with wildcards in hosts from the KIA0301 validations but still keep Gateways with FQDN hosts.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali_internal"&gt;.spec.kiali_internal&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Unstructured section for internal testing and debugging features.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config"&gt;.spec.kubernetes_config&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration of Kiali&amp;rsquo;s access of the Kubernetes API.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.burst"&gt;.spec.kubernetes_config.burst&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Burst value of the Kubernetes client.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.cache_duration"&gt;.spec.kubernetes_config.cache_duration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The ratio interval (expressed in seconds) used for the cache to perform a full refresh. Only used when &lt;code&gt;cache_enabled&lt;/code&gt; is true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.cache_token_namespace_duration"&gt;.spec.kubernetes_config.cache_token_namespace_duration&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;This Kiali cache is a list of namespaces per user. This is typically a short-lived cache compared with the duration of the namespace cache defined by the &lt;code&gt;cache_duration&lt;/code&gt; setting. This is specified in seconds.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.cluster_name"&gt;.spec.kubernetes_config.cluster_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The name of the cluster Kiali is deployed in. This is also known as the home cluster. This is only used in multi cluster environments. This must be set when &lt;code&gt;clustering.ignore_home_cluster=true&lt;/code&gt;. If not set, Kiali will try to auto detect the cluster name from the Istiod deployment or use the default &amp;lsquo;Kubernetes&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.excluded_workloads"&gt;.spec.kubernetes_config.excluded_workloads&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;List of controllers that won&amp;rsquo;t be used for Workload calculation. Kiali queries Deployment, ReplicaSet, ReplicationController, DeploymentConfig, StatefulSet, Job and CronJob controllers. Deployment and ReplicaSet will be always queried, but ReplicationController, DeploymentConfig, StatefulSet, Job and CronJobs can be skipped from Kiali workloads queries if they are present in this list.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.excluded_workloads[*]"&gt;.spec.kubernetes_config.excluded_workloads[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kubernetes_config.qps"&gt;.spec.kubernetes_config.qps&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The QPS value of the Kubernetes client.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.login_token"&gt;.spec.login_token&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.login_token.expiration_seconds"&gt;.spec.login_token.expiration_seconds&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;A user&amp;rsquo;s login token expiration specified in seconds. This is applicable to token and header auth strategies only.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.login_token.signing_key"&gt;.spec.login_token.signing_key&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The signing key used to generate tokens for user authentication. Because this is potentially sensitive, you have the option to store this value in a secret using the pattern &lt;code&gt;secret:&amp;lt;secretName&amp;gt;:&amp;lt;secretKey&amp;gt;&lt;/code&gt;. When using a secret, the signing key is read dynamically, enabling automatic rotation without pod restart. If left as an empty string, a secret with a random signing key will be generated for you. The signing key must be 16, 24 or 32 byte long.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server"&gt;.spec.server&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Configuration that controls some core components within the Kiali Server.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.address"&gt;.spec.server.address&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Where the Kiali server is bound. The console and API server are accessible on this host.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.audit_log"&gt;.spec.server.audit_log&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, allows additional audit logging on write operations.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.cors_allow_all"&gt;.spec.server.cors_allow_all&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, allows the web console to send requests to other domains other than where the console came from. Typically used for development environments only.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.gzip_enabled"&gt;.spec.server.gzip_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali serves http requests with gzip enabled (if the browser supports it) when the requests are over 1400 bytes.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.node_port"&gt;.spec.server.node_port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If &lt;code&gt;deployment.service_type&lt;/code&gt; is &amp;lsquo;NodePort&amp;rsquo; and this value is set, then this is the node port that the Kiali service will listen to.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability"&gt;.spec.server.observability&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings to enable observability into the Kiali server itself.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics"&gt;.spec.server.observability.metrics&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings that control how Kiali itself emits its own metrics.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics.enabled"&gt;.spec.server.observability.metrics.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The metrics HTTP listener is started when either this or health_status.enabled is true.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics.health_status"&gt;.spec.server.observability.metrics.health_status&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings for the kiali_health_status Prometheus gauge (per-entity health from the health cache refresh). Independent of metrics.enabled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics.health_status.enabled"&gt;.spec.server.observability.metrics.health_status.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, Kiali exports kiali_health_status metrics during health cache refresh.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics.health_status.max_consecutive_na"&gt;.spec.server.observability.metrics.health_status.max_consecutive_na&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Number of consecutive health refresh cycles an entity may report NA or be missing before its kiali_health_status series is removed. Values less than or equal to 0 use the server default (3).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.metrics.port"&gt;.spec.server.observability.metrics.port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The port that the server will bind to in order to receive metric requests. This is the port Prometheus will need to scrape when collecting metrics from Kiali.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing"&gt;.spec.server.observability.tracing&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Settings that control how the Kiali server itself emits its own tracing data.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.collector_type"&gt;.spec.server.observability.tracing.collector_type&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The collector type to use. Today the only valid value is &lt;code&gt;otel&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.collector_url"&gt;.spec.server.observability.tracing.collector_url&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Used to determine where the Kiali server tracing data will be stored.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.enabled"&gt;.spec.server.observability.tracing.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, the Kiali server itself will product its own tracing data.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.otel"&gt;.spec.server.observability.tracing.otel&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Specific properties when the collector type is &lt;code&gt;otel&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.otel.ca_name"&gt;.spec.server.observability.tracing.otel.ca_name&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;DEPRECATED since v2.20: This setting is deprecated and will be ignored. To configure custom CA certificates, use the kiali-cabundle ConfigMap instead. See the TLS Configuration documentation for details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.otel.protocol"&gt;.spec.server.observability.tracing.otel.protocol&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Protocol. Value must be one of: &lt;code&gt;http&lt;/code&gt;, &lt;code&gt;https&lt;/code&gt; or &lt;code&gt;grpc&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.otel.skip_verify"&gt;.spec.server.observability.tracing.otel.skip_verify&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If true, TLS certificate verification will not be performed. This is an unsecure option and is recommended only for testing.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-5"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.otel.tls_enabled"&gt;.spec.server.observability.tracing.otel.tls_enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Enable TLS for the collector. This must be specified when &lt;code&gt;protocol&lt;/code&gt; is &lt;code&gt;https&lt;/code&gt; or &lt;code&gt;grpc&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-4"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.observability.tracing.sampling_rate"&gt;.spec.server.observability.tracing.sampling_rate&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(number)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Sampling rate for Kiali server traces. &amp;gt;= 1.0 always samples and &amp;lt;= 0 never samples.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.port"&gt;.spec.server.port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The port that the server will bind to in order to receive console and API requests.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.profiler"&gt;.spec.server.profiler&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Controls the internal profiler used to debug the internals of Kiali&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.profiler.enabled"&gt;.spec.server.profiler.enabled&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When &amp;lsquo;true&amp;rsquo;, the profiler will be enabled and accessible at /debug/pprof/ on the Kiali endpoint.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.require_auth"&gt;.spec.server.require_auth&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;When true, the /api endpoint will require users to authenticate themselves. When false, users need not authenticate with Kiali in order to get basic runtime info about the server via the /api endpoint. This setting is ignored if auth.strategy is &amp;lsquo;anonymous&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.web_fqdn"&gt;.spec.server.web_fqdn&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines the public domain where Kiali is being served. This is the &amp;lsquo;domain&amp;rsquo; part of the URL (usually it&amp;rsquo;s a fully-qualified domain name). For example, &lt;code&gt;kiali.example.org&lt;/code&gt;. When empty, Kiali will try to guess this value from HTTP headers. On non-OpenShift clusters, you must populate this value if you want to enable cross-linking between Kiali instances in a multi-cluster setup.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.web_history_mode"&gt;.spec.server.web_history_mode&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Define the history mode of kiali UI. Value must be one of: &lt;code&gt;browser&lt;/code&gt; or &lt;code&gt;hash&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.web_port"&gt;.spec.server.web_port&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines the ingress port where the connections come from. This is usually necessary when the application responds through a proxy/ingress, and it does not forward the correct headers (when this happens, Kiali cannot guess the port). When empty, Kiali will try to guess this value from HTTP headers.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.web_root"&gt;.spec.server.web_root&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines the context root path for the Kiali console and API endpoints and readiness probes. When providing a context root path that is not &lt;code&gt;/&lt;/code&gt;, do not add a trailing slash (i.e. use &lt;code&gt;/kiali&lt;/code&gt; not &lt;code&gt;/kiali/&lt;/code&gt;). When empty, this will default to &lt;code&gt;/&lt;/code&gt; on OpenShift and &lt;code&gt;/kiali&lt;/code&gt; on other Kubernetes environments.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.web_schema"&gt;.spec.server.web_schema&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Defines the public HTTP schema used to serve Kiali. Value must be one of: &lt;code&gt;http&lt;/code&gt; or &lt;code&gt;https&lt;/code&gt;. When empty, Kiali will try to guess this value from HTTP headers. On non-OpenShift clusters, you must populate this value if you want to enable cross-linking between Kiali instances in a multi-cluster setup.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.server.write_timeout"&gt;.spec.server.write_timeout&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The maximum duration before timing out writes of the HTTP response back to the client.&#10;Can be specified as a number (seconds) or duration string (e.g., &amp;ldquo;30s&amp;rdquo;, &amp;ldquo;1h&amp;rdquo;, &amp;ldquo;2m30s&amp;rdquo;).&lt;/p&gt;&#10;&lt;p&gt;In OpenShift clusters, the route request time out should be also increased.&#10;This can be done by annotating the specific route with &lt;code&gt;haproxy.router.openshift.io/timeout&lt;/code&gt;.&#10;See &lt;a href="https://docs.openshift.com/container-platform/4.16/networking/routes/route-configuration.html#nw-configuring-route-timeouts_route-configuration"&gt;https://docs.openshift.com/container-platform/4.16/networking/routes/route-configuration.html#nw-configuring-route-timeouts_route-configuration&lt;/a&gt; for further details.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.version"&gt;.spec.version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The version of the Ansible role that will be executed in order to install Kiali.&#10;This also indirectly determines the version of Kiali that will be installed.&#10;You normally will want to use &lt;code&gt;default&lt;/code&gt; since this is the only officially supported value today.&lt;/p&gt;&#10;&lt;p&gt;If not specified, the value of &lt;code&gt;default&lt;/code&gt; is assumed which means the most recent Ansible role is used;&#10;thus the most recent release of Kiali will be installed.&lt;/p&gt;&#10;&lt;p&gt;Refer to this file to see what the valid values are for this &lt;code&gt;version&lt;/code&gt; field (as defined in the master branch),&#10;&lt;a href="https://github.com/kiali/kiali-operator/blob/master/playbooks/kiali-default-supported-images.yml"&gt;https://github.com/kiali/kiali-operator/blob/master/playbooks/kiali-default-supported-images.yml&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;This &lt;code&gt;version&lt;/code&gt; setting affects the defaults of the &lt;code&gt;deployment.image_name&lt;/code&gt; and&#10;&lt;code&gt;deployment.image_version&lt;/code&gt; settings. See the documentation for those settings below for&#10;additional details. In short, this &lt;code&gt;version&lt;/code&gt; setting will dictate which version of the&#10;Kiali image will be deployed by default. However, if you explicitly set &lt;code&gt;deployment.image_name&lt;/code&gt;&#10;and/or &lt;code&gt;deployment.image_version&lt;/code&gt; to reference your own custom image, that will override the&#10;default Kiali image to be installed; therefore, you are responsible for ensuring those settings&#10;are compatible with the Ansible role that will be executed in order to install Kiali (i.e. your&#10;custom Kiali image must be compatible with the rest of the configuration and resources the&#10;operator will install).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-0"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".status"&gt;.status&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The processing status of this CR as reported by the Kiali operator.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;</description></item><item><title>Namespace access control</title><link>https://staging--kiali.netlify.app/docs/configuration/rbac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/rbac/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;In authentication strategies other than &lt;code&gt;anonymous&lt;/code&gt; Kiali supports limiting the&#10;namespaces that are accessible on a per-user basis. The &lt;code&gt;anonymous&lt;/code&gt;&#10;authentication strategy does not support this, although you can still limit&#10;privileges when using an OpenShift cluster. See the &lt;a href="https://staging--kiali.netlify.app/docs/configuration/authentication/anonymous/#access-control"&gt;access control section in&#10;Anonymous strategy&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;To authorize namespaces, the standard &lt;code&gt;Roles&lt;/code&gt; resources (or &lt;code&gt;ClusterRoles&lt;/code&gt;)&#10;and &lt;code&gt;RoleBindings&lt;/code&gt; resources (or &lt;code&gt;ClusterRoleBindings&lt;/code&gt;) are used.&lt;/p&gt;&#10;&lt;div class="alert alert-info" role="alert"&gt;&#10;&lt;p&gt;The &lt;a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/"&gt;Kubernetes RBAC documentation&lt;/a&gt;&#10;describe how to use &lt;em&gt;Roles, ClusterRoles, RoleBindings&lt;/em&gt; and &lt;em&gt;ClusterRoleBindings&lt;/em&gt;&#10;resources. If you are using OpenShift, read the&#10;&lt;a href="https://docs.redhat.com/en/documentation/openshift_container_platform/4.22/html/rbac_apis/rbac-apis"&gt;OpenShift RBAC documentation&lt;/a&gt;.&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Namespace Management</title><link>https://staging--kiali.netlify.app/docs/configuration/namespace-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/namespace-management/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;The default Kiali &lt;a href="https://staging--kiali.netlify.app/docs/installation/installation-guide/"&gt;installation&lt;/a&gt; gives Kiali access to all namespaces available in the cluster and will allow all namespaces to be visible.&lt;/p&gt;&#10;&lt;p&gt;It is possible to restrict Kiali so that it can only access a specific set of namespaces by providing &lt;a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements"&gt;discovery selectors&lt;/a&gt; that match those namespaces. Note that Kiali will not use &lt;a href="https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig"&gt;Istio&amp;rsquo;s discovery selectors&lt;/a&gt;; if Istio has been configured with its own discovery selectors, you will likely want to configure Kiali with the same list of discovery selectors.&lt;/p&gt;</description></item><item><title>No Istiod Access</title><link>https://staging--kiali.netlify.app/docs/configuration/no-istiod/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/no-istiod/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Kiali makes use of the Istiod &lt;code&gt;/debug&lt;/code&gt; endpoints for introspection into the control plane. If this API is unavailable Kiali continues to perform, but the feature set will be degraded. The Istio API can be unavailable for various reasons:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The Istio API has been explicitly disabled in the Istio configuration.&lt;/li&gt;&#10;&lt;li&gt;The &lt;a href="https://istio.io/latest/docs/ops/deployment/deployment-models/#multiple-clusters"&gt;deployment model&lt;/a&gt; prevents access to the Istio API (firewalls, other networking concerns or limitations).&lt;/li&gt;&#10;&lt;li&gt;The API is configured but for some, potentially unexpected, reason can not be reached by Kiali.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;&#10;&lt;p&gt;When the Istio API is known to be inaccessible Kiali should be configured via the &lt;code&gt;istio_api_enabled&lt;/code&gt; configuration item.&lt;br&gt;&#10;By default, istio_api_enabled is true.&lt;/p&gt;</description></item><item><title>OSSMConsole CR Reference</title><link>https://staging--kiali.netlify.app/docs/configuration/ossmconsoles.kiali.io/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/ossmconsoles.kiali.io/</guid><description>&lt;div class="crd-schema-version"&gt;&#10;&lt;h3 id="example-cr"&gt;Example CR&lt;/h3&gt;&#10;&lt;em&gt;(all values shown here are the defaults unless otherwise noted)&lt;/em&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;apiVersion&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;kiali.io/v1alpha1&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kind&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;OSSMConsole&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;metadata&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;ossmconsole&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;annotations&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;ansible.sdk.operatorframework.io/verbosity&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;spec&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;version&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;deployment&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;imageDigest&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;imageName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;imagePullPolicy&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;IfNotPresent&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: image_pull_secrets is an empty list&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;imagePullSecrets&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;image.pull.secret&amp;#34;&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;imageVersion&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;namespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# default: internal is an empty object (techPreview is disabled)&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# internal:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# techPreview: true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;kiali&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;autoDiscover&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;serviceName&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;serviceNamespace&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;servicePort&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;0&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="validating-your-ossmconsole-cr"&gt;Validating your OSSMConsole CR&lt;/h3&gt;&#10;&lt;p&gt;The OSSMConsole CR has a CRD Schema so it will be validated when you create or update it in your cluster.&lt;/p&gt;&#10;&lt;h3 id="property-details"&gt;Properties&lt;/h3&gt;&#10;&lt;div class="property depth-0"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec"&gt;.spec&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;This is the CRD for the resources called OSSMConsole CRs. The OpenShift Service Mesh Console Operator will watch for resources of this type and when it detects an OSSMConsole CR has been added, deleted, or modified, it will install, uninstall, and update the associated OSSM Console installation.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment"&gt;.spec.deployment&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imageDigest"&gt;.spec.deployment.imageDigest&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;If &lt;code&gt;deployment.imageVersion&lt;/code&gt; is a digest hash, this value indicates what type of digest it is. A typical value would be &amp;lsquo;sha256&amp;rsquo;. Note: do NOT prefix this value with a &amp;lsquo;@&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imageName"&gt;.spec.deployment.imageName&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines which OSSM Console image to download and install. If you set this to a specific name (i.e. you do not leave it as the default empty string), you must make sure that image is supported by the operator. If empty, the operator will use a known supported image name based on which &lt;code&gt;version&lt;/code&gt; was defined. Note that, as a security measure, a cluster admin may have configured the operator to ignore this setting. A cluster admin may do this to ensure the operator only installs a single, specific OSSM Console version, thus this setting may have no effect depending on how the operator itself was configured.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imagePullPolicy"&gt;.spec.deployment.imagePullPolicy&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The Kubernetes pull policy for the OSSM Console deployment. This is overridden to be &amp;lsquo;Always&amp;rsquo; if &lt;code&gt;deployment.imageVersion&lt;/code&gt; is set to &amp;lsquo;latest&amp;rsquo;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imagePullSecrets"&gt;.spec.deployment.imagePullSecrets&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(array)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The names of the secrets to be used when container images are to be pulled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-3"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imagePullSecrets[*]"&gt;.spec.deployment.imagePullSecrets[*]&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.imageVersion"&gt;.spec.deployment.imageVersion&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Determines which version of OSSM Console to install.&#10;Choose &amp;lsquo;lastrelease&amp;rsquo; to use the last OSSM Console release.&#10;Choose &amp;lsquo;latest&amp;rsquo; to use the latest image (which may or may not be a released version of the OSSM Console).&#10;Choose &amp;lsquo;operator_version&amp;rsquo; to use the image whose version is the same as the operator version.&#10;Otherwise, you can set this to any valid OSSM Console version (such as &amp;lsquo;v1.0&amp;rsquo;) or any valid OSSM Console&#10;digest hash (if you set this to a digest hash, you must indicate the digest in &lt;code&gt;deployment.imageDigest&lt;/code&gt;).&#10;Note that if this is set to &amp;lsquo;latest&amp;rsquo; then the &lt;code&gt;deployment.imagePullPolicy&lt;/code&gt; will be set to &amp;lsquo;Always&amp;rsquo;.&#10;If you set this to a specific version (i.e. you do not leave it as the default empty string),&#10;you must make sure that image is supported by the operator.&#10;If empty, the operator will use a known supported image version based on which &amp;lsquo;version&amp;rsquo; was defined.&#10;Note that, as a security measure, a cluster admin may have configured the operator to&#10;ignore this setting. A cluster admin may do this to ensure the operator only installs&#10;a single, specific OSSM Console version, thus this setting may have no effect depending on how the&#10;operator itself was configured.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.deployment.namespace"&gt;.spec.deployment.namespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace into which OSSM Console is to be installed. If this is empty or not defined, the default will be the namespace where the OSSMConsole CR is located. Currently the only namespace supported is the namespace where the OSSMConsole CR is located.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.internal"&gt;.spec.internal&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Unstructured section for internal testing and debugging features. Not officially supported - fields here may change or be removed without notice.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali"&gt;.spec.kiali&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali.autoDiscover"&gt;.spec.kiali.autoDiscover&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(boolean)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;Controls whether the operator will opportunistically auto-discover a Kiali installation via its OpenShift Route when none of &lt;code&gt;kiali.serviceName&lt;/code&gt;, &lt;code&gt;kiali.serviceNamespace&lt;/code&gt;, and &lt;code&gt;kiali.servicePort&lt;/code&gt; are set. If those three settings are all empty and this is set to &lt;code&gt;false&lt;/code&gt;, OSSM Console is installed without Kiali integration rather than attempting discovery. This setting has no effect if all three of &lt;code&gt;kiali.serviceName&lt;/code&gt;, &lt;code&gt;kiali.serviceNamespace&lt;/code&gt;, and &lt;code&gt;kiali.servicePort&lt;/code&gt; are explicitly set (auto-discovery is already skipped in that case, and the explicitly configured Kiali installation is used). Setting this to &lt;code&gt;false&lt;/code&gt; while only some (not all, and not none) of those three settings are specified is invalid and will fail reconciliation. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali.serviceName"&gt;.spec.kiali.serviceName&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The internal Kiali service that the OpenShift Console will use to proxy API calls. If empty and &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt; (the default), an attempt will be made to auto-discover it from the Kiali OpenShift Route. If none of &lt;code&gt;kiali.serviceName&lt;/code&gt;, &lt;code&gt;kiali.serviceNamespace&lt;/code&gt;, and &lt;code&gt;kiali.servicePort&lt;/code&gt; are set and no Kiali installation can be auto-discovered (or &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;), OSSM Console will still be installed, but without Kiali integration. If any of these three settings are explicitly set, a Kiali installation matching that configuration is required and the install will fail if it cannot be found or its version does not match. See &lt;code&gt;kiali.autoDiscover&lt;/code&gt; for what happens when only some (not all) of these three settings are specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali.serviceNamespace"&gt;.spec.kiali.serviceNamespace&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The namespace where the Kiali service is deployed. If empty and &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt; (the default), an attempt will be made to auto-discover it from the Kiali OpenShift Route. It will assume that the OpenShift Route and the Kiali service are deployed in the same namespace. If none of &lt;code&gt;kiali.serviceName&lt;/code&gt;, &lt;code&gt;kiali.serviceNamespace&lt;/code&gt;, and &lt;code&gt;kiali.servicePort&lt;/code&gt; are set and no Kiali installation can be auto-discovered (or &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;), OSSM Console will still be installed, but without Kiali integration. If any of these three settings are explicitly set, a Kiali installation matching that configuration is required and the install will fail if it cannot be found or its version does not match. See &lt;code&gt;kiali.autoDiscover&lt;/code&gt; for what happens when only some (not all) of these three settings are specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-2"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.kiali.servicePort"&gt;.spec.kiali.servicePort&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(integer)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The internal port used by the Kiali service for the API. If empty and &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt; (the default), an attempt will be made to auto-discover it from the Kiali OpenShift Route. If none of &lt;code&gt;kiali.serviceName&lt;/code&gt;, &lt;code&gt;kiali.serviceNamespace&lt;/code&gt;, and &lt;code&gt;kiali.servicePort&lt;/code&gt; are set and no Kiali installation can be auto-discovered (or &lt;code&gt;kiali.autoDiscover&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;), OSSM Console will still be installed, but without Kiali integration. If any of these three settings are explicitly set, a Kiali installation matching that configuration is required and the install will fail if it cannot be found or its version does not match. See &lt;code&gt;kiali.autoDiscover&lt;/code&gt; for what happens when only some (not all) of these three settings are specified.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-1"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".spec.version"&gt;.spec.version&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(string)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The version of the Ansible role that will be executed in order to install OSSM Console.&#10;This also indirectly determines the version of OSSM Console that will be installed.&#10;You normally will want to use &lt;code&gt;default&lt;/code&gt; since this is the only officially supported value today.&lt;/p&gt;&#10;&lt;p&gt;If not specified, the value of &lt;code&gt;default&lt;/code&gt; is assumed which means the most recent Ansible role is used;&#10;thus the most recent release of OSSM Console will be installed.&lt;/p&gt;&#10;&lt;p&gt;Refer to this file to see what the valid values are for this &lt;code&gt;version&lt;/code&gt; field (as defined in the master branch),&#10;&lt;a href="https://github.com/kiali/kiali-operator/blob/master/playbooks/ossmconsole-default-supported-images.yml"&gt;https://github.com/kiali/kiali-operator/blob/master/playbooks/ossmconsole-default-supported-images.yml&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;This &lt;code&gt;version&lt;/code&gt; setting affects the defaults of the &lt;code&gt;deployment.imageName&lt;/code&gt; and&#10;&lt;code&gt;deployment.imageVersion&lt;/code&gt; settings. See the documentation for those settings below for&#10;additional details. In short, this &lt;code&gt;version&lt;/code&gt; setting will dictate which version of the&#10;OSSM Console image will be deployed by default. However, if you explicitly set &lt;code&gt;deployment.imageName&lt;/code&gt;&#10;and/or &lt;code&gt;deployment.imageVersion&lt;/code&gt; to reference your own custom image, that will override the&#10;default OSSM Console image to be installed; therefore, you are responsible for ensuring those settings&#10;are compatible with the Ansible role that will be executed in order to install OSSM Console (i.e. your&#10;custom OSSM Console image must be compatible with the rest of the configuration and resources the&#10;operator will install).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property depth-0"&gt;&#10;&lt;div class="property-header"&gt;&#10;&lt;hr/&gt;&#10;&lt;h3 class="property-path" id=".status"&gt;.status&lt;/h3&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-body"&gt;&#10;&lt;div class="property-meta"&gt;&#10;&lt;span class="property-type"&gt;(object)&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div class="property-description"&gt;&#10;&lt;p&gt;The processing status of this CR as reported by the OpenShift Service Mesh Console Operator.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;</description></item><item><title>TLS Policy</title><link>https://staging--kiali.netlify.app/docs/configuration/tls-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/tls-policy/</guid><description>&lt;p&gt;Kiali uses one TLS policy for both its inbound server endpoint and every outbound client it creates—HTTP, gRPC, tracing exporters, and OpenID/OAuth HTTP flows. The policy controls TLS versions, cipher suites, and key exchange groups. It is configured in &lt;code&gt;deployment.tls_config&lt;/code&gt; in the Kiali CR. You decide whether the policy comes from the cluster (OpenShift TLSSecurityProfile) or from explicit settings.&lt;/p&gt;&#10;&lt;h2 id="configuration-options"&gt;Configuration Options&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Setting&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;auto&lt;/code&gt; (OpenShift only: reads cluster TLSSecurityProfile) or &lt;code&gt;config&lt;/code&gt; (use explicit settings)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Minimum TLS version: &lt;code&gt;TLSv1.2&lt;/code&gt; or &lt;code&gt;TLSv1.3&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Maximum TLS version: &lt;code&gt;TLSv1.2&lt;/code&gt; or &lt;code&gt;TLSv1.3&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List of OpenSSL cipher names for TLS 1.2 (ignored for TLS 1.3)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;groups&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List of TLS group names (key exchange mechanisms) for both TLS 1.2 and 1.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt; &lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="platform-defaults"&gt;Platform Defaults&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;OpenShift&lt;/strong&gt;: &lt;code&gt;source&lt;/code&gt; defaults to &lt;code&gt;auto&lt;/code&gt; (uses cluster&amp;rsquo;s TLSSecurityProfile)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Non-OpenShift&lt;/strong&gt;: &lt;code&gt;source&lt;/code&gt; defaults to &lt;code&gt;config&lt;/code&gt; (requires explicit configuration)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="alert alert-warning" role="alert"&gt;&#10;&lt;p&gt;On OpenShift, &lt;code&gt;source: config&lt;/code&gt; is rejected by the Kiali Operator when the cluster TLS adherence is strict. See &lt;a href="https://staging--kiali.netlify.app/docs/configuration/tls-policy/#cluster-tls-adherence"&gt;Cluster TLS Adherence&lt;/a&gt;.&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Traffic Health</title><link>https://staging--kiali.netlify.app/docs/configuration/health/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/health/</guid><description>&lt;p&gt;There are times when Kiali&amp;rsquo;s default thresholds for traffic health do not work well for a particular situation. For example, at times 404 response codes are expected. Kiali has the ability to set powerful, fine-grained overrides for health configuration.&lt;/p&gt;&#10;&lt;h3 id="default-configuration"&gt;Default Configuration&lt;/h3&gt;&#10;&lt;p&gt;By default Kiali uses the traffic rate configuration shown below. Application errors have minimal tolerance while client errors have a higher tolerance reflecting that some level of client errors is often normal (e.g. 404 Not Found):&lt;/p&gt;</description></item><item><title>Virtual Machine workloads</title><link>https://staging--kiali.netlify.app/docs/configuration/vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://staging--kiali.netlify.app/docs/configuration/vm/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Kiali graph visualizes both Virtual Machine workloads (WorkloadEntry) and pod-based workloads, running inside a Kubernetes cluster. You must ensure that the Istio Proxy is running, and correctly configured, on the Virtual Machine. Also, Prometheus must be able to scrape the metrics endpoint of the Istio Proxy running on the VM. Kiali will then be able to read the traffic telemetry for the Virtual Machine workloads, and incorporate the VM workloads into the graph.&lt;/p&gt;</description></item></channel></rss>