<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kiali – Configuration</title>
    <link>https://v2-24.kiali.io/docs/configuration/</link>
    <description>Recent content in Configuration on Kiali</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="https://v2-24.kiali.io/docs/configuration/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Authentication Strategies</title>
      <link>https://v2-24.kiali.io/docs/configuration/authentication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/authentication/</guid>
      <description>
        
        
        &lt;p&gt;Kiali supports five authentication mechanisms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default authentication strategy for OpenShift clusters is &lt;code&gt;openshift&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The default authentication strategy for all other Kubernetes clusters is &lt;code&gt;token&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All mechanisms other than &lt;code&gt;anonymous&lt;/code&gt; support &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/rbac/&#34;&gt;limiting per-user namespace access control&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For multi-cluster, only &lt;code&gt;anonymous&lt;/code&gt; and &lt;code&gt;openid&lt;/code&gt; are currently supported.&lt;/p&gt;
&lt;p&gt;Read the dedicated page of each authentication strategy to learn more.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Console Customization</title>
      <link>https://v2-24.kiali.io/docs/configuration/console-customization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/console-customization/</guid>
      <description>
        
        
        &lt;h2 id=&#34;custom-metric-aggregations&#34;&gt;Custom metric aggregations&lt;/h2&gt;
&lt;p&gt;The inbound and outbound metric pages, in the &lt;em&gt;Metrics settings&lt;/em&gt; drop-down,
provides an opinionated set of groupings that work both for filtering out
metric data that does not match the selection and for aggregating data into
series. Each option is backed by a label on the collected Istio telemetry.&lt;/p&gt;
&lt;p&gt;It is possible to add custom aggregations, like in the following example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_inbound&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;aggregations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Istio Network&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;topology_istio_io_network&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Istio Revision&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;istio_io_rev&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_outbound&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;aggregations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Istio Revision&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;istio_io_rev&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&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;
&lt;p&gt;You can find some &lt;a href=&#34;https://medium.com/kialiproject/kiali-release-1-40-features-update-78f19fd113c5#fe3d&#34;&gt;screenshots in Kiali v1.40 feature update blog
post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;default-metrics-duration-and-refresh-interval&#34;&gt;Default metrics duration and refresh interval&lt;/h2&gt;
&lt;p&gt;Most Kiali pages show &lt;em&gt;metrics per refresh&lt;/em&gt; and &lt;em&gt;refresh interval&lt;/em&gt;
drop-downs. These are located at the top-right of the page.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Metrics per refresh&lt;/em&gt; specifies the time range back from the current
instant to fetch metrics and/or distributed tracing data. Also known as the query duration.
By default, a 1-minute time range is selected, or the lowest valid setting.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Refresh interval&lt;/em&gt; specifies how often Kiali will automatically refresh the
data shown. By default, Kiali refreshes data every 60 seconds.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Valid values: 1m, 2m, 5m, 10m, 30m, 1h, 3h, 6h, 12h, 1d, 7d, 30d&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_per_refresh&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Valid values: pause, manual, 10s, 15s, 30s, 1m, 5m, 15m&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;refresh_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;15s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;User selections won&amp;rsquo;t persist a reload.&lt;/p&gt;
&lt;h2 id=&#34;default-namespace-selection&#34;&gt;Default namespace selection&lt;/h2&gt;
&lt;p&gt;By default, when Kiali is accessed by the first time, on most Kiali pages users
will need to use the namespace drop-down to choose namespaces they want to view
data from. The selection will be persisted on reloads.&lt;/p&gt;
&lt;p&gt;However, it is possible to configure a predefined selection of
namespaces, like in the following example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespaces&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;istio-system&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;bookinfo&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Namespace selection will reset to the predefined set on reloads. Also, if for
some reason a namespace becomes deleted, Kiali will simply ignore it from the
list.&lt;/p&gt;
&lt;h2 id=&#34;graph-find-and-hide-presets&#34;&gt;Graph find and hide presets&lt;/h2&gt;
&lt;p&gt;In the toolbar of the topology graph, the &lt;em&gt;Find&lt;/em&gt; and &lt;em&gt;Hide&lt;/em&gt; textboxes can be
configured with presets for your most used criteria. You can find &lt;a href=&#34;https://medium.com/kialiproject/kiali-releases-1-34-to-1-39-overview-587f33fac41a#3962&#34;&gt;screenshots
and a brief description of this feature in the feature update blog post for
versions 1.31 to 1.33&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following are the default presets:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;graph&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;find_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auto_select&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: slow edges (&amp;gt; 1s)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;rt &amp;gt; 1000&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auto_select&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: unhealthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;! healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auto_select&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;hide_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auto_select&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hide: healthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auto_select&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hide: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hopefully, the attributes to configure this feature are self-explanatory.&lt;/p&gt;
&lt;p&gt;To enable one of the configurations by default, it is possible to set &lt;em&gt;auto_select&lt;/em&gt; to true, available for find and hide settings.&lt;/p&gt;
&lt;p&gt;Note that by providing your own presets, you will be overriding the default
configuration. Make sure to include any default presets that you need in case
you provide your own configuration.&lt;/p&gt;
&lt;h2 id=&#34;graph-default-traffic-rates&#34;&gt;Graph default traffic rates&lt;/h2&gt;
&lt;p&gt;Traffic rates in the graph are fetched from Istio telemetry and there are
several &lt;a href=&#34;https://istio.io/latest/docs/reference/config/metrics/&#34;&gt;metric sources&lt;/a&gt;
that can be used.&lt;/p&gt;
&lt;p&gt;In the graph page, you can select the traffic rate metrics using the &lt;em&gt;Traffic&lt;/em&gt;
drop-down (next to the &lt;em&gt;Namespaces&lt;/em&gt; drop-down). By default, &lt;em&gt;Requests&lt;/em&gt; is
selected for GRPC and HTTP protocols, and &lt;em&gt;Sent bytes&lt;/em&gt; is selected for the TCP
protocol, but you can change the default selection:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;graph&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;traffic&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;grpc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Valid values: none, requests, sent, received and total&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Valid values: none and requests&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tcp&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;sent&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;     &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Valid values: none, sent, received and total&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that only &lt;em&gt;requests&lt;/em&gt; provide response codes and will allow health to be
calculated. Also, the resulting topology graph may be different for each source.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Custom Dashboards</title>
      <link>https://v2-24.kiali.io/docs/configuration/custom-dashboard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/custom-dashboard/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://v2-24.kiali.io/docs/features/details/#custom-dash&#34;&gt;Custom Dashboards&lt;/a&gt; require some configuration to work properly.&lt;/p&gt;
&lt;h2 id=&#34;declaring-a-custom-dashboard&#34;&gt;Declaring a custom dashboard&lt;/h2&gt;
&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;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;vertx-custom&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;title&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Vert.x Metrics&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;runtime&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Vert.x&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discoverOn&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;vertx_http_server_connections&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;items&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;chart&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Server response time&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;seconds&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spans&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metricName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;vertx_http_server_responseTime_seconds&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;displayName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Server response time&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dataType&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;histogram&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;aggregations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;displayName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;method&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;displayName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Method&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;chart&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Server active connections&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spans&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metricName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;vertx_http_server_connections&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dataType&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;raw&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;include&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;micrometer-1.1-jvm&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;externalLinks&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;My custom Grafana dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;grafana&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;variables&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;var-app&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;var-namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;var-version&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&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=&#34;#pod-annotations&#34;&gt;kiali.io/dashboards&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The rest of the field definitions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;runtime&lt;/em&gt;: optional, name of the related runtime. It will be displayed on the corresponding Workload Details page. If omitted no name is displayed.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;title&lt;/em&gt;: dashboard title, displayed as a tab in Application or Workloads Details&lt;/li&gt;
&lt;li&gt;&lt;em&gt;discoverOn&lt;/em&gt;: metric name to match for auto-discovery. If omitted, the dashboard won&amp;rsquo;t be discovered automatically, but can still be used via pods annotation.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;items&lt;/em&gt;: a list of items, that can be either &lt;em&gt;chart&lt;/em&gt;, to define a new chart, or &lt;em&gt;include&lt;/em&gt; to reference another dashboard
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;chart&lt;/em&gt;: new chart object
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;name&lt;/em&gt;: name of the chart&lt;/li&gt;
&lt;li&gt;&lt;em&gt;chartType&lt;/em&gt;: type of the chart, can be one of &lt;em&gt;line&lt;/em&gt; (default), &lt;em&gt;area&lt;/em&gt;, &lt;em&gt;bar&lt;/em&gt; or &lt;em&gt;scatter&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;unit&lt;/em&gt;: unit for Y-axis. Free-text field to provide any unit suffix. It can eventually be scaled on display. See &lt;a href=&#34;#units&#34;&gt;specific section below&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;unitScale&lt;/em&gt;: in case the unit needs to be scaled by some factor, set that factor here. For instance, if your data is in milliseconds, set &lt;code&gt;0.001&lt;/code&gt; as scale and &lt;code&gt;seconds&lt;/code&gt; as unit.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;spans&lt;/em&gt;: number of &amp;ldquo;spans&amp;rdquo; taken by the chart, from 1 to 12, using &lt;a href=&#34;https://www.w3schools.com/bootstrap4/bootstrap_grid_system.asp&#34;&gt;bootstrap convention&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;metrics&lt;/em&gt;: a list of metrics to display on this single chart:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;metricName&lt;/em&gt;: the metric name in Prometheus&lt;/li&gt;
&lt;li&gt;&lt;em&gt;displayName&lt;/em&gt;: name to display on chart&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;dataType&lt;/em&gt;: type of data to be displayed in the chart. Can be one of &lt;em&gt;raw&lt;/em&gt;, &lt;em&gt;rate&lt;/em&gt; or &lt;em&gt;histogram&lt;/em&gt;. Raw data will be queried without transformation. Rate data will be queried using
&lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/querying/functions/#rate&#34;&gt;&lt;em&gt;promQL rate() function&lt;/em&gt;&lt;/a&gt;. And histogram with &lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram_quantile&#34;&gt;&lt;em&gt;histogram_quantile() function&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;min&lt;/em&gt; and &lt;em&gt;max&lt;/em&gt;: domain for Y-values. When unset, charts implementations should usually automatically adapt the domain with the displayed data.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;xAxis&lt;/em&gt;: type of the X-axis, can be one of &lt;em&gt;time&lt;/em&gt; (default) or &lt;em&gt;series&lt;/em&gt;. When set to &lt;em&gt;series&lt;/em&gt;, only one datapoint per series will be displayed, and the chart type then defaults to &lt;em&gt;bar&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;aggregator&lt;/em&gt;: defines how the time-series are aggregated when several are returned for a given metric and label set. For example, if a Deployment creates a ReplicaSet of several Pods, you will have at least one time-series per Pod. Since Kiali shows the dashboards at the workload (ReplicaSet) level or at the application level, they will have to be aggregated. This field can be used to fix the aggregator, with values such as &lt;em&gt;sum&lt;/em&gt; or &lt;em&gt;avg&lt;/em&gt; (full list available &lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators&#34;&gt;in Prometheus documentation&lt;/a&gt;). However, if omitted the aggregator will default to &lt;em&gt;sum&lt;/em&gt; and can be changed from the dashboard UI.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;aggregations&lt;/em&gt;: list of labels eligible for aggregations / groupings (they will be displayed in Kiali through a dropdown list)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;label&lt;/em&gt;: Prometheus label name&lt;/li&gt;
&lt;li&gt;&lt;em&gt;displayName&lt;/em&gt;: name to display in Kiali&lt;/li&gt;
&lt;li&gt;&lt;em&gt;singleSelection&lt;/em&gt;: boolean flag to switch between single-selection and multi-selection modes on the values of this label. Defaults to &lt;em&gt;false&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;groupLabels&lt;/em&gt;: a list of Prometheus labels to be used for grouping. Similar to &lt;em&gt;aggregations&lt;/em&gt;, except this grouping will be always turned on.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sortLabel&lt;/em&gt;: Prometheus label to be used for the metrics display order.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sortLabelParseAs&lt;/em&gt;: set to &lt;em&gt;int&lt;/em&gt; if &lt;em&gt;sortLabel&lt;/em&gt; needs to be parsed and compared as an integer instead of string.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;include&lt;/em&gt;: to include another dashboard, or a specific chart from another dashboard. Typically used to compose with generic dashboards such as the ones about &lt;em&gt;MicroProfile Metrics&lt;/em&gt; or &lt;em&gt;Micrometer&lt;/em&gt;-based JVM metrics. To reference a full dashboard, set the name of that dashboard. To reference a specific chart of another dashboard, set the name of the dashboard followed by &lt;code&gt;$&lt;/code&gt; and the name of the chart (ex: &lt;code&gt;include: &amp;quot;microprofile-1.1$Thread count&amp;quot;&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;externalLinks&lt;/em&gt;: a list of related external links (e.g. to Grafana dashboards)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;name&lt;/em&gt;: name of the related dashboard in the external system (e.g. name of a Grafana dashboard)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;type&lt;/em&gt;: link type, currently only &lt;em&gt;grafana&lt;/em&gt; is allowed&lt;/li&gt;
&lt;li&gt;&lt;em&gt;variables&lt;/em&gt;: a set of variables that can be injected in the URL. For instance, with something like &lt;em&gt;namespace: var-namespace&lt;/em&gt; and &lt;em&gt;app: var-app&lt;/em&gt;, an URL to a Grafana dashboard that manages &lt;em&gt;namespace&lt;/em&gt; and &lt;em&gt;app&lt;/em&gt; variables would look like:
&lt;code&gt;http://grafana-server:3000/d/xyz/my-grafana-dashboard?var-namespace=some-namespace&amp;amp;var-app=some-app&lt;/code&gt;. The available variables in this context are &lt;em&gt;namespace&lt;/em&gt;, &lt;em&gt;app&lt;/em&gt; and &lt;em&gt;version&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    &lt;em&gt;Label clash&lt;/em&gt;: you should try to avoid labels clashes within a dashboard.

&lt;/div&gt;

&lt;p&gt;In Kiali, labels for grouping are aggregated in the top toolbar, so if the same label refers to different things depending on the metric, you wouldn&amp;rsquo;t be able to distinguish them in the UI. For that reason, ideally, labels should not have too generic names in Prometheus.
For instance labels named &amp;ldquo;id&amp;rdquo; for both memory spaces and buffer pools would better be named &amp;ldquo;space_id&amp;rdquo; and &amp;ldquo;pool_id&amp;rdquo;. If you have control on label names, it&amp;rsquo;s an important aspect to take into consideration.
Else, it is up to you to organize dashboards with that in mind, eventually splitting them into smaller ones to resolve clashes.&lt;/p&gt;


&lt;div class=&#34;alert alert-success&#34; role=&#34;alert&#34;&gt;


    &lt;em&gt;Modifying Built-in Dashboards&lt;/em&gt;: If you want to modify or remove a built-in dashboard, you can set its new definition in the Kiali CR&amp;rsquo;s &lt;code&gt;spec.custom_dashboards&lt;/code&gt;. Simply define a custom dashboard with the same name as the built-in dashboard. To remove a built-in dashboard so Kiali doesn&amp;rsquo;t use it, simply define a custom dashboard by defining only its name with no other data associated with it (e.g. in &lt;code&gt;spec.custom_dashboards&lt;/code&gt; you add a list item that has &lt;code&gt;- name: &amp;lt;name of built-in dashboard to remove&amp;gt;&lt;/code&gt;.

&lt;/div&gt;

&lt;h3 id=&#34;dashboard-scope&#34;&gt;Dashboard scope&lt;/h3&gt;
&lt;p&gt;The custom dashboards defined in the Kiali CR are available for all workloads in all namespaces.&lt;/p&gt;
&lt;p&gt;Additionally, new custom dashboards can be created for a given namespace or workload, using the &lt;code&gt;dashboards.kiali.io/templates&lt;/code&gt; annotation.&lt;/p&gt;
&lt;p&gt;This is an example where a &amp;ldquo;Custom Envoy&amp;rdquo; dashboard will be available for all applications and workloads for the &lt;code&gt;default&lt;/code&gt; namespace:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dashboards.kiali.io/templates&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      - name: custom_envoy
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        title: Custom Envoy
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        discoverOn: &amp;#34;envoy_server_uptime&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        items:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;          - chart:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;              name: &amp;#34;Pods uptime&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;              spans: 12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;              metricName: &amp;#34;envoy_server_uptime&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;              dataType: &amp;#34;raw&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This other example will create an additional &amp;ldquo;Active Listeners&amp;rdquo; dashboard only on &lt;code&gt;details-v1&lt;/code&gt; workload:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;apps/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Deployment&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;details-v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;details&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;replicas&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;details&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;template&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;details&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dashboards.kiali.io/templates&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;          - name: envoy_listeners
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;            title: Active Listeners
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;            discoverOn: &amp;#34;envoy_listener_manager_total_listeners_active&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;            items:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;              - chart:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;                  name: &amp;#34;Total Listeners&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;                  spans: 12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;                  metricName: &amp;#34;envoy_listener_manager_total_listeners_active&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;                  dataType: &amp;#34;raw&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;bookinfo-details&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;containers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;details&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;docker.io/istio/examples-bookinfo-details-v1:1.16.2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imagePullPolicy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;IfNotPresent&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ports&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;containerPort&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;9080&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;securityContext&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;runAsUser&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1000&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;units&#34;&gt;Units&lt;/h2&gt;
&lt;p&gt;Some units are recognized in Kiali and scaled appropriately when displayed on charts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;unit: &amp;quot;seconds&amp;quot;&lt;/code&gt; can be scaled down to &lt;code&gt;ms&lt;/code&gt;, &lt;code&gt;µs&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unit: &amp;quot;bytes-si&amp;quot;&lt;/code&gt; and &lt;code&gt;unit: &amp;quot;bitrate-si&amp;quot;&lt;/code&gt; can be scaled up to &lt;code&gt;kB&lt;/code&gt;, &lt;code&gt;MB&lt;/code&gt; (etc.) using &lt;a href=&#34;https://en.wikipedia.org/wiki/International_System_of_Units&#34;&gt;SI / metric system&lt;/a&gt;. The aliases &lt;code&gt;unit: &amp;quot;bytes&amp;quot;&lt;/code&gt; and &lt;code&gt;unit: &amp;quot;bitrate&amp;quot;&lt;/code&gt; can be used instead.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unit: &amp;quot;bytes-iec&amp;quot;&lt;/code&gt; and &lt;code&gt;unit: &amp;quot;bitrate-iec&amp;quot;&lt;/code&gt; can be scaled up to &lt;code&gt;KiB&lt;/code&gt;, &lt;code&gt;MiB&lt;/code&gt; (etc.) using &lt;a href=&#34;https://en.wikipedia.org/wiki/IEEE_1541-2002&#34;&gt;IEC standard / IEEE 1541-2002&lt;/a&gt; (scale by powers of 2).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other units will fall into the default case and be scaled using SI standard. For instance, &lt;code&gt;unit: &amp;quot;m&amp;quot;&lt;/code&gt; for meter can be scaled up to &lt;code&gt;km&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;prometheus-configuration&#34;&gt;Prometheus Configuration&lt;/h2&gt;
&lt;p&gt;Kiali custom dashboards work exclusively with Prometheus, so it must be configured correctly to pull your application metrics.&lt;/p&gt;
&lt;p&gt;If you are using the demo Istio installation with addons, your Prometheus instance should already be correctly configured and you can skip to the next section; with the exception of Istio 1.6.x where
&lt;a href=&#34;https://github.com/istio/istio/issues/24075#issuecomment-635281531&#34;&gt;you need customize the ConfigMap, or install Istio with the flag&lt;/a&gt; &lt;code&gt;--set meshConfig.enablePrometheusMerge=true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;using-another-prometheus-instance&#34;&gt;Using another Prometheus instance&lt;/h3&gt;
&lt;p&gt;You can use a different instance of Prometheus for these metrics, as opposed to Istio metrics. This second Prometheus instance can be configured from the &lt;em&gt;Kiali CR&lt;/em&gt; when using the Kiali operator, or &lt;em&gt;ConfigMap&lt;/em&gt; otherwise:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_services&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;URL_TO_PROMETHEUS_SERVER_FOR_CUSTOM_DASHBOARDS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kubernetes_namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;URL_TO_PROMETHEUS_SERVER_FOR_ISTIO_METRICS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For more details on this configuration, such as Prometheus authentication options, &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.external_services.custom_dashboards&#34;&gt;check the Kiali CR Reference page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You must make sure that this Prometheus instance is correctly configured to scrape your application pods and generates labels that Kiali will understand. Please refer to
&lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config&#34;&gt;this documentation&lt;/a&gt; to setup the &lt;code&gt;kubernetes_sd_config&lt;/code&gt; section. As a reference,
&lt;a href=&#34;https://github.com/istio/istio/blob/907aa731c3f76ad21faac98614751e8ab3531893/install/kubernetes/helm/istio/charts/prometheus/templates/configmap.yaml#L229&#34;&gt;here is&lt;/a&gt; how it is configured in Istio.&lt;/p&gt;
&lt;p&gt;It is important to preserve label mapping, so that Kiali can filter by &lt;em&gt;app&lt;/em&gt; and &lt;em&gt;version&lt;/em&gt;, and to have the same namespace label as defined per Kiali config. Here&amp;rsquo;s a &lt;code&gt;relabel_configs&lt;/code&gt; that allows this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;relabel_configs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;labelmap&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;regex&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;__meta_kubernetes_pod_label_(.+)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;source_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;__meta_kubernetes_namespace]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;replace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;target_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kubernetes_namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;pod-annotations&#34;&gt;Pod Annotations and Auto-discovery&lt;/h2&gt;
&lt;p&gt;Application pods must be annotated for the Prometheus scraper, for example, within a &lt;em&gt;Deployment&lt;/em&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;template&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus.io/scrape&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus.io/port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8080&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus.io/path&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/metrics&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;em&gt;prometheus.io/scrape&lt;/em&gt; tells Prometheus to fetch these metrics or not&lt;/li&gt;
&lt;li&gt;&lt;em&gt;prometheus.io/port&lt;/em&gt; is the port under which metrics are exposed&lt;/li&gt;
&lt;li&gt;&lt;em&gt;prometheus.io/path&lt;/em&gt; is the endpoint path where metrics are exposed, default is /metrics&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kiali will try to discover automatically dashboards that are relevant for a given Application or Workload. To do so, it reads their metrics and try to match them with the &lt;code&gt;discoverOn&lt;/code&gt; field defined on dashboards.&lt;/p&gt;
&lt;p&gt;But if you can&amp;rsquo;t rely on automatic discovery, you can explicitly annotate the pods to associate them with Kiali dashboards.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;template&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# (prometheus annotations...)&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali.io/dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;vertx-server&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;kiali.io/dashboards&lt;/em&gt; is a comma-separated list of dashboard names that Kiali will look for. Each name in the list must match the name of a built-in dashboard or the name of a custom dashboard as defined in the Kial CR&amp;rsquo;s &lt;code&gt;spec.custom_dashboards&lt;/code&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Debugging Kiali</title>
      <link>https://v2-24.kiali.io/docs/configuration/debugging-kiali/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/debugging-kiali/</guid>
      <description>
        
        
        &lt;h2 id=&#34;logs&#34;&gt;Logs&lt;/h2&gt;
&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;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl logs -n istio-system deployment/kiali
&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;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;logger&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;log_level&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;debug&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By default, Kiali will log messages in a basic text format. You can have Kiali log messages in JSON format, which can sometimes make reading, querying, and filtering the logs easier:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;logger&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;log_format&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;json&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;filtering-logs&#34;&gt;Filtering logs&lt;/h3&gt;
&lt;p&gt;You may want to pinpoint specific log messages in the Kiali logs. The following are different commands and expressions you can use in order to filter the logs to help expose messages you are most interested in. There are two sets of commands/expressions documented below: one using &lt;code&gt;grep&lt;/code&gt; and &lt;code&gt;sed&lt;/code&gt; if Kiali is logging its messages in simple text format, and the other using &lt;a href=&#34;https://jqlang.org/&#34;&gt;&lt;code&gt;jq&lt;/code&gt;&lt;/a&gt; if Kiali is logging its messages in JSON format. (Note that &lt;code&gt;jq&lt;/code&gt; will format each JSON message into multiple lines to read the JSON easier. Pass the &lt;code&gt;-c&lt;/code&gt; option to &lt;code&gt;jq&lt;/code&gt; to condense the JSON into one line per log message - it may be harder to read, but will reduce the amount of lines considerably.)&lt;/p&gt;
&lt;p&gt;Note that all commands/expressions below should have the Kiali logs piped into its stdin. Usually this means using &lt;code&gt;kubectl&lt;/code&gt; to get the logs from Kiali and pipe them, like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs -n istio-system deployments/kiali &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &amp;lt;...commands/expressions here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;remove-log-levels&#34;&gt;Remove log levels&lt;/h4&gt;
&lt;p&gt;If you have enabled the log level of &amp;ldquo;trace&amp;rdquo;, the Kiali logs will contain a large amount of messages. If you have a hard time sifting through all of those messages, rather than reconfigure Kiali with a different log level you can simply filter out the trace messages.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep -v &#39; TRC &#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -R &#39;fromjson? | select(.level != &amp;quot;trace&amp;quot;)&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;If you want to remove both &amp;ldquo;trace&amp;rdquo; and &amp;ldquo;debug&amp;rdquo; level messages (leaving &amp;ldquo;info&amp;rdquo; and higher priority messages):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep -vE &#39; (TRC|DBG) &#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -R &#39;fromjson? | select(.level != &amp;quot;trace&amp;quot; and .level != &amp;quot;debug&amp;quot;)&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br/&gt;
&lt;h4 id=&#34;show-logs-for-only-a-single-request&#34;&gt;Show logs for only a single request&lt;/h4&gt;
&lt;p&gt;Some log messages are associated with a single, specific request. You can obtain all the logs associated with any specific request given a request ID. To determine which request ID you want to use as a filter, you first find all the request IDs in the logs:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep -o &#39;request-id=[^ ]*&#39; | sed &#39;s/^request-id=//&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -rR &#39;fromjson? | select(has(&amp;quot;request-id&amp;quot;)) | .&amp;quot;request-id&amp;quot;&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;Pick a request ID, and use it to retrieve all the logs associated with that request:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep &#39;request-id=abc123&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -rR &#39;fromjson? | select(.&amp;quot;request-id&amp;quot; == &amp;quot;abc123&amp;quot;)&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;But just having a list of every request ID is likely not enough. You most likely want to look at the logs for requests for a specific Kiali API (like the graph generation API). To see all the different routes into the Kiali API server that were requested, you can get their route names like this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep -o &#39;route=[^ ]*&#39; | sed &#39;s/^route=//&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -rR &#39;fromjson? | select(.route) | .route&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;The &lt;code&gt;GraphNamespaces&lt;/code&gt; route is an important one - it is the API that is used to generate the main Kiali graphs. If you want to see all the IDs for all requests to this API, you can do this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep &#39;route=GraphNamespaces&#39; | grep -o &#39;request-id=[^ ]*&#39; | sed &#39;s/^request-id=//&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -rR &#39;fromjson? | select(.route == &amp;quot;GraphNamespaces&amp;quot;) | .[&amp;quot;request-id&amp;quot;]&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;Now you can take one of those request IDs and obtain logs for it (as explained earlier) to see all the logs for that request to generate a graph.&lt;/p&gt;
&lt;p&gt;Some routes that may be of interest are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AggregateMetrics&lt;/code&gt;: aggregate metrics for a given resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AppMetrics&lt;/code&gt;, &lt;code&gt;ServiceMetrics&lt;/code&gt;, &lt;code&gt;WorkloadMetrics&lt;/code&gt;: gets metrics for a given resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AppSpans&lt;/code&gt;, &lt;code&gt;ServiceSpans&lt;/code&gt;, &lt;code&gt;WorkloadSpans&lt;/code&gt;: gets tracing spans for a given resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AppTraces&lt;/code&gt;, &lt;code&gt;ServiceTraces&lt;/code&gt;, &lt;code&gt;WorkloadTraces&lt;/code&gt;: gets traces for a given resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Authenticate&lt;/code&gt;: authenticates users&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ClustersHealth&lt;/code&gt;: gets the health data for all resources in a namespace within a single cluster&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ConfigValidationSummary&lt;/code&gt;: gets the validation summary for all resources in given namespaces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ControlPlaneMetrics&lt;/code&gt;: gets metrics for a single control plane&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GraphAggregate&lt;/code&gt;: generates a node detail graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GraphNamespaces&lt;/code&gt;: generates a namespaces graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IstioConfigDetails&lt;/code&gt;: gets the content of an Istio configuration resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IstioConfigList&lt;/code&gt;: gets the list of Istio configuration resources in a namespace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MeshGraph&lt;/code&gt;: generates a mesh graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NamespaceList&lt;/code&gt;: gets the list of available namespaces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NamespaceMetrics&lt;/code&gt;: gets metrics for a single namespace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NamespaceValidationSummary&lt;/code&gt;: gets the validation summary for all resources in a given namespace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TracesDetails&lt;/code&gt;: gets detailed information on a specific trace&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;show-logs-of-processing-times&#34;&gt;Show logs of processing times&lt;/h4&gt;
&lt;p&gt;Kiali collects metrics of its internal systems to track its performance (see the next section, &amp;ldquo;Metrics&amp;rdquo;). Many of these metrics use a timer to measure the duration of time that Kiali takes to process some unit of work (for example, the time it takes to generate a graph). Kiali will log these duration times as well as export them to Prometheus. To see what metric timers Kiali is tracking internally, you can do this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep -o &#39;timer=[^ ]*&#39; | sed &#39;s/^timer=//&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -rR &#39;fromjson? | select(.timer) | .timer&#39; | sort -u&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;Note that Kiali will not log times that are under 3 seconds since those are deemed uninteresting and logging them will make the logs &amp;ldquo;noisy&amp;rdquo;. Prometheus will still collect those metrics, so they are still being recorded.&lt;/p&gt;
&lt;p&gt;One timer is especially useful - the timer named &amp;ldquo;GraphGenerationTime&amp;rdquo;. You can query the log for all the graph generation times like this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;text:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grep &#39;timer=GraphGenerationTime&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json:&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jq -R &#39;fromjson? | select(.timer == &amp;quot;GraphGenerationTime&amp;quot;)&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br/&gt;Each log message contains a &lt;code&gt;duration&lt;/code&gt; attribute - this is the amount of time it took to generate the graph (or parts of the graph). Look at the additional attributes for details on what the timer measured.&lt;/p&gt;
&lt;p&gt;Some timers that may be of interest are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;APIProcessingTime&lt;/code&gt;: The time it takes to process an API request in its entirety&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CheckerProcessingTime&lt;/code&gt;: The time it takes to run a specific validation checker&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GraphAppenderTime&lt;/code&gt;: The time it takes for an appender to decorate a graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GraphGenerationTime&lt;/code&gt;: The time it takes to generate a full graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PrometheusProcessingTime&lt;/code&gt;:  The time it takes to run Prometheus queries&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SingleValidationProcessingTime&lt;/code&gt;: The time it takes to validate an Istio configuration resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TracingProcessingTime&lt;/code&gt;: The time it takes to run Tracing queries&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ValidationProcessingTime&lt;/code&gt;: The time it takes to validate a set of Istio configuration resources&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;metrics&#34;&gt;Metrics&lt;/h2&gt;
&lt;p&gt;Kiali has a &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.server.observability.metrics.enabled&#34;&gt;metrics endpoint that can be enabled&lt;/a&gt;, allowing Prometheus to collect Kiali metrics. You can then use Prometheus (or Kiali itself) to examine and analyze these metrics.&lt;/p&gt;
&lt;p&gt;The metrics server uses the same TLS configuration as the main Kiali server. When TLS is enabled (via &lt;code&gt;identity.cert_file&lt;/code&gt; and &lt;code&gt;identity.private_key_file&lt;/code&gt;), the metrics endpoint requires HTTPS and enforces the same &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/tls-policy&#34;&gt;TLS policy&lt;/a&gt; (versions and cipher suites). When TLS is not configured, the metrics endpoint uses plain HTTP.&lt;/p&gt;
&lt;h3 id=&#34;configuring-prometheus-to-scrape-kiali-metrics&#34;&gt;Configuring Prometheus to Scrape Kiali Metrics&lt;/h3&gt;
&lt;p&gt;When Kiali&amp;rsquo;s metrics endpoint is enabled, the Kiali pod includes standard &lt;code&gt;prometheus.io/*&lt;/code&gt; annotations that many Prometheus deployments use for auto-discovery:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prometheus.io/scrape: &amp;quot;true&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.io/port: &amp;quot;&amp;lt;metrics-port&amp;gt;&amp;quot;&lt;/code&gt; (default: 9090)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.io/scheme: &amp;quot;http&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;https&amp;quot;&lt;/code&gt; (depending on TLS configuration)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;For HTTP (no TLS configured):&lt;/strong&gt; If your Prometheus setup is configured to honor &lt;code&gt;prometheus.io/*&lt;/code&gt; pod annotations (for example, the standard &lt;code&gt;kubernetes-pods&lt;/code&gt; scrape job), it can scrape Kiali metrics without additional configuration. If you&amp;rsquo;re using Prometheus Operator and do not have a pod-annotation scrape job, create a &lt;code&gt;PodMonitor&lt;/code&gt; or &lt;code&gt;ServiceMonitor&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For HTTPS (TLS configured):&lt;/strong&gt; When TLS is enabled, Prometheus needs additional configuration to properly scrape the metrics endpoint. This is particularly relevant on OpenShift where Kiali automatically uses &lt;a href=&#34;https://docs.openshift.com/container-platform/latest/security/certificates/service-serving-certificate.html&#34;&gt;service-serving certificates&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The challenge is that service-serving certificates are valid for the &lt;strong&gt;Service DNS name&lt;/strong&gt; (e.g., &lt;code&gt;kiali.istio-system.svc&lt;/code&gt;), not for pod IP addresses. When Prometheus scrapes pods directly by IP address (as the standard &lt;code&gt;kubernetes-pods&lt;/code&gt; job does), TLS certificate validation fails. The solutions below address this by ensuring Prometheus uses the Service DNS name for TLS validation, even when the actual scrape target is a pod IP.&lt;/p&gt;
&lt;h4 id=&#34;option-1-servicemonitor-prometheus-operator&#34;&gt;Option 1: ServiceMonitor (Prometheus Operator)&lt;/h4&gt;
&lt;p&gt;If you&amp;rsquo;re using the &lt;a href=&#34;https://prometheus-operator.dev/&#34;&gt;Prometheus Operator&lt;/a&gt;, create a &lt;code&gt;ServiceMonitor&lt;/code&gt; that scrapes through the Kiali Service (where the certificate is valid):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;monitoring.coreos.com/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ServiceMonitor&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;istio-system &lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Or your Kiali namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;endpoints&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;tcp-metrics&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scheme&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;https&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tlsConfig&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# For OpenShift cluster monitoring, the service CA is available at this path&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;caFile&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;/etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# serverName must match the certificate&amp;#39;s SAN&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;serverName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali.istio-system.svc&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespaceSelector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchNames&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;istio-system &lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Or your Kiali namespace&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app.kubernetes.io/name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;&lt;strong&gt;CA File Path Note&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;caFile&lt;/code&gt; path shown above (&lt;code&gt;/etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt&lt;/code&gt;) is specific to &lt;strong&gt;OpenShift&amp;rsquo;s built-in cluster monitoring&lt;/strong&gt; Prometheus. If you&amp;rsquo;re using a different Prometheus deployment, you&amp;rsquo;ll need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mount the OpenShift service CA into your Prometheus pod&lt;/li&gt;
&lt;li&gt;Adjust the &lt;code&gt;caFile&lt;/code&gt; path accordingly&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To get the service CA, create a ConfigMap with the annotation &lt;code&gt;service.beta.openshift.io/inject-cabundle: &amp;quot;true&amp;quot;&lt;/code&gt; and OpenShift will automatically populate it with the service CA certificate.&lt;/p&gt;


&lt;/div&gt;

&lt;h4 id=&#34;option-2-static-scrape-configuration&#34;&gt;Option 2: Static Scrape Configuration&lt;/h4&gt;
&lt;p&gt;For non-Operator Prometheus deployments, add a scrape job to your Prometheus configuration file (&lt;code&gt;prometheus.yml&lt;/code&gt;) that targets the Kiali Service:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scrape_configs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;job_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;kiali&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scheme&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;https&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ca_file&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;/path/to/service-ca.crt&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;server_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali.istio-system.svc&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;static_configs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;targets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;kiali.istio-system.svc:9090&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;option-3-skip-certificate-verification-not-recommended&#34;&gt;Option 3: Skip Certificate Verification (Not Recommended)&lt;/h4&gt;
&lt;p&gt;For testing purposes only, you can configure Prometheus to skip certificate verification. In a ServiceMonitor resource, add &lt;code&gt;insecureSkipVerify&lt;/code&gt; to the &lt;code&gt;tlsConfig&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tlsConfig&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecureSkipVerify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or in your Prometheus configuration file (&lt;code&gt;prometheus.yml&lt;/code&gt;), add &lt;code&gt;insecure_skip_verify&lt;/code&gt; to the &lt;code&gt;tls_config&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-danger&#34; role=&#34;alert&#34;&gt;


    &lt;strong&gt;Security Warning:&lt;/strong&gt; Skipping certificate verification defeats the purpose of TLS and makes your metrics collection vulnerable to man-in-the-middle attacks. Only use this for testing, never in production.

&lt;/div&gt;

&lt;h3 id=&#34;viewing-and-analyzing-kiali-metrics&#34;&gt;Viewing and Analyzing Kiali Metrics&lt;/h3&gt;
&lt;p&gt;To see the metrics that are currently being emitted by Kiali, you can run the following command which simply parses the metrics endpoint data and outputs all the metrics it finds:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# For HTTP (when TLS not configured):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -s http://&amp;lt;KIALI_HOSTNAME&amp;gt;:9090/metrics &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; grep -o &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;^# HELP kiali_.*&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; awk &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# For HTTPS (when TLS configured):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -s -k https://&amp;lt;KIALI_HOSTNAME&amp;gt;:9090/metrics &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; grep -o &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;^# HELP kiali_.*&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; awk &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Kiali UI itself graphs some of these metrics. In the Kiali UI, navigate to the &lt;em&gt;Kiali&lt;/em&gt; workload and select the &amp;ldquo;Kiali Internal Metrics&amp;rdquo; tab:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/kiali_own_metrics.png&#34; alt=&#34;Kiali metrics&#34;&gt;&lt;/p&gt;
&lt;p&gt;Use the Kiali UI to analyze these metrics in the same way that you would analyze your application metrics. (Note that &amp;ldquo;Tracing processing duration&amp;rdquo; will be empty if you have not &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/tracing/&#34;&gt;integrated your Tracing backend with Kiali&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Because these are metrics collected by Promtheus, you can analyze Kiali&amp;rsquo;s metrics through Prometheus queries and the Prometheus UI. Some of the more interesting Prometheus queries are listed below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API routes
&lt;ul&gt;
&lt;li&gt;Average latency per API route: &lt;code&gt;rate(kiali_api_processing_duration_seconds_sum[5m]) / rate(kiali_api_processing_duration_seconds_count[5m])&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Request rate per API route: &lt;code&gt;rate(kiali_api_processing_duration_seconds_count[5m])&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;95th percentile latency per API route: &lt;code&gt;histogram_quantile(0.95, rate(kiali_api_processing_duration_seconds_bucket[5m]))&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Alert: 95th Percentile Latency &amp;gt; 5s: &lt;code&gt;histogram_quantile(0.95, rate(kiali_api_processing_duration_seconds_bucket[5m])) &amp;gt; 5s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Top 5 slowest API routes (avg latency over 5m): &lt;code&gt;topk(5, rate(kiali_api_processing_duration_seconds_sum[5m]) / rate(kiali_api_processing_duration_seconds_count[5m]))&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Graph
&lt;ul&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_graph_generation_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about the graph generator.&lt;/li&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_graph_appender_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about the graph generator appenders. This helps analyze the performance of the individual appenders that are used to build and decorate the graphs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Tracing
&lt;ul&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_tracing_processing_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about the groups of different Tracing queries. This helps analyze the performance of the Kiali/Tracing integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Metrics
&lt;ul&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_prometheus_processing_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about the different groups of Prometheus queries. This help analyze the performance of the Kiali/Prometheus integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Validations
&lt;ul&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_validation_processing_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about Istio configuration validation. This helps analyze the performance of Istio configuration validation as a whole.&lt;/li&gt;
&lt;li&gt;Use the same queries as &amp;ldquo;API routes&amp;rdquo; but with the metric &lt;code&gt;kiali_checker_processing_duration_seconds_[count,sum,bucket]&lt;/code&gt; to get information about the different validation checkers. This helps analyze the performance of the individual checkers performed during the Istio configuration validation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Failures
&lt;ul&gt;
&lt;li&gt;Failures per API route (in the past hour): &lt;code&gt;sum by (route) (rate(kiali_api_failures_total[1h]))&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Error rate percentage per API route: &lt;code&gt;100 * sum by (route) (rate(kiali_api_failures_total[1h])) / sum by (route) (rate(kiali_api_processing_duration_seconds_count[1h]))&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The number of failures per API route in the past 30 minutes: &lt;code&gt;increase(kiali_api_failures_total[30m])&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The top 5 API routes with failures in the past 30 minutes &lt;code&gt;topk(5, increase(kiali_api_failures_total[30m]))&lt;/code&gt;
&lt;br/&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tracing&#34;&gt;Tracing&lt;/h2&gt;
&lt;p&gt;Kiali provides the ability to emit debugging traces to the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/tracing&#34;&gt;distributed tracing&lt;/a&gt; platform, Jaeger or Grafana Tempo.&lt;/p&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    From Kiali 1.79, the feature of Kiali emitting tracing data into Jaeger format &lt;strong&gt;has been removed&lt;/strong&gt;.

&lt;/div&gt;

&lt;p&gt;The traces can be sent in HTTP, HTTPS or gRPC protocol. It is also possible to use TLS. When &lt;em&gt;tls_enabled&lt;/em&gt; is set to true, one of the options &lt;em&gt;skip_verify&lt;/em&gt; or &lt;em&gt;ca_name&lt;/em&gt; should be specified.&lt;/p&gt;
&lt;p&gt;The traces are sent in OTel format, indicated in the &lt;em&gt;collector_type&lt;/em&gt; setting.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;server&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;observability&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tracing&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;collector_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jaeger-collector.istio-system:4317&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;otel&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;grpc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ca_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/tls.crt&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Usually, the tracing platforms expose different ports to collect traces in distinct formats and protocols:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Jaeger collector accepts OpenTelemetry Protocol over HTTP (4318) and gRPC (4317).&lt;/li&gt;
&lt;li&gt;The Grafana Tempo distributor accepts OpenTelemetry Protocol over HTTP (4318) and gRPC (4317). It can be configured to accept TLS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The traces emitted by Kiali can be searched in the &lt;em&gt;Kiali&lt;/em&gt; workload:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/kiali_own_traces.png&#34; alt=&#34;Kiali traces&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;tracing-integration&#34;&gt;Tracing Integration&lt;/h3&gt;
&lt;p&gt;Sometimes integration with tracing can be complex, but since version 2.11, a tool is available to help with the configuration.
It&amp;rsquo;s available on the mesh page, by clicking on the tracing node. From there, under &amp;ldquo;Configuration Tester,&amp;rdquo; it will show 2 different features:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/tracing_tool.png&#34; alt=&#34;Tracing tool&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Discovery tool&lt;/li&gt;
&lt;li&gt;Configuration tester&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The discovery feature will show possible valid configurations that might work based on the tracing open ports.
It&amp;rsquo;s important that at least the URL is properly defined - &lt;code&gt;external_services.tracing.internal_url&lt;/code&gt; if it&amp;rsquo;s inside the cluster, or &lt;code&gt;external_services.tracing.external_url&lt;/code&gt; if it&amp;rsquo;s outside.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;logs&lt;/code&gt; section will provide more insights about the tests done, the open ports, the errors found, that can help to troubleshoot in case of more complex scenarios, like urls with tenants or https.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/tracing_discovery.png&#34; alt=&#34;Tracing discovery&#34;&gt;&lt;/p&gt;
&lt;p&gt;The configuration tester allows to test a specific configuration without having to edit the config map and wait for the Kiali pod to be restarted.
Please note that the configuration will not be saved permanently.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/configuration_tester.png&#34; alt=&#34;Tracing configuration tester&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;profiler&#34;&gt;Profiler&lt;/h2&gt;
&lt;p&gt;The Kial Server is integrated with the Go pprof profiler. By default, the integration is disabled. If you want the Kiali Server to generate profile reports, enable it in the Kiali CR:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;server&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;profiler&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once the profiler is enabled, you can access the profile reports by pointing your browser to the &lt;code&gt;&amp;lt;kiali-root-url&amp;gt;/debug/pprof&lt;/code&gt; endpoint and click the link to the profile report you want. You can obtain a specific profile report by appending the name of the profile to the URL. For example, if your Kiali Server is found at the root URL of &amp;ldquo;http://localhost:20001/kiali&amp;rdquo;, and you want the heap profile report, the URL &lt;code&gt;http://localhost:20001/kiali/debug/pprof/heap&lt;/code&gt; will provide the data for that report.&lt;/p&gt;
&lt;p&gt;Go provides a pprof tool that you can then use to visualize the profile report. This allows you to analyze the data to help find potential problems in the Kiali Server itself. For example, you can start the pprof UI on port 8080 which allows you to see the profile data in your browser:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;go tool pprof -http :8080 http://localhost:20001/kiali/debug/pprof/heap
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can download a profile report and store it as a file for later analysis. For example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -o pprof.txt http://localhost:20001/kiali/debug/pprof/heap
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can then examine the data found in the profile report:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;go tool pprof -http :8080 ./pprof.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Your browser will be opened to &lt;code&gt;http://localhost:8080/ui&lt;/code&gt; which allows you to see the profile report.&lt;/p&gt;
&lt;h2 id=&#34;kiali-cr-status&#34;&gt;Kiali CR Status&lt;/h2&gt;
&lt;p&gt;When you install the Kiali Server via the Kiali Operator, you do so by creating a Kiali CR. One quick way to debug the status of a Kiali Server installation is to look at the Kiali CR&amp;rsquo;s &lt;code&gt;status&lt;/code&gt; field (e.g. &lt;code&gt;kubectl get kiali --all-namespaces -o jsonpath=&#39;{..status}&#39;&lt;/code&gt;). The operator will report any installation errors within this Kiali CR status. If the Kiali Server fails to install, always check the Kiali CR status field first because in many instances you will find an error message there that can provide clear guidance on what to do next.&lt;/p&gt;
&lt;h2 id=&#34;debugging-the-kiali-operator&#34;&gt;Debugging the Kiali Operator&lt;/h2&gt;
&lt;p&gt;The Kiali Operator is built on the Ansible Operator SDK. It has multiple independent logging controls that each affect a different subsystem. They are listed here in order of how commonly they are needed for debugging.&lt;/p&gt;
&lt;h3 id=&#34;ansible-playbook-verbosity&#34;&gt;Ansible Playbook Verbosity&lt;/h3&gt;
&lt;p&gt;This controls how verbose the Ansible playbook output is during reconciliation (equivalent to the &lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;-vv&lt;/code&gt;, &lt;code&gt;-vvv&lt;/code&gt; flags passed to &lt;code&gt;ansible-runner&lt;/code&gt;). This is useful for debugging issues within the Ansible playbook logic itself, such as seeing the values of variables or the details of each task.&lt;/p&gt;
&lt;p&gt;Set the &lt;code&gt;ansible.sdk.operatorframework.io/verbosity&lt;/code&gt; annotation on the Kiali or OSSMConsole CR. The value is an integer from 0 (default, no extra verbosity) to 5 (most verbose):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ansible.sdk.operatorframework.io/verbosity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See the &lt;a href=&#34;https://sdk.operatorframework.io/docs/building-operators/ansible/reference/advanced_options/&#34;&gt;Ansible Operator SDK advanced options documentation&lt;/a&gt; for more details on this.&lt;/p&gt;
&lt;h3 id=&#34;ansible-debug-logs&#34;&gt;Ansible Debug Logs&lt;/h3&gt;
&lt;p&gt;When set to &lt;code&gt;true&lt;/code&gt;, this causes the operator to print the full &lt;code&gt;ansible-runner&lt;/code&gt; stdout after each reconciliation completes. This is useful for seeing the complete Ansible output including all task results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When Installed via Helm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Set the &lt;code&gt;debug.enabled&lt;/code&gt; value:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;helm upgrade kiali-operator kiali/kiali-operator --set debug.enabled&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;When Installed via OLM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Add the environment variable to the Subscription&amp;rsquo;s &lt;code&gt;spec.config.env&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ANSIBLE_DEBUG_LOGS&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;go-structured-log-level&#34;&gt;Go Structured Log Level&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--zap-log-level&lt;/code&gt; controls the log level of the Go-based controller-runtime framework that manages the operator&amp;rsquo;s reconciliation loop. This is the setting needed for diagnosing &lt;em&gt;why&lt;/em&gt; reconciliation is being triggered, which is typically only necessary when investigating unexpected or periodic reconciliations.&lt;/p&gt;
&lt;p&gt;The supported levels are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;info&lt;/code&gt;&lt;/strong&gt;: Logs startup information, controller events, and proxy cache reads.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;debug&lt;/code&gt;&lt;/strong&gt;: Additionally logs the event handler messages that tell you exactly what event triggered each reconciliation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When set to &lt;code&gt;debug&lt;/code&gt;, the operator will emit a log message like the following immediately before each reconciliation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;debug&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2026-02-10T20:06:23Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ansible.handler&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Metrics handler event&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;Event type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Update&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;GroupVersionKind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali.io/v1alpha1, Kind=Kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;Namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali-operator&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The key fields in this message are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Event type&lt;/code&gt;: One of &lt;code&gt;Create&lt;/code&gt;, &lt;code&gt;Update&lt;/code&gt;, &lt;code&gt;Delete&lt;/code&gt;, or &lt;code&gt;Generic&lt;/code&gt; - tells you what kind of change triggered the reconciliation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GroupVersionKind&lt;/code&gt;: Which resource type changed (e.g. &lt;code&gt;kiali.io/v1alpha1, Kind=Kiali&lt;/code&gt; or &lt;code&gt;kiali.io/v1alpha1, Kind=OSSMConsole&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Name&lt;/code&gt; / &lt;code&gt;Namespace&lt;/code&gt;: Which specific CR instance was affected.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To find these messages in the logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs deployment/kiali-operator -n &amp;lt;operator-namespace&amp;gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; grep &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;ansible.handler&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Go log level is controlled by the &lt;code&gt;--zap-log-level&lt;/code&gt; container argument on the operator deployment. The method for changing this depends on how the operator was installed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When Installed via Helm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When the operator is installed via Helm, you can patch the Deployment directly since there is no OLM to revert the change:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl patch deployment kiali-operator -n &amp;lt;operator-namespace&amp;gt; --type&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;json&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  -p&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;[{&amp;#34;op&amp;#34;:&amp;#34;replace&amp;#34;,&amp;#34;path&amp;#34;:&amp;#34;/spec/template/spec/containers/0/args/0&amp;#34;,&amp;#34;value&amp;#34;:&amp;#34;--zap-log-level=debug&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To revert back to normal logging, just run that command again with the &lt;code&gt;--zap-log-level&lt;/code&gt; set back to &lt;code&gt;info&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When Installed via OLM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When the operator is installed via OLM (Operator Lifecycle Manager), you cannot patch the Deployment directly because OLM will revert the change. The OLM Subscription &lt;code&gt;config&lt;/code&gt; also does not support overriding container args. Instead, you must patch the ClusterServiceVersion (CSV), which OLM treats as the authoritative source for the deployment spec.&lt;/p&gt;
&lt;p&gt;To enable debug logging:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl patch csv &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;$(&lt;/span&gt;kubectl get csv -n &amp;lt;operator-namespace&amp;gt; --no-headers -o custom-columns&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;NAME:.metadata.name &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; grep &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;^kiali-operator&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  -n &amp;lt;operator-namespace&amp;gt; --type&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;json&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  -p&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;[{&amp;#34;op&amp;#34;:&amp;#34;replace&amp;#34;,&amp;#34;path&amp;#34;:&amp;#34;/spec/install/spec/deployments/0/spec/template/spec/containers/0/args/0&amp;#34;,&amp;#34;value&amp;#34;:&amp;#34;--zap-log-level=debug&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;OLM will automatically roll out a new operator pod with the updated args.&lt;/p&gt;
&lt;p&gt;To revert back to normal logging, just run that command again with the &lt;code&gt;--zap-log-level&lt;/code&gt; set back to &lt;code&gt;info&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    On OpenShift, the operator namespace is typically &lt;code&gt;openshift-operators&lt;/code&gt;. On vanilla Kubernetes with OLM, it is typically &lt;code&gt;operators&lt;/code&gt;.

&lt;/div&gt;

&lt;h3 id=&#34;ansible-task-profiler&#34;&gt;Ansible Task Profiler&lt;/h3&gt;
&lt;p&gt;The operator includes an Ansible task profiler that uses the &lt;code&gt;profile_tasks&lt;/code&gt; Ansible callback plugin. When enabled, it logs the execution time of each Ansible task to the operator pod&amp;rsquo;s log output at the end of each reconciliation run. This is useful for identifying slow tasks in the operator&amp;rsquo;s Ansible playbooks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When Installed via Helm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Set the &lt;code&gt;debug.enableProfiler&lt;/code&gt; value:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;helm upgrade kiali-operator kiali/kiali-operator --set debug.enableProfiler&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;When Installed via OLM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Set the &lt;code&gt;ANSIBLE_CONFIG&lt;/code&gt; environment variable to the profiler configuration in the Subscription&amp;rsquo;s &lt;code&gt;spec.config.env&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ANSIBLE_CONFIG&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/opt/ansible/ansible-profiler.cfg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To disable the profiler, set the value back to &lt;code&gt;/etc/ansible/ansible.cfg&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;The following are just some examples of how you can use the Kiali signals to help diagnose problems within Kiali itself.&lt;/p&gt;
&lt;h3 id=&#34;use-log-messages-to-find-out-what-is-slow&#34;&gt;Use log messages to find out what is slow&lt;/h3&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    The examples below assume Kiali is outputting logs in JSON format (&lt;code&gt;spec.deployment.logger.log_format&lt;/code&gt; = &lt;code&gt;json&lt;/code&gt;). Use &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, and related tools to query logs if Kiali is logging the output as &lt;code&gt;text&lt;/code&gt;.

&lt;/div&gt;

&lt;p&gt;Make sure you turn on trace logging (&lt;code&gt;spec.deployment.logger.log_level&lt;/code&gt; = &lt;code&gt;trace&lt;/code&gt;) in order to get the log messages needed for this kind of analysis.&lt;/p&gt;
&lt;p&gt;Find all the logs that show APIs with long execution times. Because Kiali is not logging times faster than 3 seconds, this query will return all the routes (i.e. the API endpoints) that were 3 seconds or slower:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs -n istio-system deployments/kiali &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  jq -rR &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;fromjson? | select(.timer) | .route&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  sort -u
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Suppose that returned only one route name - &lt;code&gt;GraphNamespaces&lt;/code&gt;. This means the main graph page was slow. Let&amp;rsquo;s examine the logs for a request for that API. We first find the ID of the last request that was made for the GraphNamespaces API:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs -n istio-system deployments/kiali &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  jq -rR &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;fromjson? | select(.route == &amp;#34;GraphNamespaces&amp;#34;) | .[&amp;#34;request-id&amp;#34;]&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; tail -n &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Take the ID string that was output (in this example, it is &lt;code&gt;d0staq6nq35s73b6mdug&lt;/code&gt;) and use it to examine the logs for that request only:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs -n istio-system deployments/kiali &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  jq -rR &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;fromjson? | select(.&amp;#34;request-id&amp;#34; == &amp;#34;d0staq6nq35s73b6mdug&amp;#34;)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To make the output less verbose, we can eliminate some of the message&amp;rsquo;s attributes that we do not need to see:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl logs -n istio-system deployments/kiali &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  jq -rR &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;fromjson? | select(.&amp;#34;request-id&amp;#34; == &amp;#34;d0staq6nq35s73b6mdug&amp;#34;) | \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;  del(.[&amp;#34;level&amp;#34;, &amp;#34;route&amp;#34;, &amp;#34;route-pattern&amp;#34;, &amp;#34;group&amp;#34;, &amp;#34;request-id&amp;#34;])&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output of that command is the log messages, in chronological order, as the request to generate the graph was processed in the Kiali server. Examining timestamps, timer durations, warnings, and other data in these messages can help determine what made the request slow:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Build [versionedApp] graph for [1] namespaces [map[bookinfo:{bookinfo 1m0s false false}]]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Build traffic map for namespace [{bookinfo 1m0s false false}]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Running workload entry appender&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;workloadEntry&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:28Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;WorkloadEntries found: 0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;appender&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;idleNode&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;bookinfo&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;timer&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;GraphAppenderTime&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;duration&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3.153312011s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:31Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Namespace graph appender time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:31Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Generating config for [common] graph...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:31Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Done generating config for [common] graph&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;inject-service-nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;graph-kind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;graph-type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;versionedApp&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;timer&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;GraphGenerationTime&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;duration&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3.280609145s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:31Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Namespace graph generation time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;status-code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;200&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;timer&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;APIProcessingTime&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;duration&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3.280986943s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2025-05-30T15:57:31Z&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;API processing time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Examining those log messages of a single request to generate the graph easily shows that the &lt;code&gt;idleNode&lt;/code&gt; graph appender code is very slow (taking over 3 seconds to complete). Thus, the first thing that should be suspected as the cause of the slow graph generation is the code that generates idle nodes in the graph.&lt;/p&gt;
&lt;h3 id=&#34;use-prometheus-to-find-out-what-is-slow&#34;&gt;Use Prometheus to find out what is slow&lt;/h3&gt;
&lt;p&gt;You can use Prometheus to look at Kiali&amp;rsquo;s metrics to help analyze problems. Even though Kiali does not log metric timers that are faster than 3 seconds, those metrics are still stored in Prometheus.&lt;/p&gt;
&lt;p&gt;We can look at the metrics that are emitted by the graph appenders to see how they are performing. This shows the top-5 slowest graph appenders for this specific Kiali environment - and here we see the &lt;code&gt;idleNode&lt;/code&gt; appender is by far the worst offender. Again, this helps pin-point a cause of slow graph generation - in this case, the &lt;code&gt;idleNode&lt;/code&gt; graph appender code:&lt;/p&gt;
&lt;p&gt;Prometheus query: &lt;code&gt;topk(5, rate(kiali_graph_appender_duration_seconds_sum[5m]) / rate(kiali_graph_appender_duration_seconds_count[5m]))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/prometheus-slow-appender.png&#34; alt=&#34;Prometheus showing slow appender metrics&#34;&gt;&lt;/p&gt;
&lt;p&gt;If you are not sure what exactly is slowing down the Kiali Server, one of the first things to examine is the duration of time each API takes to complete. Here are the top-2 slowest Kiali APIs for this specific Kiali environment:&lt;/p&gt;
&lt;p&gt;Prometheus query: &lt;code&gt;topk(2, rate(kiali_api_processing_duration_seconds_sum[5m]) / rate(kiali_api_processing_duration_seconds_count[5m]))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/prometheus-top-2-apis.png&#34; alt=&#34;Prometheus showing the top-2 slowest Kiali APIs&#34;&gt;&lt;/p&gt;
&lt;p&gt;The above shows that the graph generation is slow. So let&amp;rsquo;s next look at the graph appenders to see if any one of them could be the culprit of the poor performance:&lt;/p&gt;
&lt;p&gt;Prometheus query: &lt;code&gt;topk(5, rate(kiali_graph_appender_duration_seconds_sum[5m]) / rate(kiali_graph_appender_duration_seconds_count[5m]))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/prometheus-top-5-appenders.png&#34; alt=&#34;Prometheus showing the top-5 slowest Kiali graph appenders&#34;&gt;&lt;/p&gt;
&lt;p&gt;In this specific case, it does not look like any one of the appenders is the source of the problem. They all appear to be having issues with poor performance. Since the graph generation relies heavily on querying the Prometheus server, another thing to check is the time it takes for Kiali to query Prometheus:&lt;/p&gt;
&lt;p&gt;Prometheus query: &lt;code&gt;topk(5, rate(kiali_prometheus_processing_duration_seconds_sum[5m]) / rate(kiali_prometheus_processing_duration_seconds_count[5m]))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/prometheus-queries.png&#34; alt=&#34;Prometheus processing metrics&#34;&gt;&lt;/p&gt;
&lt;p&gt;Here it looks like Prometheus itself might be the source of the poor performance. All of the Prometheus queries Kiali is requesting are taking over a full second to complete (some are taking as much as 3.5 seconds). At this point, you should check the Prometheus server and the network connection between Kiali and Prometheus as possible causes of the slow Kiali performance. Perhaps Kiali is asking for so much data from Prometheus, Prometheus cannot keep up. Perhaps there is a network outage causing the Kiali requests to Prometheus being slow. But at least in this case we&amp;rsquo;ve pin-pointed a bottleneck and can narrow our focus when searching for the root cause of the problem.&lt;/p&gt;
&lt;h3 id=&#34;use-kiali-to-find-out-what-is-slow&#34;&gt;Use Kiali to find out what is slow&lt;/h3&gt;
&lt;p&gt;Kiali itself can be used to help find its own internal problems.&lt;/p&gt;
&lt;p&gt;Navigate to the Kiali workload, and select the &lt;em&gt;Kiali Internal Metrics&lt;/em&gt; tab. In this case, we can see some APIs are very slow due to the high p99 and average values. We can eliminate the tracing integration as the source of the problem because all processing of tracing requests are taking an average of about 20ms to complete. However, the graph generation appears to be very slow, taking an average of between 15 and 30 seconds to complete each request:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/kiali-workload-metrics.png&#34; alt=&#34;Kiali workload metrics&#34;&gt;&lt;/p&gt;
&lt;p&gt;The Kiali UI allows you to expand each mini-chart into a full size chart for easier viewing. You can also display the different metric labels as separate chart lines. In this case, the graph is showing the duration times for the GraphNamespaces and GraphWorkload APIs:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/kiali-workload-metrics-ns.png&#34; alt=&#34;Kiali workload graph metrics&#34;&gt;&lt;/p&gt;
&lt;p&gt;The above metric charts clearly show a performance problem in the graph generation. Because the graph generation code requests many Prometheus queries, one of the next things to check is the performance of the Kiali-Prometheus integration. One fast and easy way to see how the Prometheus queries are performing is to look at the Kiali workload&amp;rsquo;s &lt;em&gt;Overview&lt;/em&gt; tab, specifically, the graph shown on the right side. Look at the edge between the Kiali node and the Prometheus node for indications of problems (the edge label will show you throughput numbers; the color of the edge will indicate request errors):&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    This traffic data between Kiali and Prometheus is only available if Kiali is located inside the mesh (e.g. Kiali has an Istio sidecar).

&lt;/div&gt;

&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/kiali-workload-overview.png&#34; alt=&#34;Kiali workload overview&#34;&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Istio Environment</title>
      <link>https://v2-24.kiali.io/docs/configuration/istio/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/istio/</guid>
      <description>
        
        
        &lt;h2 id=&#34;labels-and-resource-names&#34;&gt;Labels and resource names&lt;/h2&gt;
&lt;p&gt;Istio recommends &lt;a href=&#34;https://istio.io/latest/docs/ops/deployment/application-requirements/#pod-requirements&#34;&gt;adding &lt;code&gt;app&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; labels to
pods&lt;/a&gt; to attach this information to telemetry. Kiali relies on correctness of these labels for several features.&lt;/p&gt;
&lt;p&gt;In Istio, it is possible to use a different set of labels, like
&lt;code&gt;app.kubernetes.io/name&lt;/code&gt; and &lt;code&gt;app.kubernetes.io/version&lt;/code&gt;, however you must
configure Kiali to the labels you are using. By default, Kiali uses Istio&amp;rsquo;s
recommended labels:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app_label_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;app&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version_label_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;Although Istio lets you use different labels on different pods, Kiali can only
use a single set.&lt;/p&gt;
&lt;p&gt;For example, Istio lets you use the &lt;code&gt;app&lt;/code&gt; label in one pod and the
&lt;code&gt;app.kubernetes.io/name&lt;/code&gt; in another pod and it will generate telemetry
correctly. However, you will have no way to configure Kiali for this case.&lt;/p&gt;


&lt;/div&gt;

&lt;h2 id=&#34;root-namespace&#34;&gt;Root namespace&lt;/h2&gt;
&lt;p&gt;Istio&amp;rsquo;s &lt;em&gt;root namespace&lt;/em&gt; is the namespace where you can create some resources
to define default Istio configurations and adapt Istio behavior to your
environment. For more information on this Istio configuration, check the &lt;a href=&#34;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/&#34;&gt;Istio
docs Global Mesh options
page&lt;/a&gt; and
search for &amp;ldquo;rootNamespace&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Kiali uses the root namespace for some of the validations of Istio resources.
&lt;strong&gt;Kiali automatically detects the root namespace for each Istio control plane&lt;/strong&gt;,
so no manual configuration is required. This enables Kiali to properly support
environments with multiple Istio control planes, where each control plane may
have a different root namespace.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Prior to Kiali v2.16, the root namespace was configured manually via the
&lt;code&gt;external_services.istio.root_namespace&lt;/code&gt; setting. This configuration option
has been removed as Kiali now autodetects the appropriate root namespace
for each control plane.

&lt;/div&gt;

&lt;h2 id=&#34;sidecar-injection-canary-upgrade-management-and-istio-revisions&#34;&gt;Sidecar injection, canary upgrade management and Istio revisions&lt;/h2&gt;
&lt;p&gt;Kiali can assist with configuring automatic sidecar injection and
migrating workloads from an old Istio version to a newer
one using &lt;a href=&#34;https://istio.io/latest/docs/setup/upgrade/canary/&#34;&gt;the canary upgrade
method&lt;/a&gt;. Kiali uses the
&lt;a href=&#34;https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy&#34;&gt;standard Istio labels to control sidecar injection
policy&lt;/a&gt;
and canary upgrades.&lt;/p&gt;
&lt;p&gt;Management of sidecar injection is enabled by default. If you don&amp;rsquo;t want this
feature, you can disable it with the following configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_injection_action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Using Kiali to apply revision labels through the UI during a canary
upgrade is turned off by default. You can enable this in Kiali with the following configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Turns on canary upgrade support&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_upgrade_action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Upgrade actions appear in the Namespaces page actions menu (Kiali &amp;gt;= 2.23).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/canary-upgrade-action.png&#34; alt=&#34;Canary upgrade action&#34; title=&#34;Canary upgrade action&#34;&gt;&lt;/p&gt;
&lt;p&gt;The progress of the canary upgrade process can be tracked on the mesh page, which displays the namespaces pending migration to the canary Istio control plane.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/istio-canary-upgrade.png&#34; alt=&#34;Canary upgrade process&#34; title=&#34;Canary upgrade process&#34;&gt;&lt;/p&gt;
&lt;p&gt;There following are links to sections of Kiali blogs posts that briefly
explains these features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://medium.com/kialiproject/kiali-releases-1-21-to-1-24-overview-2a864f7d0fce#0f2c&#34;&gt;Sidecar auto-injection control description&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://medium.com/kialiproject/kiali-releases-1-34-to-1-39-overview-587f33fac41a#8104&#34;&gt;Istio&amp;rsquo;s canary upgrade assistance description&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kiali CR Reference</title>
      <link>https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/</guid>
      <description>
        
        
        &lt;div class=&#34;crd-schema-version&#34;&gt;
&lt;h3 id=&#34;example-cr&#34;&gt;Example CR&lt;/h3&gt;
&lt;em&gt;(all values shown here are the defaults unless otherwise noted)&lt;/em&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali.io/v1alpha1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Kiali&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ansible.sdk.operatorframework.io/verbosity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_display_details&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;title&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;API Documentation&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotation&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali.io/api-spec&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;icon_annotation&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali.io/api-type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;installation_tag&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;strategy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;openid&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: additional_request_params is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_request_params&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;openIdReqParam&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;openIdReqParamValue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: allowed_domains is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;allowed_domains&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;allowed.domain&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;api_proxy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;api_proxy_ca_data&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;api_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;id_token&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;authentication_timeout&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;300&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;authorization_endpoint&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;client_id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;disable_rbac&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;http_proxy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;https_proxy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify_tls&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;issuer_uri&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scopes&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;openid&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;profile&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;email&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username_claim&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;sub&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_override&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;authorization_endpoint&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;jwks_uri&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;token_endpoint&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;userinfo_endpoint&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;openshift&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#redirect_uris:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#token_inactivity_timeout:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#token_max_age:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;chat_ai&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default_provider&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;providers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;store_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;max_cache_memory_mb&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1024&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;reduce_threshold&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;15&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;reduce_with_ai&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;clustering&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;autodetect_secrets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali.io/multiCluster=true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;clusters&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ignore_home_cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_urls&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_dashboards is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;envoy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_pod_containers_yaml&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_pod_init_containers_yaml&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: additional_service_yaml is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_service_yaml&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;externalName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali.example.com&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;affinity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: node is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;node&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;nodeSelectorTerms&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kubernetes.io/e2e-az-name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;e2e-az1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;e2e-az2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: pod is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;pod&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;requiredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;security&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;S1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;topologyKey&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: pod_anti is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;pod_anti&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;preferredDuringSchedulingIgnoredDuringExecution&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;weight&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;podAffinityTerm&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;security&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;S2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;topologyKey&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;topology.kubernetes.io/zone&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster_wide_access&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: configmap_annotations is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;configmap_annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;strategy.spinnaker.io/versioned&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_envs is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_envs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;HTTP_PROXY&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://my.proxy.com:1234&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;NO_PROXY&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;hostname.example.com&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_secrets is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_secrets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;a-custom-secret&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mount&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/a-custom-secret-path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;optional&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;a-csi-secret&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mount&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/a-csi-secret-path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;csi&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;driver&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;secrets-store.csi.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;volumeAttributes&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;secretProviderClass&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-secretprovider&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: discovery_selectors is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;north&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;organization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;In&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;engineering&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;accounting&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;south&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;DoesNotExist&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;domain&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;NotIn&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;production&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;overrides&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;myRemoteCluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;world&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;organization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;NotIn&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;marketing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;antarctica&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;DoesNotExist&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;domain&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;In&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;staging&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dns&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: config is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ndots&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: policy is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;policy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ClusterFirst&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;extra_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;{}&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: host_aliases is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;host_aliases&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ip&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;192.168.1.100&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;hostnames&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;foo.local&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;bar.local&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;hpa&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;api_version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: spec is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;maxReplicas&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;minReplicas&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Resource&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resource&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;cpu&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Utilization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;averageUtilization&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;50&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image_digest&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image_pull_policy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;IfNotPresent&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: image_pull_secrets is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image_pull_secrets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;image.pull.secret&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;image_version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ingress&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: additional_labels is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;additional_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ingressAdditionalLabel&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ingressAdditionalLabelValue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;class_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;nginx&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: enabled is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: override_yaml is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;override_yaml&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;nginx.ingress.kubernetes.io/secure-backends&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;nginx.ingress.kubernetes.io/backend-protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;HTTPS&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rules&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;paths&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;pathType&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Prefix&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;backend&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;service&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;                      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;number&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20001&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;instance_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;logger&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;log_level&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;log_format&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;sampler_rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;time_field_format&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2006-01-02T15:04:05Z07:00&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio-system&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;network_policy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: node_selector is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;node_selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;nodeSelector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;nodeSelectorValue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: pod_annotations is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;pod_annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;proxy.istio.io/config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;{ &amp;#34;holdApplicationUntilProxyStarts&amp;#34;: true }&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: pod_labels is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;pod_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;sidecar.istio.io/inject&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;priority_class_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;probes&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;liveness&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;initial_delay_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;period_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;readiness&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;initial_delay_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;period_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;startup&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure_threshold&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;initial_delay_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;period_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;remote_cluster_resources_only&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;replicas&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: resources is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;requests&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cpu&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;10m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;memory&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;64Mi&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;limits&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;memory&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1Gi&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;secret_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;security_context&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;{}&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: service_annotations is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;service_annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;svcAnnotation&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;svcAnnotationValue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: service_type is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;service_type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;NodePort&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;strategy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;{}&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: tolerations is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tolerations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;example-key&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Exists&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;effect&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;NoSchedule&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;topology_spread_constraints&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;view_only_mode&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: extensions is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;extensions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;skupper&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_services&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_auto_threshold&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_kiali_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_duration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;7&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_expiration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;300&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_headers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;customHeader1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_check_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;query_scope&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mesh_id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;thanos_proxy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;retention_period&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;7d&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scrape_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;30s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;grafana&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_kiali_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Service Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;variables&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;service&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-service&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Workload Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;variables&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;workload&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-workload&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Mesh Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Control Plane Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Performance Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Wasm Extension Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource_uid&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_check_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;internal_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://grafana.istio-system:3000&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;component_status&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;components&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;gateway_api_classes&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;gateway_api_classes_label_selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_api_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_identity_domain&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;svc.cluster.local&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istiod_polling_interval_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;validation_change_detection_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;validation_reconcile_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;perses&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_kiali_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;dashboards&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Service Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;variables&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;service&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-service&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Workload Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;variables&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-datasource&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;workload&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-workload&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;var-version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Mesh Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Control Plane Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Performance Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Wasm Extension Dashboard&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_check_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;internal_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;project&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url_format&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;prometheus&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_kiali_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_duration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;7&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_expiration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;300&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_headers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;customHeader1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_check_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;query_scope&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mesh_id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;thanos_proxy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;retention_period&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;7d&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scrape_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;30s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tracing&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;insecure_skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_kiali_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_headers is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_headers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;customHeader1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customHeader1Value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;disable_version_check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;grpc_port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;9095&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_check_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;internal_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;is_core&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace_selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;provider&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jaeger&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: query_scope is empty&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;query_scope&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mesh_id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;mesh-1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cluster-east&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;query_timeout&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tempo_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_capacity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;200&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;datasource_uid&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;org_id&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tenant&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;url_format&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;grafana&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_grpc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;use_waypoint_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;whitelist_istio_system&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jaeger-query&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio-ingressgateway&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;compute&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;duration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;5m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;refresh_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;timeout&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;10m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: rate is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tolerance&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;direction&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[1234]00&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;degraded&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;identity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: cert_file is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cert_file&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: private_key_file is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;private_key_file&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;app_label_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;egress_gateway_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio=egressgateway&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ingress_gateway_label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio=ingressgateway&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;injection_label_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio-injection&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;injection_label_rev&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio.io/rev&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version_label_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali_feature_flags&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;clustering&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enable_exec_provider&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: custom_workload_types is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;custom_workload_types&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;group&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;argoproj.io&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;v1alpha1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Rollout&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;disabled_features&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_annotation_action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_injection_action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_upgrade_action&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ui_defaults&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;graph&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;find_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: slow edges (&amp;gt; 1s)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;rt &amp;gt; 1000&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: unhealthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;! healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;hide_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hide: healthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hide: unknown nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name = unknown&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;settings&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;animation&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;point&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;traffic&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ambient&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;grpc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;requests&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tcp&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;sent&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;i18n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;language&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;show_selector&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;list&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;include_health&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;include_istio_resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;include_validations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;show_include_toggles&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;mesh&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;find_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Find: unhealthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;! healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;hide_options&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hide: healthy nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expression&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;healthy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: metrics_inbound is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_inbound&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;aggregations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Network&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;topology_istio_io_network&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;single_selection&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Revision&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio_io_rev&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;single_selection&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: metrics_outbound is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_outbound&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;aggregations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Network&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;topology_istio_io_network&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;single_selection&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;display_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Istio Revision&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;label&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio_io_rev&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;single_selection&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_per_refresh&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: namespaces is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespaces&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;istio-system&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;refresh_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tracing&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;limit&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;validations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ignore&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;KIA1301&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;skip_wildcard_gateway_hosts&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kubernetes_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;burst&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;200&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_duration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;300&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cache_token_namespace_duration&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;excluded_workloads&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;CronJob&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;DeploymentConfig&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Job&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ReplicationController&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;qps&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;175&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;login_token&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;expiration_seconds&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;86400&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;signing_key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;server&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;address&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;audit_log&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cors_allow_all&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;gzip_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: node_port is undefined&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;node_port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;32475&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;observability&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_status&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;max_consecutive_na&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;9090&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tracing&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;collector_type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;otel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;collector_url&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jaeger-collector.istio-system:4318&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;otel&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ca_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;skip_verify&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;sampling_rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0.5&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20001&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;profiler&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;require_auth&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;web_fqdn&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;web_history_mode&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;browser&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;web_port&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;web_root&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;web_schema&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;write_timeout&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;60s&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;validating-your-kiali-cr&#34;&gt;Validating your Kiali CR&lt;/h3&gt;
&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;
&lt;h3 id=&#34;property-details&#34;&gt;Properties&lt;/h3&gt;
&lt;div class=&#34;property depth-0&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec&#34;&gt;.spec&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.additional_display_details&#34;&gt;.spec.additional_display_details&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;pre&gt;&lt;code&gt;spec:
  annotations:
    kiali.io/api-spec: http://list/to/my/api/doc
    kiali.io/api-type: rest
&lt;/code&gt;&lt;/pre&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.additional_display_details[*]&#34;&gt;.spec.additional_display_details[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.additional_display_details[*].annotation&#34;&gt;.spec.additional_display_details[*].annotation&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the annotation whose value is a URL to additional documentation useful to the user.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.additional_display_details[*].icon_annotation&#34;&gt;.spec.additional_display_details[*].icon_annotation&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.additional_display_details[*].title&#34;&gt;.spec.additional_display_details[*].title&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api&#34;&gt;.spec.api&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: These settings control how the Kiali API should be accessed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces&#34;&gt;.spec.api.namespaces&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: Settings for the API namespaces feature.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.exclude&#34;&gt;.spec.api.namespaces.exclude&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespace names that will be excluded from Kiali API.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.exclude[*]&#34;&gt;.spec.api.namespaces.exclude[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.include&#34;&gt;.spec.api.namespaces.include&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespace names that will be included in Kiali API.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.include[*]&#34;&gt;.spec.api.namespaces.include[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.label_selector_exclude&#34;&gt;.spec.api.namespaces.label_selector_exclude&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A Kubernetes label selector expression that will be used to exclude namespaces.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.api.namespaces.label_selector_include&#34;&gt;.spec.api.namespaces.label_selector_include&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A Kubernetes label selector expression that will be used to include namespaces.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth&#34;&gt;.spec.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid&#34;&gt;.spec.auth.openid&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;To learn more about these settings and how to configure the OpenId authentication strategy, read the documentation at &lt;a href=&#34;https://kiali.io/docs/configuration/authentication/openid/&#34;&gt;https://kiali.io/docs/configuration/authentication/openid/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.additional_request_params&#34;&gt;.spec.auth.openid.additional_request_params&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.allowed_domains&#34;&gt;.spec.auth.openid.allowed_domains&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.allowed_domains[*]&#34;&gt;.spec.auth.openid.allowed_domains[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.api_proxy&#34;&gt;.spec.auth.openid.api_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.api_proxy_ca_data&#34;&gt;.spec.auth.openid.api_proxy_ca_data&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.api_token&#34;&gt;.spec.auth.openid.api_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.authentication_timeout&#34;&gt;.spec.auth.openid.authentication_timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.authorization_endpoint&#34;&gt;.spec.auth.openid.authorization_endpoint&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.client_id&#34;&gt;.spec.auth.openid.client_id&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.disable_rbac&#34;&gt;.spec.auth.openid.disable_rbac&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.discovery_override&#34;&gt;.spec.auth.openid.discovery_override&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.discovery_override.authorization_endpoint&#34;&gt;.spec.auth.openid.discovery_override.authorization_endpoint&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The URL of the provider&amp;rsquo;s authorization endpoint.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.discovery_override.jwks_uri&#34;&gt;.spec.auth.openid.discovery_override.jwks_uri&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The URL of the provider&amp;rsquo;s JWK Set document.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.discovery_override.token_endpoint&#34;&gt;.spec.auth.openid.discovery_override.token_endpoint&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The URL of the provider&amp;rsquo;s token endpoint.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.discovery_override.userinfo_endpoint&#34;&gt;.spec.auth.openid.discovery_override.userinfo_endpoint&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The URL of the provider&amp;rsquo;s UserInfo endpoint.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.http_proxy&#34;&gt;.spec.auth.openid.http_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.https_proxy&#34;&gt;.spec.auth.openid.https_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.insecure_skip_verify_tls&#34;&gt;.spec.auth.openid.insecure_skip_verify_tls&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.issuer_uri&#34;&gt;.spec.auth.openid.issuer_uri&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.scopes&#34;&gt;.spec.auth.openid.scopes&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.scopes[*]&#34;&gt;.spec.auth.openid.scopes[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openid.username_claim&#34;&gt;.spec.auth.openid.username_claim&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift&#34;&gt;.spec.auth.openshift&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;To learn more about these settings and how to configure the OpenShift authentication strategy, read the documentation at &lt;a href=&#34;https://kiali.io/docs/configuration/authentication/openshift/&#34;&gt;https://kiali.io/docs/configuration/authentication/openshift/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.auth_timeout&#34;&gt;.spec.auth.openshift.auth_timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.client_id_prefix&#34;&gt;.spec.auth.openshift.client_id_prefix&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A prefix that will be applied to the OpenShift OAuth client identifier.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.insecure_skip_verify_tls&#34;&gt;.spec.auth.openshift.insecure_skip_verify_tls&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts OpenShift over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.redirect_uris&#34;&gt;.spec.auth.openshift.redirect_uris&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.redirect_uris[*]&#34;&gt;.spec.auth.openshift.redirect_uris[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.token_inactivity_timeout&#34;&gt;.spec.auth.openshift.token_inactivity_timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.openshift.token_max_age&#34;&gt;.spec.auth.openshift.token_max_age&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.auth.strategy&#34;&gt;.spec.auth.strategy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines what authentication strategy to use when users log into Kiali.
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;
&lt;ul&gt;
&lt;li&gt;Choose &lt;code&gt;anonymous&lt;/code&gt; to allow full access to Kiali without requiring any credentials.&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;token&lt;/code&gt; to allow access to Kiali using service account tokens, which controls
access based on RBAC roles assigned to the service account.&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;openshift&lt;/code&gt; to use the OpenShift OAuth login which controls access based on
the individual&amp;rsquo;s RBAC roles in OpenShift. Not valid for non-OpenShift environments.&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;openid&lt;/code&gt; to enable OpenID Connect-based authentication. Your cluster is required to
be configured to accept the tokens issued by your IdP. There are additional required
configurations for this strategy. See below for the additional OpenID configuration section.&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;header&lt;/code&gt; when Kiali is running behind a reverse proxy that will inject an
Authorization header and potentially impersonation headers.&lt;/li&gt;
&lt;/ul&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai&#34;&gt;.spec.chat_ai&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.default_provider&#34;&gt;.spec.chat_ai.default_provider&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.enabled&#34;&gt;.spec.chat_ai.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable the ChatAI feature.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers&#34;&gt;.spec.chat_ai.providers&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*]&#34;&gt;.spec.chat_ai.providers[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].config&#34;&gt;.spec.chat_ai.providers[*].config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The type of the config needed by the AI models provider. Available values are &lt;code&gt;default&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, and &lt;code&gt;azure&lt;/code&gt;. Default value is &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].default_model&#34;&gt;.spec.chat_ai.providers[*].default_model&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The default model of the provider.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].description&#34;&gt;.spec.chat_ai.providers[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The description of the provider.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].enabled&#34;&gt;.spec.chat_ai.providers[*].enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable the provider.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].key&#34;&gt;.spec.chat_ai.providers[*].key&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models&#34;&gt;.spec.chat_ai.providers[*].models&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*]&#34;&gt;.spec.chat_ai.providers[*].models[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].description&#34;&gt;.spec.chat_ai.providers[*].models[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The description of the model.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].enabled&#34;&gt;.spec.chat_ai.providers[*].models[*].enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable the model.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].endpoint&#34;&gt;.spec.chat_ai.providers[*].models[*].endpoint&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The endpoint of the model.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].key&#34;&gt;.spec.chat_ai.providers[*].models[*].key&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].model&#34;&gt;.spec.chat_ai.providers[*].models[*].model&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The model of the model.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].models[*].name&#34;&gt;.spec.chat_ai.providers[*].models[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the model.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].name&#34;&gt;.spec.chat_ai.providers[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the provider.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.providers[*].type&#34;&gt;.spec.chat_ai.providers[*].type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The type of the AI models provider. Available values are &lt;code&gt;openai&lt;/code&gt;. Default value is &lt;code&gt;openai&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.store_config&#34;&gt;.spec.chat_ai.store_config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration for the ChatAI store.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.store_config.enabled&#34;&gt;.spec.chat_ai.store_config.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable the ChatAI store.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.store_config.max_cache_memory_mb&#34;&gt;.spec.chat_ai.store_config.max_cache_memory_mb&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The maximum cache memory for the ChatAI store.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.store_config.reduce_threshold&#34;&gt;.spec.chat_ai.store_config.reduce_threshold&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.chat_ai.store_config.reduce_with_ai&#34;&gt;.spec.chat_ai.store_config.reduce_with_ai&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable the ChatAI store reduction with AI.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering&#34;&gt;.spec.clustering&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Multi-cluster related features.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.autodetect_secrets&#34;&gt;.spec.clustering.autodetect_secrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings to allow cluster secrets to be auto-detected. Secrets must exist in the Kiali deployment namespace.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.autodetect_secrets.enabled&#34;&gt;.spec.clustering.autodetect_secrets.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.autodetect_secrets.label&#34;&gt;.spec.clustering.autodetect_secrets.label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name and value of a label that exists on all remote cluster secrets.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.clusters&#34;&gt;.spec.clustering.clusters&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.clusters[*]&#34;&gt;.spec.clustering.clusters[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.clusters[*].name&#34;&gt;.spec.clustering.clusters[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.clusters[*].secret_name&#34;&gt;.spec.clustering.clusters[*].secret_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.enable_exec_provider&#34;&gt;.spec.clustering.enable_exec_provider&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to enable exec provider for clustering authentication.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.ignore_home_cluster&#34;&gt;.spec.clustering.ignore_home_cluster&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls&#34;&gt;.spec.clustering.kiali_urls&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls[*]&#34;&gt;.spec.clustering.kiali_urls[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls[*].cluster_name&#34;&gt;.spec.clustering.kiali_urls[*].cluster_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls[*].instance_name&#34;&gt;.spec.clustering.kiali_urls[*].instance_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls[*].namespace&#34;&gt;.spec.clustering.kiali_urls[*].namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The namespace into which Kiali is installed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.clustering.kiali_urls[*].url&#34;&gt;.spec.clustering.kiali_urls[*].url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The URL of Kiali in the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.custom_dashboards&#34;&gt;.spec.custom_dashboards&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A list of user-defined custom monitoring dashboards that you can use to generate metrics charts
for your applications. The server has some built-in dashboards; if you define a custom dashboard here
with the same name as a built-in dashboard, your custom dashboard takes precedence and will overwrite
the built-in dashboard. You can disable one or more of the built-in dashboards by simply defining an
empty dashboard.&lt;/p&gt;
&lt;p&gt;An example of an additional user-defined dashboard,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  custom_dashboards:
  - name: myapp
    title: My App Metrics
    items:
    - chart:
        name: &amp;quot;Thread Count&amp;quot;
        spans: 4
        metricName: &amp;quot;thread-count&amp;quot;
        dataType: &amp;quot;raw&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;An example of disabling a built-in dashboard (in this case, disabling the Envoy dashboard),&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  custom_dashboards:
  - name: envoy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To learn more about custom monitoring dashboards, see the documentation at &lt;a href=&#34;https://kiali.io/docs/configuration/custom-dashboard/&#34;&gt;https://kiali.io/docs/configuration/custom-dashboard/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.custom_dashboards[*]&#34;&gt;.spec.custom_dashboards[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment&#34;&gt;.spec.deployment&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.accessible_namespaces&#34;&gt;.spec.deployment.accessible_namespaces&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A list of namespaces Kiali is allowed to access. This replaces discovery selectors.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.accessible_namespaces[*]&#34;&gt;.spec.deployment.accessible_namespaces[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.additional_pod_containers_yaml&#34;&gt;.spec.deployment.additional_pod_containers_yaml&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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, 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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.additional_pod_containers_yaml[*]&#34;&gt;.spec.deployment.additional_pod_containers_yaml[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.additional_pod_init_containers_yaml&#34;&gt;.spec.deployment.additional_pod_init_containers_yaml&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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, 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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.additional_pod_init_containers_yaml[*]&#34;&gt;.spec.deployment.additional_pod_init_containers_yaml[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.additional_service_yaml&#34;&gt;.spec.deployment.additional_service_yaml&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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: { &#39;loadBalancerIP&#39;: &#39;78.11.24.19&#39; }&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: { &#39;externalName&#39;: &#39;my.kiali.example.com&#39; }&lt;/code&gt;. A final example would be if external IPs need to be set: &lt;code&gt;additional_service_yaml: { &#39;externalIPs&#39;: [&#39;80.11.12.10&#39;] }&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.affinity&#34;&gt;.spec.deployment.affinity&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.affinity.node&#34;&gt;.spec.deployment.affinity.node&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.affinity.pod&#34;&gt;.spec.deployment.affinity.pod&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.affinity.pod_anti&#34;&gt;.spec.deployment.affinity.pod_anti&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.cluster_wide_access&#34;&gt;.spec.deployment.cluster_wide_access&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.configmap_annotations&#34;&gt;.spec.deployment.configmap_annotations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Custom annotations to be created on the Kiali ConfigMap.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_envs&#34;&gt;.spec.deployment.custom_envs&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_envs[*]&#34;&gt;.spec.deployment.custom_envs[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_envs[*].name&#34;&gt;.spec.deployment.custom_envs[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the custom environment variable.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_envs[*].value&#34;&gt;.spec.deployment.custom_envs[*].value&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The value of the custom environment variable.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets&#34;&gt;.spec.deployment.custom_secrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Defines additional secrets that are to be mounted in the Kiali pod.&lt;/p&gt;
&lt;p&gt;These are useful to contain client certificates that are used by Kiali to authenticate to third party systems
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;
&lt;p&gt;These secrets must be created by an external mechanism. Kiali will not generate these secrets; it
is assumed these secrets are externally managed. You can define 0, 1, or more secrets.
An example configuration is,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  deployment:
    custom_secrets:
    - name: mysecret
      mount: /mysecret-path
    - name: my-other-secret
      mount: /my-other-secret-location
      optional: true
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets[*]&#34;&gt;.spec.deployment.custom_secrets[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets[*].csi&#34;&gt;.spec.deployment.custom_secrets[*].csi&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;https://secrets-store-csi-driver.sigs.k8s.io/&#34;&gt;https://secrets-store-csi-driver.sigs.k8s.io/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets[*].mount&#34;&gt;.spec.deployment.custom_secrets[*].mount&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets[*].name&#34;&gt;.spec.deployment.custom_secrets[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.custom_secrets[*].optional&#34;&gt;.spec.deployment.custom_secrets[*].optional&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors&#34;&gt;.spec.deployment.discovery_selectors&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Discovery selectors used to determine which namespaces are accessible to Kiali and which namespaces are visible to Kiali users.
You can define discovery selectors to match namespaces on the local cluster as well as remote clusters.
The list of namespaces that a user can access is a subset of these namespaces, given that user&amp;rsquo;s RBAC permissions.
These selectors will have similar semantics as defined by Istio ( &lt;a href=&#34;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&#34;&gt;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&lt;/a&gt; )
and the syntax of the equality-based and set-based label selectors are documented by Kubernetes here
( &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements&#34;&gt;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements&lt;/a&gt; )&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default&#34;&gt;.spec.deployment.discovery_selectors.default&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;These are label selectors for the Kiali local cluster and for all remote clusters that do not have overrides.
Namespaces that match these selectors are visible to Kiali users.
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.
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
permissions to access all namespaces.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*]&#34;&gt;.spec.deployment.discovery_selectors.default[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions[*]&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-7&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].key&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].key&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-7&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].operator&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].operator&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-7&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-8&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values[*]&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchExpressions[*].values[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.default[*].matchLabels&#34;&gt;.spec.deployment.discovery_selectors.default[*].matchLabels&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.discovery_selectors.overrides&#34;&gt;.spec.deployment.discovery_selectors.overrides&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.dns&#34;&gt;.spec.deployment.dns&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The Kiali server pod&amp;rsquo;s DNS configuration. Kubernetes supports different DNS policies and configurations.
For further details, consult the Kubernetes documentation - &lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/&#34;&gt;https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.dns.config&#34;&gt;.spec.deployment.dns.config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.dns.policy&#34;&gt;.spec.deployment.dns.policy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DNS policy. See the Kubernetes documentation for the different policies that are supported.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.extra_labels&#34;&gt;.spec.deployment.extra_labels&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Extra name/value pairs to be added to the labels of all resources created by the operator.
These are added to the labels the operator creates by default. These will not overwrite
labels that the operator creates itself. For example, if you set &amp;ldquo;app.kubernetes.io/name&amp;rdquo;
as an extra label, it will be silently ignored because that is one of the labels the operator
creates on all resources.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.host_aliases&#34;&gt;.spec.deployment.host_aliases&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;This is content for the Kubernetes &amp;lsquo;hostAliases&amp;rsquo; setting for the Kiali server.
This allows you to modify the Kiali server pod &amp;lsquo;/etc/hosts&amp;rsquo; file.
A typical way to configure this setting is,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  deployment:
    host_aliases:
    - ip: 192.168.1.100
      hostnames:
      - &amp;quot;foo.local&amp;quot;
      - &amp;quot;bar.local&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For details on the content of this setting, see &lt;a href=&#34;https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases&#34;&gt;https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.host_aliases[*]&#34;&gt;.spec.deployment.host_aliases[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.host_aliases[*].hostnames&#34;&gt;.spec.deployment.host_aliases[*].hostnames&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.host_aliases[*].hostnames[*]&#34;&gt;.spec.deployment.host_aliases[*].hostnames[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.host_aliases[*].ip&#34;&gt;.spec.deployment.host_aliases[*].ip&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.hpa&#34;&gt;.spec.deployment.hpa&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines what (if any) HorizontalPodAutoscaler should be created to autoscale the Kiali pod.
A typical way to configure HPA for Kiali is,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  deployment:
    hpa:
      api_version: &amp;quot;autoscaling/v2&amp;quot;
      spec:
        maxReplicas: 2
        minReplicas: 1
        metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 50
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.hpa.api_version&#34;&gt;.spec.deployment.hpa.api_version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.hpa.spec&#34;&gt;.spec.deployment.hpa.spec&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_digest&#34;&gt;.spec.deployment.image_digest&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_name&#34;&gt;.spec.deployment.image_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_pull_policy&#34;&gt;.spec.deployment.image_pull_policy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_pull_secrets&#34;&gt;.spec.deployment.image_pull_secrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The names of the secrets to be used when container images are to be pulled.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_pull_secrets[*]&#34;&gt;.spec.deployment.image_pull_secrets[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.image_version&#34;&gt;.spec.deployment.image_version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines which version of Kiali to install.
Choose &amp;lsquo;lastrelease&amp;rsquo; to use the last Kiali release.
Choose &amp;lsquo;latest&amp;rsquo; to use the latest image (which may or may not be a released version of Kiali).
Choose &amp;lsquo;operator_version&amp;rsquo; to use the image whose version is the same as the operator version.
Otherwise, you can set this to any valid Kiali version (such as &amp;lsquo;v1.0&amp;rsquo;) or any valid Kiali
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;
&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;
&lt;p&gt;If you set this to a specific version (i.e. you do not leave it as the default empty string),
you must make sure that image is supported by the operator.&lt;/p&gt;
&lt;p&gt;If empty, the operator will use a known supported image version based on which &amp;lsquo;version&amp;rsquo; 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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress&#34;&gt;.spec.deployment.ingress&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures if/how the Kiali endpoint should be exposed externally.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.additional_labels&#34;&gt;.spec.deployment.ingress.additional_labels&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.class_name&#34;&gt;.spec.deployment.ingress.class_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.enabled&#34;&gt;.spec.deployment.ingress.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.override_yaml&#34;&gt;.spec.deployment.ingress.override_yaml&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Because an Ingress into a cluster can vary wildly in its desired configuration,
this setting provides a way to override complete portions of the Ingress resource
configuration (Ingress on Kubernetes and Route on OpenShift). It is up to the user
to ensure this override YAML configuration is valid and supports the cluster environment
since the operator will blindly copy this custom configuration into the resource it
creates.&lt;/p&gt;
&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;.
Note that only &amp;lsquo;metadata.annotations&amp;rsquo; and &amp;lsquo;spec&amp;rsquo; is valid and only they will
be used to override those same sections in the created resource. You can define
either one or both.&lt;/p&gt;
&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
labels to the default set of labels, use the &lt;code&gt;deployment.ingress.additional_labels&lt;/code&gt; setting.
Example,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  deployment:
    ingress:
      override_yaml:
        metadata:
          annotations:
            nginx.ingress.kubernetes.io/secure-backends: &amp;quot;true&amp;quot;
            nginx.ingress.kubernetes.io/backend-protocol: &amp;quot;HTTPS&amp;quot;
        spec:
          rules:
          - http:
              paths:
              - path: /kiali
                pathType: Prefix
                backend:
                  service
                    name: &amp;quot;kiali&amp;quot;
                    port:
                      number: 20001
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.override_yaml.metadata&#34;&gt;.spec.deployment.ingress.override_yaml.metadata&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.override_yaml.metadata.annotations&#34;&gt;.spec.deployment.ingress.override_yaml.metadata.annotations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.ingress.override_yaml.spec&#34;&gt;.spec.deployment.ingress.override_yaml.spec&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.instance_name&#34;&gt;.spec.deployment.instance_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.logger&#34;&gt;.spec.deployment.logger&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures the logger that emits messages to the Kiali server pod logs.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.logger.log_format&#34;&gt;.spec.deployment.logger.log_format&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.logger.log_level&#34;&gt;.spec.deployment.logger.log_level&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.logger.sampler_rate&#34;&gt;.spec.deployment.logger.sampler_rate&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;&#39;2&#39;&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.logger.time_field_format&#34;&gt;.spec.deployment.logger.time_field_format&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The log message timestamp format. This supports a golang time format (see &lt;a href=&#34;https://golang.org/pkg/time/&#34;&gt;https://golang.org/pkg/time/&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.namespace&#34;&gt;.spec.deployment.namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.network_policy&#34;&gt;.spec.deployment.network_policy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.network_policy.enabled&#34;&gt;.spec.deployment.network_policy.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.node_selector&#34;&gt;.spec.deployment.node_selector&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A set of node labels that dictate onto which node the Kiali pod will be deployed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.pod_annotations&#34;&gt;.spec.deployment.pod_annotations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Custom annotations to be created on the Kiali pod.
By default, the following annotation is applied:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proxy.istio.io/config: &#39;{ &amp;quot;holdApplicationUntilProxyStarts&amp;quot;: true }&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you define your own pod_annotations, they will overwrite this default.
To retain the default behavior while adding your own annotations,
make sure to include this value alongside your custom annotations.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.pod_labels&#34;&gt;.spec.deployment.pod_labels&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Custom labels to be created on the Kiali pod.
An example use for this setting is to inject an Istio sidecar such as,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sidecar.istio.io/inject: &amp;quot;true&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.priority_class_name&#34;&gt;.spec.deployment.priority_class_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The priorityClassName used to assign the priority of the Kiali pod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes&#34;&gt;.spec.deployment.probes&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures the liveness, readiness, and startup probes of the Kiali pod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.liveness&#34;&gt;.spec.deployment.probes.liveness&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures the liveness probe of the Kiali pod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.liveness.initial_delay_seconds&#34;&gt;.spec.deployment.probes.liveness.initial_delay_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.liveness.period_seconds&#34;&gt;.spec.deployment.probes.liveness.period_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.readiness&#34;&gt;.spec.deployment.probes.readiness&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures the readiness probe of the Kiali pod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.readiness.initial_delay_seconds&#34;&gt;.spec.deployment.probes.readiness.initial_delay_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.readiness.period_seconds&#34;&gt;.spec.deployment.probes.readiness.period_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.startup&#34;&gt;.spec.deployment.probes.startup&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configures the startup probe of the Kiali pod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.startup.failure_threshold&#34;&gt;.spec.deployment.probes.startup.failure_threshold&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.startup.initial_delay_seconds&#34;&gt;.spec.deployment.probes.startup.initial_delay_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.probes.startup.period_seconds&#34;&gt;.spec.deployment.probes.startup.period_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.remote_cluster_resources_only&#34;&gt;.spec.deployment.remote_cluster_resources_only&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.replicas&#34;&gt;.spec.deployment.replicas&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.resources&#34;&gt;.spec.deployment.resources&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container&#34;&gt;https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container&lt;/a&gt;).
If you set this to an empty dict (&lt;code&gt;{}&lt;/code&gt;) then no resources will be defined in the Deployment.
If you do not set this at all, the default is,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  deployment:
    resources:
      requests:
        cpu: &amp;quot;10m&amp;quot;
        memory: &amp;quot;64Mi&amp;quot;
      limits:
        memory: &amp;quot;1Gi&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.secret_name&#34;&gt;.spec.deployment.secret_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;https://kiali.io/docs/configuration/authentication/openid/&#34;&gt;https://kiali.io/docs/configuration/authentication/openid/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.security_context&#34;&gt;.spec.deployment.security_context&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.service_annotations&#34;&gt;.spec.deployment.service_annotations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Custom annotations to be created on the Kiali Service resource.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.service_type&#34;&gt;.spec.deployment.service_type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.strategy&#34;&gt;.spec.deployment.strategy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config&#34;&gt;.spec.deployment.tls_config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config.cipher_suites&#34;&gt;.spec.deployment.tls_config.cipher_suites&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Explicit TLS cipher suites (OpenSSL names). Ignored for TLS 1.3.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config.cipher_suites[*]&#34;&gt;.spec.deployment.tls_config.cipher_suites[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config.max_version&#34;&gt;.spec.deployment.tls_config.max_version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Maximum TLS version (e.g., TLSv1.3, TLSv1.2).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config.min_version&#34;&gt;.spec.deployment.tls_config.min_version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Minimum TLS version (e.g., TLSv1.3, TLSv1.2).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tls_config.source&#34;&gt;.spec.deployment.tls_config.source&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tolerations&#34;&gt;.spec.deployment.tolerations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.tolerations[*]&#34;&gt;.spec.deployment.tolerations[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.topology_spread_constraints&#34;&gt;.spec.deployment.topology_spread_constraints&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.topology_spread_constraints[*]&#34;&gt;.spec.deployment.topology_spread_constraints[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.verbose_mode&#34;&gt;.spec.deployment.verbose_mode&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: When true, Kiali will log additional debug information about its operations.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.version_label&#34;&gt;.spec.deployment.version_label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Kiali resources will be assigned a &amp;lsquo;version&amp;rsquo; label when they are deployed.
This setting determines what value those &amp;lsquo;version&amp;rsquo; labels will have.
When empty, its default will be determined as follows,&lt;/p&gt;
&lt;ul&gt;
&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;
&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;
&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;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.view_only_mode&#34;&gt;.spec.deployment.view_only_mode&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.extensions&#34;&gt;.spec.extensions&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Defines third-party extensions whose metrics can be integrated into the Kiali traffic graph.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.extensions[*]&#34;&gt;.spec.extensions[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.extensions[*].enabled&#34;&gt;.spec.extensions[*].enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines if the Kiali traffic graph should incorporate the extension&amp;rsquo;s metrics.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.extensions[*].name&#34;&gt;.spec.extensions[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name that is used to identify the metric time series for the extension.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services&#34;&gt;.spec.external_services&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;These external service configuration settings define how to connect to the external services
like Prometheus, Grafana, and Jaeger.&lt;/p&gt;
&lt;p&gt;Regarding sensitive values in the external_services &amp;lsquo;auth&amp;rsquo; sections:
Some external services configured below support an &amp;lsquo;auth&amp;rsquo; sub-section in order to tell Kiali
how it should authenticate with the external services. Credentials used to authenticate Kiali
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
within the &lt;code&gt;auth&lt;/code&gt; sub-section. Because these are sensitive values, you may not want to declare
the actual credentials here in the Kiali CR. In this case, you may store the actual password
or token string in a Kubernetes secret. If you do, you need to set the &lt;code&gt;auth.password&lt;/code&gt; or
&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;
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
key within the named secret that contains the actual password or token string. For example,
if Grafana requires a password, you can store that password in a secret named &amp;lsquo;myGrafanaCredentials&amp;rsquo;
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;
to &lt;code&gt;secret:myGrafanaCredentials:myGrafanaPw&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards&#34;&gt;.spec.external_services.custom_dashboards&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings for enabling and discovering custom dashboards.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.discovery_auto_threshold&#34;&gt;.spec.external_services.custom_dashboards.discovery_auto_threshold&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.discovery_enabled&#34;&gt;.spec.external_services.custom_dashboards.discovery_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;https://kiali.io/docs/configuration/custom-dashboard/#pod-annotations&#34;&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.enabled&#34;&gt;.spec.external_services.custom_dashboards.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable or disable custom dashboards, including the dashboards discovery process.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.is_core&#34;&gt;.spec.external_services.custom_dashboards.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.namespace_label&#34;&gt;.spec.external_services.custom_dashboards.namespace_label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus&#34;&gt;.spec.external_services.custom_dashboards.prometheus&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to authenticate with the Prometheus instance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.ca_file&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.ca_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.cert_file&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.insecure_skip_verify&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.insecure_skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Prometheus over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.key_file&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.password&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.password&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.token&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.type&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.use_kiali_token&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.use_kiali_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.auth.username&#34;&gt;.spec.external_services.custom_dashboards.prometheus.auth.username&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.cache_duration&#34;&gt;.spec.external_services.custom_dashboards.prometheus.cache_duration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Prometheus caching duration expressed in seconds.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.cache_enabled&#34;&gt;.spec.external_services.custom_dashboards.prometheus.cache_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable/disable Prometheus caching used for Health services.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.cache_expiration&#34;&gt;.spec.external_services.custom_dashboards.prometheus.cache_expiration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Prometheus caching expiration expressed in seconds.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.custom_headers&#34;&gt;.spec.external_services.custom_dashboards.prometheus.custom_headers&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A set of name/value settings that will be passed as headers when requests are sent to Prometheus.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.health_check_url&#34;&gt;.spec.external_services.custom_dashboards.prometheus.health_check_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.is_core&#34;&gt;.spec.external_services.custom_dashboards.prometheus.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.query_scope&#34;&gt;.spec.external_services.custom_dashboards.prometheus.query_scope&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.thanos_proxy&#34;&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.enabled&#34;&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set to true when a Thanos proxy is in front of Prometheus.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.retention_period&#34;&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.retention_period&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Thanos Retention period value expressed as a string.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.scrape_interval&#34;&gt;.spec.external_services.custom_dashboards.prometheus.thanos_proxy.scrape_interval&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Thanos Scrape interval value expressed as a string.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.custom_dashboards.prometheus.url&#34;&gt;.spec.external_services.custom_dashboards.prometheus.url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana&#34;&gt;.spec.external_services.grafana&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration used to access the Grafana dashboards.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth&#34;&gt;.spec.external_services.grafana.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to authenticate with the Grafana instance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.ca_file&#34;&gt;.spec.external_services.grafana.auth.ca_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.cert_file&#34;&gt;.spec.external_services.grafana.auth.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.insecure_skip_verify&#34;&gt;.spec.external_services.grafana.auth.insecure_skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Grafana over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.key_file&#34;&gt;.spec.external_services.grafana.auth.key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.password&#34;&gt;.spec.external_services.grafana.auth.password&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.token&#34;&gt;.spec.external_services.grafana.auth.token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.type&#34;&gt;.spec.external_services.grafana.auth.type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.use_kiali_token&#34;&gt;.spec.external_services.grafana.auth.use_kiali_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.auth.username&#34;&gt;.spec.external_services.grafana.auth.username&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards&#34;&gt;.spec.external_services.grafana.dashboards&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A list of Grafana dashboards that Kiali can link to.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*]&#34;&gt;.spec.external_services.grafana.dashboards[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].name&#34;&gt;.spec.external_services.grafana.dashboards[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the Grafana dashboard.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables&#34;&gt;.spec.external_services.grafana.dashboards[*].variables&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.app&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.app&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.datasource&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.datasource&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.namespace&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.service&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.version&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.dashboards[*].variables.workload&#34;&gt;.spec.external_services.grafana.dashboards[*].variables.workload&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.datasource_uid&#34;&gt;.spec.external_services.grafana.datasource_uid&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.enabled&#34;&gt;.spec.external_services.grafana.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, Grafana support will be enabled in Kiali.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.external_url&#34;&gt;.spec.external_services.grafana.external_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.health_check_url&#34;&gt;.spec.external_services.grafana.health_check_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.in_cluster_url&#34;&gt;.spec.external_services.grafana.in_cluster_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The URL used for in-cluster access to Grafana.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.internal_url&#34;&gt;.spec.external_services.grafana.internal_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.is_core&#34;&gt;.spec.external_services.grafana.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.grafana.url&#34;&gt;.spec.external_services.grafana.url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The URL used to access Grafana from external sources.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio&#34;&gt;.spec.external_services.istio&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Istio configuration that Kiali needs to know about in order to observe the mesh.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status&#34;&gt;.spec.external_services.istio.component_status&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Istio components whose status will be monitored by Kiali.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components&#34;&gt;.spec.external_services.istio.component_status.components&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A specific Istio component whose status will be monitored by Kiali.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*]&#34;&gt;.spec.external_services.istio.component_status.components[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*].app_label&#34;&gt;.spec.external_services.istio.component_status.components[*].app_label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Istio component pod app label.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*].is_core&#34;&gt;.spec.external_services.istio.component_status.components[*].is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Whether the component is to be considered a core component for your deployment.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*].is_multicluster&#34;&gt;.spec.external_services.istio.component_status.components[*].is_multicluster&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Whether the component is a multi-cluster component.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*].is_proxy&#34;&gt;.spec.external_services.istio.component_status.components[*].is_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Whether the component is a native Envoy proxy.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.components[*].namespace&#34;&gt;.spec.external_services.istio.component_status.components[*].namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.component_status.enabled&#34;&gt;.spec.external_services.istio.component_status.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines if Istio component statuses will be displayed in the Kiali masthead indicator.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.config_map_name&#34;&gt;.spec.external_services.istio.config_map_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.egress_gateway_namespace&#34;&gt;.spec.external_services.istio.egress_gateway_namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.envoy_admin_local_port&#34;&gt;.spec.external_services.istio.envoy_admin_local_port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_class_name&#34;&gt;.spec.external_services.istio.gateway_api_class_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The name of the Gateway API Class used by Istio.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_classes&#34;&gt;.spec.external_services.istio.gateway_api_classes&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_classes[*]&#34;&gt;.spec.external_services.istio.gateway_api_classes[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_classes[*].class_name&#34;&gt;.spec.external_services.istio.gateway_api_classes[*].class_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the GatewayClass.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_classes[*].name&#34;&gt;.spec.external_services.istio.gateway_api_classes[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the Gateway API implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.gateway_api_classes_label_selector&#34;&gt;.spec.external_services.istio.gateway_api_classes_label_selector&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_api_enabled&#34;&gt;.spec.external_services.istio.istio_api_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Indicates if Kiali has access to istiod.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_canary_revision&#34;&gt;.spec.external_services.istio.istio_canary_revision&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_canary_revision.current&#34;&gt;.spec.external_services.istio.istio_canary_revision.current&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v2.11: The currently installed Istio revision.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_canary_revision.upgrade&#34;&gt;.spec.external_services.istio.istio_canary_revision.upgrade&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v2.11: The installed Istio canary revision to upgrade to.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_identity_domain&#34;&gt;.spec.external_services.istio.istio_identity_domain&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_injection_annotation&#34;&gt;.spec.external_services.istio.istio_injection_annotation&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_sidecar_annotation&#34;&gt;.spec.external_services.istio.istio_sidecar_annotation&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istio_sidecar_injector_config_map_name&#34;&gt;.spec.external_services.istio.istio_sidecar_injector_config_map_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istiod_deployment_name&#34;&gt;.spec.external_services.istio.istiod_deployment_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istiod_pod_monitoring_port&#34;&gt;.spec.external_services.istio.istiod_pod_monitoring_port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.istiod_polling_interval_seconds&#34;&gt;.spec.external_services.istio.istiod_polling_interval_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.root_namespace&#34;&gt;.spec.external_services.istio.root_namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.url_service_version&#34;&gt;.spec.external_services.istio.url_service_version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.validation_change_detection_enabled&#34;&gt;.spec.external_services.istio.validation_change_detection_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, Kiali will detect changes in Istio configuration and trigger validation reconciliation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.istio.validation_reconcile_interval&#34;&gt;.spec.external_services.istio.validation_reconcile_interval&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses&#34;&gt;.spec.external_services.perses&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration used to access the Perses dashboards.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth&#34;&gt;.spec.external_services.perses.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to authenticate with the Perses instance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.ca_file&#34;&gt;.spec.external_services.perses.auth.ca_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.cert_file&#34;&gt;.spec.external_services.perses.auth.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.insecure_skip_verify&#34;&gt;.spec.external_services.perses.auth.insecure_skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Perses over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.key_file&#34;&gt;.spec.external_services.perses.auth.key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.password&#34;&gt;.spec.external_services.perses.auth.password&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.type&#34;&gt;.spec.external_services.perses.auth.type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;none&lt;/code&gt; to not use any authentication.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.use_kiali_token&#34;&gt;.spec.external_services.perses.auth.use_kiali_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.auth.username&#34;&gt;.spec.external_services.perses.auth.username&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards&#34;&gt;.spec.external_services.perses.dashboards&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A list of Perses dashboards that Kiali can link to.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*]&#34;&gt;.spec.external_services.perses.dashboards[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].name&#34;&gt;.spec.external_services.perses.dashboards[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the Perses dashboard.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables&#34;&gt;.spec.external_services.perses.dashboards[*].variables&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.app&#34;&gt;.spec.external_services.perses.dashboards[*].variables.app&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.datasource&#34;&gt;.spec.external_services.perses.dashboards[*].variables.datasource&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.namespace&#34;&gt;.spec.external_services.perses.dashboards[*].variables.namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.service&#34;&gt;.spec.external_services.perses.dashboards[*].variables.service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.version&#34;&gt;.spec.external_services.perses.dashboards[*].variables.version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.dashboards[*].variables.workload&#34;&gt;.spec.external_services.perses.dashboards[*].variables.workload&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.enabled&#34;&gt;.spec.external_services.perses.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, Perses support will be enabled in Kiali.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.external_url&#34;&gt;.spec.external_services.perses.external_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.health_check_url&#34;&gt;.spec.external_services.perses.health_check_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.internal_url&#34;&gt;.spec.external_services.perses.internal_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.is_core&#34;&gt;.spec.external_services.perses.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.project&#34;&gt;.spec.external_services.perses.project&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the project where the Dashboards are defined.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.perses.url_format&#34;&gt;.spec.external_services.perses.url_format&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus&#34;&gt;.spec.external_services.prometheus&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth&#34;&gt;.spec.external_services.prometheus.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to authenticate with the Prometheus instance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.ca_file&#34;&gt;.spec.external_services.prometheus.auth.ca_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.cert_file&#34;&gt;.spec.external_services.prometheus.auth.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.insecure_skip_verify&#34;&gt;.spec.external_services.prometheus.auth.insecure_skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts Prometheus over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.key_file&#34;&gt;.spec.external_services.prometheus.auth.key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.password&#34;&gt;.spec.external_services.prometheus.auth.password&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.token&#34;&gt;.spec.external_services.prometheus.auth.token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.type&#34;&gt;.spec.external_services.prometheus.auth.type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;none&lt;/code&gt; to not use any authentication (this is the default).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.use_kiali_token&#34;&gt;.spec.external_services.prometheus.auth.use_kiali_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.auth.username&#34;&gt;.spec.external_services.prometheus.auth.username&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.cache_duration&#34;&gt;.spec.external_services.prometheus.cache_duration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Prometheus caching duration expressed in seconds.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.cache_enabled&#34;&gt;.spec.external_services.prometheus.cache_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable/disable Prometheus caching used for Health services.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.cache_expiration&#34;&gt;.spec.external_services.prometheus.cache_expiration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Prometheus caching expiration expressed in seconds.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.custom_headers&#34;&gt;.spec.external_services.prometheus.custom_headers&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A set of name/value settings that will be passed as headers when requests are sent to Prometheus.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.health_check_url&#34;&gt;.spec.external_services.prometheus.health_check_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.is_core&#34;&gt;.spec.external_services.prometheus.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.query_scope&#34;&gt;.spec.external_services.prometheus.query_scope&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.thanos_proxy&#34;&gt;.spec.external_services.prometheus.thanos_proxy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.thanos_proxy.enabled&#34;&gt;.spec.external_services.prometheus.thanos_proxy.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set to true when a Thanos proxy is in front of Prometheus.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.thanos_proxy.retention_period&#34;&gt;.spec.external_services.prometheus.thanos_proxy.retention_period&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Thanos Retention period value expressed as a string.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.thanos_proxy.scrape_interval&#34;&gt;.spec.external_services.prometheus.thanos_proxy.scrape_interval&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Thanos Scrape interval value expressed as a string.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.prometheus.url&#34;&gt;.spec.external_services.prometheus.url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing&#34;&gt;.spec.external_services.tracing&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration used to access the Tracing (Jaeger or Tempo) dashboards.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth&#34;&gt;.spec.external_services.tracing.auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to authenticate with the Tracing server instance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.ca_file&#34;&gt;.spec.external_services.tracing.auth.ca_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.cert_file&#34;&gt;.spec.external_services.tracing.auth.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.insecure_skip_verify&#34;&gt;.spec.external_services.tracing.auth.insecure_skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Set true to skip verifying certificate validity when Kiali contacts the Tracing server over https.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.key_file&#34;&gt;.spec.external_services.tracing.auth.key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.password&#34;&gt;.spec.external_services.tracing.auth.password&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.token&#34;&gt;.spec.external_services.tracing.auth.token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.type&#34;&gt;.spec.external_services.tracing.auth.type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;none&lt;/code&gt; to not use any authentication (this is the default).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.use_kiali_token&#34;&gt;.spec.external_services.tracing.auth.use_kiali_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.auth.username&#34;&gt;.spec.external_services.tracing.auth.username&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.custom_headers&#34;&gt;.spec.external_services.tracing.custom_headers&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.disable_version_check&#34;&gt;.spec.external_services.tracing.disable_version_check&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.enabled&#34;&gt;.spec.external_services.tracing.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.external_url&#34;&gt;.spec.external_services.tracing.external_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;https://tracing-service:8080/jaeger&#34;&gt;https://tracing-service:8080/jaeger&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.grpc_port&#34;&gt;.spec.external_services.tracing.grpc_port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.health_check_url&#34;&gt;.spec.external_services.tracing.health_check_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.in_cluster_url&#34;&gt;.spec.external_services.tracing.in_cluster_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The URL used for in-cluster access to the tracing service.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.internal_url&#34;&gt;.spec.external_services.tracing.internal_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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=&#34;http://tracing.istio-system:16685&#34;&gt;http://tracing.istio-system:16685&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.is_core&#34;&gt;.spec.external_services.tracing.is_core&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.namespace_selector&#34;&gt;.spec.external_services.tracing.namespace_selector&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Kiali use this boolean to find traces with a namespace selector : service.namespace.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.provider&#34;&gt;.spec.external_services.tracing.provider&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.query_scope&#34;&gt;.spec.external_services.tracing.query_scope&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.query_timeout&#34;&gt;.spec.external_services.tracing.query_timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config&#34;&gt;.spec.external_services.tracing.tempo_config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings used to configure the access url to the Tempo Datasource in Grafana.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.cache_capacity&#34;&gt;.spec.external_services.tracing.tempo_config.cache_capacity&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.cache_enabled&#34;&gt;.spec.external_services.tracing.tempo_config.cache_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A FIFO cache with the last &lt;code&gt;cache_capacity&lt;/code&gt; traces viewed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.datasource_uid&#34;&gt;.spec.external_services.tracing.tempo_config.datasource_uid&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The unique identifier (uid) of the Tempo datasource in Grafana.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.name&#34;&gt;.spec.external_services.tracing.tempo_config.name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.namespace&#34;&gt;.spec.external_services.tracing.tempo_config.namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.org_id&#34;&gt;.spec.external_services.tracing.tempo_config.org_id&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The Id of the organization that the dashboard is in. Default to 1 (the first and default organization).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.tenant&#34;&gt;.spec.external_services.tracing.tempo_config.tenant&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.tempo_config.url_format&#34;&gt;.spec.external_services.tracing.tempo_config.url_format&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.url&#34;&gt;.spec.external_services.tracing.url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The URL used to access the tracing service from external sources.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.use_grpc&#34;&gt;.spec.external_services.tracing.use_grpc&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.use_waypoint_name&#34;&gt;.spec.external_services.tracing.use_waypoint_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.whitelist_istio_system&#34;&gt;.spec.external_services.tracing.whitelist_istio_system&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Kiali will get the traces of these services found in the Istio control plane namespace.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.external_services.tracing.whitelist_istio_system[*]&#34;&gt;.spec.external_services.tracing.whitelist_istio_system[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config&#34;&gt;.spec.health_config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;This section defines what it means for nodes to be healthy. For more details, see &lt;a href=&#34;https://kiali.io/docs/configuration/health/&#34;&gt;https://kiali.io/docs/configuration/health/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.compute&#34;&gt;.spec.health_config.compute&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration for health pre-computation and caching.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.compute.duration&#34;&gt;.spec.health_config.compute.duration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The time period over which health is calculated. Used as the rate interval for Prometheus queries. Minimum is &amp;lsquo;1m&amp;rsquo;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.compute.refresh_interval&#34;&gt;.spec.health_config.compute.refresh_interval&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The interval between health cache refreshes.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.compute.timeout&#34;&gt;.spec.health_config.compute.timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate&#34;&gt;.spec.health_config.rate&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*]&#34;&gt;.spec.health_config.rate[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].kind&#34;&gt;.spec.health_config.rate[*].kind&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The type of resource that this configuration applies to. This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].name&#34;&gt;.spec.health_config.rate[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of a resource that this configuration applies to. This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].namespace&#34;&gt;.spec.health_config.rate[*].namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the namespace that this configuration applies to. This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance&#34;&gt;.spec.health_config.rate[*].tolerance&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A list of tolerances for this configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*]&#34;&gt;.spec.health_config.rate[*].tolerance[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*].code&#34;&gt;.spec.health_config.rate[*].tolerance[*].code&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The status code that applies for this tolerance. This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*].degraded&#34;&gt;.spec.health_config.rate[*].tolerance[*].degraded&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Health will be considered degraded when the telemetry reaches this value (specified as an integer representing a percentage).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*].direction&#34;&gt;.spec.health_config.rate[*].tolerance[*].direction&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The direction that applies for this tolerance (e.g. inbound or outbound). This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*].failure&#34;&gt;.spec.health_config.rate[*].tolerance[*].failure&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.health_config.rate[*].tolerance[*].protocol&#34;&gt;.spec.health_config.rate[*].tolerance[*].protocol&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The protocol that applies for this tolerance (e.g. grpc or http). This is a regular expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.identity&#34;&gt;.spec.identity&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings that define the Kiali server identity.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.identity.cert_file&#34;&gt;.spec.identity.cert_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.identity.private_key_file&#34;&gt;.spec.identity.private_key_file&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.installation_tag&#34;&gt;.spec.installation_tag&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels&#34;&gt;.spec.istio_labels&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Defines specific labels used by Istio that Kiali needs to know about.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.app_label_name&#34;&gt;.spec.istio_labels.app_label_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.egress_gateway_label&#34;&gt;.spec.istio_labels.egress_gateway_label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The selector label for Egress Gateway workload. This is typically &lt;code&gt;istio=egressgateway&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.ingress_gateway_label&#34;&gt;.spec.istio_labels.ingress_gateway_label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The selector label for Ingress Gateway workload. This is typically &lt;code&gt;istio=ingressgateway&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.injection_label_name&#34;&gt;.spec.istio_labels.injection_label_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The name of the label used to instruct Istio to automatically inject sidecar proxies when applications are deployed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.injection_label_rev&#34;&gt;.spec.istio_labels.injection_label_rev&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The label used to identify the Istio revision.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_labels.version_label_name&#34;&gt;.spec.istio_labels.version_label_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.istio_namespace&#34;&gt;.spec.istio_namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags&#34;&gt;.spec.kiali_feature_flags&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Kiali features that can be enabled or disabled.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.certificates_information_indicators&#34;&gt;.spec.kiali_feature_flags.certificates_information_indicators&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: Settings for certificate information indicators.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.certificates_information_indicators.enabled&#34;&gt;.spec.kiali_feature_flags.certificates_information_indicators.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: When true, certificate information indicators will be displayed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.certificates_information_indicators.secrets&#34;&gt;.spec.kiali_feature_flags.certificates_information_indicators.secrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: List of secrets that contain certificate information.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.certificates_information_indicators.secrets[*]&#34;&gt;.spec.kiali_feature_flags.certificates_information_indicators.secrets[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering&#34;&gt;.spec.kiali_feature_flags.clustering&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: Multi-cluster related features.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.autodetect_secrets&#34;&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: Settings to allow cluster secrets to be auto-detected.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.autodetect_secrets.enabled&#34;&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: If true then remote cluster secrets will be autodetected.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.autodetect_secrets.label&#34;&gt;.spec.kiali_feature_flags.clustering.autodetect_secrets.label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The name and value of a label that exists on all remote cluster secrets.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.clusters&#34;&gt;.spec.kiali_feature_flags.clustering.clusters&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A list of clusters that the Kiali Server can access.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.clusters[*]&#34;&gt;.spec.kiali_feature_flags.clustering.clusters[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.clusters[*].name&#34;&gt;.spec.kiali_feature_flags.clustering.clusters[*].name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The name of the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.clusters[*].secret_name&#34;&gt;.spec.kiali_feature_flags.clustering.clusters[*].secret_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.enable_exec_provider&#34;&gt;.spec.kiali_feature_flags.clustering.enable_exec_provider&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: Flag to enable exec provider for clustering authentication.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: A map between cluster name, instance name and namespace to a Kiali URL.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls[*]&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls[*].cluster_name&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].cluster_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The name of the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls[*].instance_name&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].instance_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The instance name of this Kiali installation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls[*].namespace&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The namespace into which Kiali is installed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.clustering.kiali_urls[*].url&#34;&gt;.spec.kiali_feature_flags.clustering.kiali_urls[*].url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;DEPRECATED AFTER v1.73: The URL of Kiali in the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.custom_workload_types&#34;&gt;.spec.kiali_feature_flags.custom_workload_types&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Enable observability tabs (Traffic, Logs, Metrics, Traces) for custom workload types beyond the built-in Kubernetes controllers.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.custom_workload_types[*]&#34;&gt;.spec.kiali_feature_flags.custom_workload_types[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.custom_workload_types[*].group&#34;&gt;.spec.kiali_feature_flags.custom_workload_types[*].group&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The API group of the custom workload type (e.g., &amp;lsquo;argoproj.io&amp;rsquo;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.custom_workload_types[*].kind&#34;&gt;.spec.kiali_feature_flags.custom_workload_types[*].kind&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The kind of the custom workload type (e.g., &amp;lsquo;Rollout&amp;rsquo;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.custom_workload_types[*].version&#34;&gt;.spec.kiali_feature_flags.custom_workload_types[*].version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;span class=&#34;property-required&#34;&gt;*Required*&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The API version of the custom workload type (e.g., &amp;lsquo;v1alpha1&amp;rsquo;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.disabled_features&#34;&gt;.spec.kiali_feature_flags.disabled_features&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.disabled_features[*]&#34;&gt;.spec.kiali_feature_flags.disabled_features[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.istio_annotation_action&#34;&gt;.spec.kiali_feature_flags.istio_annotation_action&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to enable/disable an Action to edit annotations.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.istio_injection_action&#34;&gt;.spec.kiali_feature_flags.istio_injection_action&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to enable/disable an Action to label a namespace for automatic Istio Sidecar injection.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.istio_upgrade_action&#34;&gt;.spec.kiali_feature_flags.istio_upgrade_action&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to activate the Kiali functionality of upgrading namespaces to point to an installed Istio Canary revision.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults&#34;&gt;.spec.kiali_feature_flags.ui_defaults&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the UI. These defaults apply to all users.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the Graph UI.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.find_options&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].auto_select&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].auto_select&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].description&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].expression&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.find_options[*].expression&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The find expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.hide_options&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].auto_select&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].auto_select&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].description&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].expression&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.hide_options[*].expression&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The hide expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.settings&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.settings&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Various presentation options.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.settings.animation&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.settings.animation&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.traffic&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;These settings determine which rates are used to determine graph traffic.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.traffic.ambient&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.ambient&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.traffic.grpc&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.grpc&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.traffic.http&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.http&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.graph.traffic.tcp&#34;&gt;.spec.kiali_feature_flags.ui_defaults.graph.traffic.tcp&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.i18n&#34;&gt;.spec.kiali_feature_flags.ui_defaults.i18n&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the i18n values.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.i18n.language&#34;&gt;.spec.kiali_feature_flags.ui_defaults.i18n.language&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default language used in Kiali application.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.i18n.show_selector&#34;&gt;.spec.kiali_feature_flags.ui_defaults.i18n.show_selector&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;If true Kiali masthead displays language selector icon.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.list&#34;&gt;.spec.kiali_feature_flags.ui_defaults.list&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the List views (Apps, Workloads, etc).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.list.include_health&#34;&gt;.spec.kiali_feature_flags.ui_defaults.list.include_health&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Include Health column (by default) for applicable list views. Setting to false can improve performance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.list.include_istio_resources&#34;&gt;.spec.kiali_feature_flags.ui_defaults.list.include_istio_resources&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Include Istio resources (by default) in Details column for applicable list views. Setting to false can improve performance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.list.include_validations&#34;&gt;.spec.kiali_feature_flags.ui_defaults.list.include_validations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Include Configuration validation column (by default) for applicable list views. Setting to false can improve performance.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.list.show_include_toggles&#34;&gt;.spec.kiali_feature_flags.ui_defaults.list.show_include_toggles&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the Mesh UI.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.find_options&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].auto_select&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].auto_select&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].description&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].expression&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.find_options[*].expression&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The find expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].auto_select&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].auto_select&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].description&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].description&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Human-readable text to let the user know what the expression does.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].expression&#34;&gt;.spec.kiali_feature_flags.ui_defaults.mesh.hide_options[*].expression&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The hide expression.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Additional label aggregation for inbound metric pages in detail pages.
You will see these configurations in the &amp;lsquo;Metric Settings&amp;rsquo; drop-down.
An example,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  kiali_feature_flags:
    ui_defaults:
      metrics_inbound:
        aggregations:
        - display_name: Istio Network
          label: topology_istio_io_network
        - display_name: Istio Revision
          label: istio_io_rev
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].display_name&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].display_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].label&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].single_selection&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_inbound.aggregations[*].single_selection&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to indicate if only one option can be selected for this aggregation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Additional label aggregation for outbound metric pages in detail pages.
You will see these configurations in the &amp;lsquo;Metric Settings&amp;rsquo; drop-down.
An example,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;spec:
  kiali_feature_flags:
    ui_defaults:
      metrics_outbound:
        aggregations:
        - display_name: Istio Network
          label: topology_istio_io_network
        - display_name: Istio Revision
          label: istio_io_rev
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].display_name&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].display_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].label&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].label&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-6&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].single_selection&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_outbound.aggregations[*].single_selection&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Flag to indicate if only one option can be selected for this aggregation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.metrics_per_refresh&#34;&gt;.spec.kiali_feature_flags.ui_defaults.metrics_per_refresh&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.namespaces&#34;&gt;.spec.kiali_feature_flags.ui_defaults.namespaces&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.namespaces[*]&#34;&gt;.spec.kiali_feature_flags.ui_defaults.namespaces[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.refresh_interval&#34;&gt;.spec.kiali_feature_flags.ui_defaults.refresh_interval&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.tracing&#34;&gt;.spec.kiali_feature_flags.ui_defaults.tracing&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Default settings for the Tracing UI.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.ui_defaults.tracing.limit&#34;&gt;.spec.kiali_feature_flags.ui_defaults.tracing.limit&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.validations&#34;&gt;.spec.kiali_feature_flags.validations&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Features specific to the validations subsystem.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.validations.ignore&#34;&gt;.spec.kiali_feature_flags.validations.ignore&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;A list of one or more validation codes whose errors are to be ignored.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.validations.ignore[*]&#34;&gt;.spec.kiali_feature_flags.validations.ignore[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_feature_flags.validations.skip_wildcard_gateway_hosts&#34;&gt;.spec.kiali_feature_flags.validations.skip_wildcard_gateway_hosts&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali_internal&#34;&gt;.spec.kiali_internal&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Unstructured section for internal testing and debugging features.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config&#34;&gt;.spec.kubernetes_config&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration of Kiali&amp;rsquo;s access of the Kubernetes API.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.burst&#34;&gt;.spec.kubernetes_config.burst&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The Burst value of the Kubernetes client.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.cache_duration&#34;&gt;.spec.kubernetes_config.cache_duration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.cache_token_namespace_duration&#34;&gt;.spec.kubernetes_config.cache_token_namespace_duration&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.cluster_name&#34;&gt;.spec.kubernetes_config.cluster_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.excluded_workloads&#34;&gt;.spec.kubernetes_config.excluded_workloads&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.excluded_workloads[*]&#34;&gt;.spec.kubernetes_config.excluded_workloads[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kubernetes_config.qps&#34;&gt;.spec.kubernetes_config.qps&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The QPS value of the Kubernetes client.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.login_token&#34;&gt;.spec.login_token&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.login_token.expiration_seconds&#34;&gt;.spec.login_token.expiration_seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.login_token.signing_key&#34;&gt;.spec.login_token.signing_key&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server&#34;&gt;.spec.server&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Configuration that controls some core components within the Kiali Server.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.address&#34;&gt;.spec.server.address&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Where the Kiali server is bound. The console and API server are accessible on this host.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.audit_log&#34;&gt;.spec.server.audit_log&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, allows additional audit logging on write operations.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.cors_allow_all&#34;&gt;.spec.server.cors_allow_all&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.gzip_enabled&#34;&gt;.spec.server.gzip_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.node_port&#34;&gt;.spec.server.node_port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability&#34;&gt;.spec.server.observability&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings to enable observability into the Kiali server itself.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics&#34;&gt;.spec.server.observability.metrics&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings that control how Kiali itself emits its own metrics.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics.enabled&#34;&gt;.spec.server.observability.metrics.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The metrics HTTP listener is started when either this or health_status.enabled is true.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics.health_status&#34;&gt;.spec.server.observability.metrics.health_status&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics.health_status.enabled&#34;&gt;.spec.server.observability.metrics.health_status.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, Kiali exports kiali_health_status metrics during health cache refresh.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics.health_status.max_consecutive_na&#34;&gt;.spec.server.observability.metrics.health_status.max_consecutive_na&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.metrics.port&#34;&gt;.spec.server.observability.metrics.port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing&#34;&gt;.spec.server.observability.tracing&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Settings that control how the Kiali server itself emits its own tracing data.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.collector_type&#34;&gt;.spec.server.observability.tracing.collector_type&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The collector type to use. Today the only valid value is &lt;code&gt;otel&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.collector_url&#34;&gt;.spec.server.observability.tracing.collector_url&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Used to determine where the Kiali server tracing data will be stored.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.enabled&#34;&gt;.spec.server.observability.tracing.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;When true, the Kiali server itself will product its own tracing data.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.otel&#34;&gt;.spec.server.observability.tracing.otel&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Specific properties when the collector type is &lt;code&gt;otel&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.otel.ca_name&#34;&gt;.spec.server.observability.tracing.otel.ca_name&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.otel.protocol&#34;&gt;.spec.server.observability.tracing.otel.protocol&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.otel.skip_verify&#34;&gt;.spec.server.observability.tracing.otel.skip_verify&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-5&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.otel.tls_enabled&#34;&gt;.spec.server.observability.tracing.otel.tls_enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-4&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.observability.tracing.sampling_rate&#34;&gt;.spec.server.observability.tracing.sampling_rate&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(number)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Sampling rate for Kiali server traces. &amp;gt;= 1.0 always samples and &amp;lt;= 0 never samples.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.port&#34;&gt;.spec.server.port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The port that the server will bind to in order to receive console and API requests.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.profiler&#34;&gt;.spec.server.profiler&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Controls the internal profiler used to debug the internals of Kiali&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.profiler.enabled&#34;&gt;.spec.server.profiler.enabled&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.require_auth&#34;&gt;.spec.server.require_auth&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(boolean)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.web_fqdn&#34;&gt;.spec.server.web_fqdn&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.web_history_mode&#34;&gt;.spec.server.web_history_mode&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.web_port&#34;&gt;.spec.server.web_port&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.web_root&#34;&gt;.spec.server.web_root&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.web_schema&#34;&gt;.spec.server.web_schema&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.server.write_timeout&#34;&gt;.spec.server.write_timeout&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The maximum duration before timing out writes of the HTTP response back to the client.
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;
&lt;p&gt;In OpenShift clusters, the route request time out should be also increased.
This can be done by annotating the specific route with &lt;code&gt;haproxy.router.openshift.io/timeout&lt;/code&gt;.
See &lt;a href=&#34;https://docs.openshift.com/container-platform/4.16/networking/routes/route-configuration.html#nw-configuring-route-timeouts_route-configuration&#34;&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.version&#34;&gt;.spec.version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The version of the Ansible role that will be executed in order to install Kiali.
This also indirectly determines the version of Kiali that will be installed.
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;
&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;
thus the most recent release of Kiali will be installed.&lt;/p&gt;
&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),
&lt;a href=&#34;https://github.com/kiali/kiali-operator/blob/master/playbooks/kiali-default-supported-images.yml&#34;&gt;https://github.com/kiali/kiali-operator/blob/master/playbooks/kiali-default-supported-images.yml&lt;/a&gt;&lt;/p&gt;
&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
&lt;code&gt;deployment.image_version&lt;/code&gt; settings. See the documentation for those settings below for
additional details. In short, this &lt;code&gt;version&lt;/code&gt; setting will dictate which version of the
Kiali image will be deployed by default. However, if you explicitly set &lt;code&gt;deployment.image_name&lt;/code&gt;
and/or &lt;code&gt;deployment.image_version&lt;/code&gt; to reference your own custom image, that will override the
default Kiali image to be installed; therefore, you are responsible for ensuring those settings
are compatible with the Ansible role that will be executed in order to install Kiali (i.e. your
custom Kiali image must be compatible with the rest of the configuration and resources the
operator will install).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-0&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.status&#34;&gt;.status&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The processing status of this CR as reported by the Kiali operator.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Multi-cluster</title>
      <link>https://v2-24.kiali.io/docs/configuration/multi-cluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/multi-cluster/</guid>
      <description>
        
        
        &lt;p&gt;Kiali has &lt;a href=&#34;https://v2-24.kiali.io/docs/features/multi-cluster/&#34;&gt;support for Istio multi-cluster installations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/multi-cluster.png&#34; alt=&#34;Kiali multi-cluster&#34;&gt;&lt;/p&gt;
&lt;p&gt;Before proceeding with the setup, ensure you meet the requirements.&lt;/p&gt;
&lt;h3 id=&#34;requirements&#34;&gt;Requirements&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Aggregated metrics and traces.&lt;/strong&gt; Kiali needs a single endpoint for metrics and a single endpoint for traces where it can consume aggregated metrics/traces across all clusters. There are many ways to aggregate metrics/traces such as Prometheus federation or using OTEL collector pipelines but setting these up are outside of the scope of Kiali.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous, OpenID or OpenShift authentication strategy.&lt;/strong&gt; The unified multi-cluster configuration currently only supports anonymous, OpenID and OpenShift &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/authentication/&#34;&gt;authentication strategies&lt;/a&gt;. In addition, current support varies by provider for OpenID across clusters.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;setup&#34;&gt;Setup&lt;/h3&gt;
&lt;p&gt;The unified Kiali multi-cluster setup requires the Kiali Service Account (SA) to have read access to each Kubernetes cluster in the mesh. This is separate from the user credentials that are required when a user logs into Kiali. The user credentials are used to check user access to a namespace and to perform write operations. In anonymous mode, the Kiali SA is used for all operations. Write access need not be required if you only want to give Kiali &amp;ldquo;view-only&amp;rdquo; capabilities. To give the Kiali SA access to each remote cluster, a kubeconfig with credentials needs to be created and mounted into the Kiali pod. While the location of Kiali in relation to the controlplane and dataplane may change depending on your Istio deployment model, the requirements will remain the same.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;Although not required for some deployment models, it is recommended that the Kiali namespace and instance name be consistent across all clusters, including remote clusters without a Kiali server deployed. If not using default values, the following Kiali CR settings should typically have consistent values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;spec.deployment.namespace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spec.deployment.instance_name&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;



&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    If you would like to keep a separate Kiali per cluster and do not want to give Kiali access to remote clusters, you can still manually specify the remote cluster and remote Kiali URLs in the Kiali configuration and the UI will try to provide links to the remote Kiali where appropriate. See &lt;a href=&#34;#adding-an-inaccessible-cluster&#34;&gt;below&lt;/a&gt; for more details.

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a SA and its associated resources on the remote cluster.&lt;/strong&gt; In order for Kiali to access a remote cluster, you first must create a SA and its role/role binding with the proper permissions. There are three ways to do this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kiali Operator (recommended):&lt;/strong&gt; Deploy the Kiali Operator on the remote cluster and create a Kiali CR with &lt;code&gt;spec.deployment.remote_cluster_resources_only: true&lt;/code&gt;. The Operator will create and manage the SA, role, and role binding. Deleting the Kiali CR will remove these resources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kiali Server helm chart:&lt;/strong&gt; Use the &lt;code&gt;kiali-server&lt;/code&gt; helm chart with &lt;code&gt;--set deployment.remote_cluster_resources_only=true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;kiali-prepare-remote-cluster.sh&lt;/code&gt; script:&lt;/strong&gt; Use the script with &lt;code&gt;--process-remote-resources true&lt;/code&gt;. See the script usage notes in step 2 below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    If using the &lt;code&gt;openshift&lt;/code&gt; auth strategy, there are additional OpenShift-specific requirements for this step. See the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/authentication/openshift/#multi-cluster&#34;&gt;OpenShift multi-cluster documentation&lt;/a&gt; before proceeding.

&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a remote cluster secret.&lt;/strong&gt; Kiali needs a kubeconfig stored in a Kubernetes secret in order to access the remote cluster. This secret contains the SA token from step 1 and the remote cluster&amp;rsquo;s connection info. A remote cluster secret will look something like this:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Secret&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;my-cluster-name&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali.io/multiCluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;stringData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;my-cluster-name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    apiVersion: v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    kind: Config
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    preferences: {}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    current-context: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    contexts:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      context:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        cluster: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        user: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    users:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      user:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        token: &amp;lt;...the long remote cluster SA token string goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    clusters:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      cluster:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        server: &amp;lt;...the URL to your remote cluster goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        certificate-authority-data: &amp;lt;...the long CA data goes here...&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can place multiple kubeconfigs in a single secret, each under its own key in &lt;code&gt;stringData&lt;/code&gt; where the key name must be the name of the remote cluster. Name the secret &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt; for the added benefit of having the operator automatically detect this secret without having to configure anything within the Kiali CR. If you do name the secret &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt; you also can add to it the label &lt;code&gt;kiali.io/kiali-multi-cluster-secret=&amp;quot;true&amp;quot;&lt;/code&gt; which will tell the operator to restart the Kiali Server pod automatically when the secret changes thus allowing the server to pick up the changes immediately. A multi-cluster secret with two clusters named &lt;code&gt;my-cluster-name&lt;/code&gt; and &lt;code&gt;my-other-cluster&lt;/code&gt; would look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Secret&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-multi-cluster-secret&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali.io/kiali-multi-cluster-secret&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;stringData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;my-cluster-name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    apiVersion: v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    kind: Config
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    preferences: {}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    current-context: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    contexts:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      context:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        cluster: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        user: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    users:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      user:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        token: &amp;lt;...the long remote cluster SA token string goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    clusters:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-cluster-name
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      cluster:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        server: &amp;lt;...the URL to your remote cluster goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        certificate-authority-data: &amp;lt;...the long CA data goes here...&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;my-other-cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    apiVersion: v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    kind: Config
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    preferences: {}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    current-context: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    contexts:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      context:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        cluster: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        user: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    users:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      user:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        token: &amp;lt;...the long remote cluster SA token string goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    clusters:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;    - name: my-other-cluster
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;      cluster:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        server: &amp;lt;...the URL to your remote cluster goes here...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;        certificate-authority-data: &amp;lt;...the long CA data goes here...&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;a href=&#34;https://github.com/kiali/kiali/blob/master/hack/istio/multicluster/verify-kiali-permissions.sh&#34;&gt;verify-kiali-permissions.sh script&lt;/a&gt; can be used to check that your remote cluster secret provides the necessary permissions that Kiali needs to access the remote cluster. See the comments at the top of the script and its &lt;code&gt;--help&lt;/code&gt; output for details on how to run it, but here&amp;rsquo;s an example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -L -o verify-kiali-permissions.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/verify-kiali-permissions.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod +x verify-kiali-permissions.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./verify-kiali-permissions.sh --kubeconfig-secret istio-system:kiali-multi-cluster-secret:my-cluster-name --kiali-version v2.10.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It is up to you how you want to create and manage the token and secret, however, you can use the &lt;a href=&#34;https://github.com/kiali/kiali/blob/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh&#34;&gt;kiali-prepare-remote-cluster.sh script&lt;/a&gt; (with the &lt;code&gt;--process-kiali-secret true&lt;/code&gt; option) to simplify this process for you.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;The &lt;code&gt;kiali-prepare-remote-cluster.sh&lt;/code&gt; script can be used to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a Kiali SA and its role/role-binding in the remote cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and/or,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a kubeconfig file and store it in a Kubernetes secret that is created in the namespace where Kiali is deployed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In order to run this script you will need adequate permissions configured in your local kubeconfig for both the cluster on which Kiali is deployed and the remote cluster.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -L -o kiali-prepare-remote-cluster.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod +x kiali-prepare-remote-cluster.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./kiali-prepare-remote-cluster.sh --kiali-cluster-context east --remote-cluster-context west --view-only &lt;span style=&#34;color:#204a87&#34;&gt;false&lt;/span&gt; --process-kiali-secret &lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt; --process-remote-resources &lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;If you used the Kiali Operator (or helm chart) to create the remote cluster resources&lt;/strong&gt; (step 1 above) and are using this script only to create the remote cluster secret (&lt;code&gt;--process-remote-resources false --process-kiali-secret true&lt;/code&gt;), you must pass &lt;code&gt;--kiali-resource-name&lt;/code&gt; set to the name of the Service Account created by the Operator. The Operator names the SA &lt;code&gt;&amp;lt;instance_name&amp;gt;-service-account&lt;/code&gt; (e.g. &lt;code&gt;kiali-service-account&lt;/code&gt; for the default instance name &lt;code&gt;kiali&lt;/code&gt;). For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./kiali-prepare-remote-cluster.sh &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --kiali-cluster-context east &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --remote-cluster-context west &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --kiali-resource-name kiali-service-account &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --process-remote-resources &lt;span style=&#34;color:#204a87&#34;&gt;false&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --process-kiali-secret &lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --view-only &lt;span style=&#34;color:#204a87&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Specifying the remote cluster name:&lt;/strong&gt; The script derives the remote cluster name from the kubeconfig context, which may contain characters not valid in a Kubernetes secret key (e.g. colons in OpenShift-generated context names). Always pass &lt;code&gt;--remote-cluster-name&lt;/code&gt; explicitly, set to the name Istio uses for the remote cluster, to avoid this issue:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./kiali-prepare-remote-cluster.sh &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  ... &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;  --remote-cluster-name west
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use the option &lt;code&gt;--help&lt;/code&gt; for additional details on using the script to create and delete the remote cluster resources and secrets.&lt;/p&gt;


&lt;/div&gt;

&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configure Kiali.&lt;/strong&gt; The Kiali Operator needs to know about the remote cluster secrets so it can mount them into the Kiali Server pod. There are three ways to do this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Auto-discovery by label (default):&lt;/strong&gt; The Kiali Operator will automatically detect any secret in the Kiali deployment namespace that has the label &lt;code&gt;kiali.io/multiCluster=&amp;quot;true&amp;quot;&lt;/code&gt;. The secrets created by the &lt;code&gt;kiali-prepare-remote-cluster.sh&lt;/code&gt; script are labeled this way and will be auto-detected with no additional Kiali CR configuration needed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Explicit configuration:&lt;/strong&gt; In the Kiali CR you can &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.clustering.clusters&#34;&gt;explicitly specify each remote cluster secret&lt;/a&gt; rather than rely on auto-discovery.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Single combined secret:&lt;/strong&gt; Create a single secret named &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt; in the Kiali deployment namespace containing kubeconfigs for all remote clusters, each under its own top-level key in &lt;code&gt;stringData&lt;/code&gt; where the key is the cluster name. If you also label this secret with &lt;code&gt;kiali.io/kiali-multi-cluster-secret=&amp;quot;true&amp;quot;&lt;/code&gt;, the Kiali Operator will auto-detect changes and roll out a new Kiali Server pod automatically.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Do &lt;strong&gt;not&lt;/strong&gt; use the label &lt;code&gt;kiali.io/kiali-multi-cluster-secret=&amp;quot;true&amp;quot;&lt;/code&gt; on any other secret not specifically named &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt;. The operator will not have permission to see that secret and errors will occur if you attempt this.

&lt;/div&gt;



&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    If you have multiple Kiali Servers deployed in the same namespace, and you want to use that single secret named &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt;, all Kiali Servers in that namespace are required to use that secret. If you want each Kiali Server to talk to a different set of clusters, you must not use the &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt; secret.

&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Once the Kiali Operator knows about the remote cluster secrets (either through auto-discovery or through explicit configuration) it will mount them into the Kiali Server pod, putting Kiali in &amp;ldquo;multi-cluster&amp;rdquo; mode. Kiali will begin using those credentials to communicate with the other clusters in the mesh.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configure user access.&lt;/strong&gt; When using anonymous mode, the Kiali SA credentials will be used to display mesh info to the user. When not using anonymous mode, Kiali will check the user&amp;rsquo;s access to each configured cluster&amp;rsquo;s namespace before showing the user any resources from that namespace.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;OpenID&lt;/strong&gt;, refer to your OIDC provider&amp;rsquo;s instructions for configuring user access to a Kubernetes cluster.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;OpenShift&lt;/strong&gt;, see the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/authentication/openshift/#multi-cluster&#34;&gt;OpenShift multi-cluster documentation&lt;/a&gt; for important information about logging into remote clusters from the Kiali UI. This step is required — users must log into each cluster via the Kiali UI to access resources on that cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional - &lt;strong&gt;Narrow metrics to mesh.&lt;/strong&gt; If your unified metrics store also contains data outside of your mesh, you can limit which metrics Kiali will query for by setting the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io#.spec.external_services.prometheus.query_scope&#34;&gt;query_scope&lt;/a&gt; configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it! From here you can login to Kiali and manage your mesh across all clusters from a single Kiali instance.&lt;/p&gt;
&lt;h3 id=&#34;removing-a-cluster&#34;&gt;Removing a Cluster&lt;/h3&gt;
&lt;p&gt;To remove a cluster from Kiali, you must delete the associated remote cluster secret. If you originally created the remote cluster secret via the &lt;a href=&#34;https://github.com/kiali/kiali/blob/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh&#34;&gt;kiali-prepare-remote-cluster.sh script&lt;/a&gt;, run that script again with the same command line options as before but also pass in the command line option &lt;code&gt;--delete true&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Don&amp;rsquo;t forget to remove the resources (such as the SA and its role/role binding) from the remote cluster. If you created these resources with the Kiali Operator, simply delete the Kiali CR from the remote cluster and these resources will be removed. If you used the &lt;code&gt;kiali-prepare-remote-cluster.sh&lt;/code&gt; script to create these resources, use it to remove these resources.

&lt;/div&gt;

&lt;p&gt;After the remote cluster secret has been removed, you must then tell the Kiali Operator to re-deploy the Kiali Server so the Kiali Server no longer attempts to access the now-deleted remote cluster secret. If you are using &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.clustering.autodetect_secrets&#34;&gt;auto-discovery&lt;/a&gt;, you can tell the Kiali Operator to do this by touching the Kiali CR. The easiest way to do this is to simply add or modify any annotation on the Kiali CR. It is recommended that you use the &lt;code&gt;kiali.io/reconcile&lt;/code&gt; annotation as described &lt;a href=&#34;https://v2-24.kiali.io/docs/installation/installation-guide/creating-updating-kiali-cr&#34;&gt;here&lt;/a&gt;. If you did not rely on auto-discovery but instead &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.clustering.clusters&#34;&gt;explicitly specified each remote cluster secret&lt;/a&gt; in the Kiali CR, then you simply have to remove the now-deleted remote cluster secret&amp;rsquo;s information from the Kiali CR&amp;rsquo;s &lt;code&gt;clustering.clusters&lt;/code&gt; section. Finally, if you are using the single &lt;code&gt;kiali-multi-cluster-secret&lt;/code&gt; to define all of your remote clusters (and you labeled that secret with &lt;code&gt;kiali.io/kiali-multi-cluster-secret=&amp;quot;true&amp;quot;&lt;/code&gt;), then you do not have to do anything other than delete that one secret. The Kiali Operator will detect that the secret has been removed and will re-deploy the Kiali Server automatically.&lt;/p&gt;
&lt;h3 id=&#34;adding-an-inaccessible-cluster&#34;&gt;Adding an Inaccessible Cluster&lt;/h3&gt;
&lt;p&gt;If you would like to keep a separate Kiali per cluster or you do not want to give Kiali access to remote clusters, you can still manually specify the remote clusters and remote Kiali URLs in the Kiali configuration and the Kiali UI will try to provide links to the remote Kiali UIs where appropriate.&lt;/p&gt;
&lt;p&gt;For example, if there is a Kiali on the &lt;code&gt;east&lt;/code&gt; cluster that does not have access to the &lt;code&gt;west&lt;/code&gt; cluster and a Kiali on the &lt;code&gt;west&lt;/code&gt; cluster that does not have access to the &lt;code&gt;east&lt;/code&gt; cluster, you can add the following to your Kiali configurations to have each Kiali generate links to the Kiali for that cluster.&lt;/p&gt;
&lt;p&gt;East Kiali configuration&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;clustering:
  clusters:
    name: west
  kiali_urls:
    cluster_name: west
    instance_name: kiali
    namespace: istio-system
    url: https://kiali-external.west.example.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;West Kiali configuration&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;clustering:
  clusters:
    name: east
  kiali_urls:
    cluster_name: east
    instance_name: kiali
    namespace: istio-system
    url: https://kiali-external.east.example.com
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Docs: Namespace access control</title>
      <link>https://v2-24.kiali.io/docs/configuration/rbac/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/rbac/</guid>
      <description>
        
        
        &lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In authentication strategies other than &lt;code&gt;anonymous&lt;/code&gt; Kiali supports limiting the
namespaces that are accessible on a per-user basis. The &lt;code&gt;anonymous&lt;/code&gt;
authentication strategy does not support this, although you can still limit
privileges when using an OpenShift cluster. See the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/authentication/anonymous/#access-control&#34;&gt;access control section in
Anonymous strategy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To authorize namespaces, the standard &lt;code&gt;Roles&lt;/code&gt; resources (or &lt;code&gt;ClusterRoles&lt;/code&gt;)
and &lt;code&gt;RoleBindings&lt;/code&gt; resources (or &lt;code&gt;ClusterRoleBindings&lt;/code&gt;) are used.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    The &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/&#34;&gt;Kubernetes RBAC documentation&lt;/a&gt;
describe how to use &lt;em&gt;Roles, ClusterRoles, RoleBindings&lt;/em&gt; and &lt;em&gt;ClusterRoleBindings&lt;/em&gt;
resources. If you are using OpenShift, read the
&lt;a href=&#34;https://docs.openshift.com/container-platform/latest/authentication/using-rbac.html&#34;&gt;OpenShift RBAC documentation&lt;/a&gt;.

&lt;/div&gt;

&lt;p&gt;Kiali can only restrict or grant &lt;em&gt;read&lt;/em&gt; access to namespaces as a whole. So,
keep in mind that while the RBAC capabilities of the cluster are used to give
access, Kiali won&amp;rsquo;t offer the same privilege granularity that the cluster
supports. For example, a user that does not have privileges to get Kubernetes
&lt;code&gt;Deployments&lt;/code&gt; via typical tools (e.g. &lt;code&gt;kubectl&lt;/code&gt;) would still be able to get
some details of Deployments through Kiali when &lt;a href=&#34;https://v2-24.kiali.io/docs/features/details/&#34;&gt;listing Workloads or when
viewing detail pages&lt;/a&gt;, or in the
&lt;a href=&#34;https://v2-24.kiali.io/docs/features/topology/&#34;&gt;Graph&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some features allow creating or changing resources in the cluster (for example,
&lt;a href=&#34;https://v2-24.kiali.io/docs/features/wizards/&#34;&gt;the Wizards&lt;/a&gt;). For these &lt;em&gt;write&lt;/em&gt;
operations which may be sensitive, the users will need to have the required
privileges in the cluster to perform updates - i.e. the cluster RBAC takes
effect.&lt;/p&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    Kiali is going to reject login to users that aren&amp;rsquo;t authorized to see any namespace.

&lt;/div&gt;

&lt;h2 id=&#34;granting-access-to-namespaces&#34;&gt;Granting access to namespaces&lt;/h2&gt;
&lt;p&gt;In general, Kiali will give &lt;em&gt;read&lt;/em&gt; access to namespaces where the logged in
user is allowed to &lt;em&gt;&amp;ldquo;GET&amp;rdquo;&lt;/em&gt; its definition &amp;ndash; i.e. the user is allowed to do a
&lt;code&gt;GET&lt;/code&gt; call to the &lt;code&gt;api/v1/namespaces/{namespace-name}&lt;/code&gt; endpoint of the cluster
API. Users granted the &lt;em&gt;LIST&lt;/em&gt; verb would get access to all namespaces of the
cluster (that&amp;rsquo;s a &lt;code&gt;GET&lt;/code&gt; call to the &lt;code&gt;api/v1/namespaces&lt;/code&gt; endpoint of the cluster
API).&lt;/p&gt;
&lt;p&gt;You, probably, will want to have this small &lt;code&gt;ClusterRole&lt;/code&gt; to help you in
authorizing individual namespaces in Kiali:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-namespace-authorization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rules&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;namespaces&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;pods/log&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;get&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    The &lt;code&gt;pods/log&lt;/code&gt; privilege is needed for the &lt;a href=&#34;https://v2-24.kiali.io/docs/features/details/#logs&#34;&gt;pods Logs view&lt;/a&gt;.
Since logs are potentially sensitive, you could remove that privilege if you
don&amp;rsquo;t want users to be able to fetch pod logs.

&lt;/div&gt;

&lt;p&gt;Once you have created this &lt;code&gt;ClusterRole&lt;/code&gt;, you would authorize a namespace
&lt;code&gt;foobar&lt;/code&gt; to user &lt;code&gt;john&lt;/code&gt; with the following &lt;code&gt;RoleBinding&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;RoleBinding&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;authorize-ns-foobar-to-john&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;foobar&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;subjects&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;john&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroup&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;roleRef&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-namespace-authorization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# The name of the ClusterRole created previously&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroup&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Note that in this example, the subject kind is &lt;code&gt;User&lt;/code&gt;, which is the case when
using &lt;code&gt;openid&lt;/code&gt; or &lt;code&gt;openshift&lt;/code&gt; authentication strategies. For other
authentication strategies you would need to adjust the &lt;code&gt;RoleBinding&lt;/code&gt; to use the
right subject kind.

&lt;/div&gt;

&lt;p&gt;If you want to authorize a user to access &lt;em&gt;all namespaces&lt;/em&gt; in the cluster, the
most efficient way to do it is by creating a &lt;code&gt;ClusterRole&lt;/code&gt; with the &lt;em&gt;list&lt;/em&gt; verb
for namespaces and bind it to the user using a &lt;code&gt;ClusterRoleBinding&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-all-namespaces-authorization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rules&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;namespaces&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;pods/log&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;get&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRoleBinding&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;authorize-all-namespaces-to-john&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;subjects&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;john&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroup&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;roleRef&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-all-namespaces-authorization&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroup&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Note that the only addition to the &lt;code&gt;ClusterRole&lt;/code&gt; is the &lt;code&gt;list&lt;/code&gt; verb in the first rule.

&lt;/div&gt;

&lt;p&gt;Alternatively, you could also use the previously mentioned
&lt;code&gt;kiali-namespace-authorization&lt;/code&gt; rather than creating a new one with the &lt;em&gt;list&lt;/em&gt;
privilege, and it will work. However, Kiali will perform better if you grant the
&lt;em&gt;list&lt;/em&gt; privilege.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Please read your cluster RBAC documentation to learn more about the
authorization system.

&lt;/div&gt;

&lt;h2 id=&#34;granting-write-privileges-to-namespaces&#34;&gt;Granting write privileges to namespaces&lt;/h2&gt;
&lt;p&gt;Changing resources in the cluster can be a sensitive operation. Because of
this, the logged in user will need to be given the needed privileges to perform
any updates through Kiali. The following &lt;code&gt;ClusterRole&lt;/code&gt; contains all read and write
privileges that may be used in Kiali:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;rbac.authorization.k8s.io/v1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClusterRole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali-write-privileges&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rules&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;namespaces&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;pods&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;replicationcontrollers&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;services&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;patch&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;apps&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;daemonsets&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;deployments&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;replicasets&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;statefulsets&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;patch&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;batch&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;cronjobs&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;jobs&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;patch&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;networking.istio.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;security.istio.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;extensions.istio.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;telemetry.istio.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;gateway.networking.k8s.io&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;get&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;watch&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;create&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;delete&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;patch&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    If needed, you can reduce the set of write privileges to prevent users from changing
unwanted resources. However read privileges are require to read the resources.

&lt;/div&gt;

&lt;p&gt;Similarly to giving access to namespaces, you can either use a &lt;code&gt;RoleBinding&lt;/code&gt; to
give read and write privileges only to specific namespaces, or use a
&lt;code&gt;ClusterRoleBinding&lt;/code&gt; to give privileges to all namespaces.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Namespace Management</title>
      <link>https://v2-24.kiali.io/docs/configuration/namespace-management/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/namespace-management/</guid>
      <description>
        
        
        &lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The default Kiali &lt;a href=&#34;https://v2-24.kiali.io/docs/installation/installation-guide/&#34;&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;
&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=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements&#34;&gt;discovery selectors&lt;/a&gt; that match those namespaces. Note that Kiali will not use &lt;a href=&#34;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&#34;&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;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    This documentation makes a distinction between &lt;em&gt;accessible&lt;/em&gt; and &lt;em&gt;visible&lt;/em&gt; namespaces. The Kiali Server will be given permission to access either (a) all, or (b) a configured subset, of cluster namespaces. The Kiali Server will only be aware of, query for, and access resources within these accessible namespaces. The set of namespaces visible to an end user, via the Kiali UI, will be a subset of the accessible namespaces. In other words, the namespaces visible to a user may be all, or just some of the namespaces accessible to the Kiali Server.

&lt;/div&gt;



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;As of Kiali 2.0, the following settings are no longer supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deployment.accessible_namespaces&lt;/li&gt;
&lt;li&gt;api.namespaces.exclude&lt;/li&gt;
&lt;li&gt;api.namespaces.include&lt;/li&gt;
&lt;li&gt;api.namespaces.label_selector_exclude&lt;/li&gt;
&lt;li&gt;api.namespaces.label_selector_include&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h2 id=&#34;cluster-wide-access-mode&#34;&gt;Cluster Wide Access Mode&lt;/h2&gt;
&lt;p&gt;By default, the Kiali Server is given cluster-wide access to all namespaces on the local cluster. This is controlled by the Kiali CR setting &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt;, which has a default value of &lt;code&gt;true&lt;/code&gt; when not specified.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    You cannot have multiple Kiali Servers with both cluster-wide access and identical instance names. If you wish to install multiple Kiali Servers with cluster-wide access enabled, each must have a unique &lt;code&gt;deployment.instance_name&lt;/code&gt; value.

&lt;/div&gt;

&lt;p&gt;In order to restrict the Kiali Server so that it only has access to certain namespaces on the local cluster, it must first have its cluster-wide access disabled. You do this by setting &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; in the Kiali CR.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    You can still use discovery selectors (explained below) to limit what Kiali will make visible in the UI while &lt;code&gt;cluster_wide_access&lt;/code&gt; remains &lt;code&gt;true&lt;/code&gt;. You would want to do this for the performance benefits it provides the Kiali Server. But with this, the Kiali Server will be granted ClusterRole permissions rather than individual Role permissions per namespace. In other words, it will have &lt;em&gt;access&lt;/em&gt; to all namespaces, but will not make all of them &lt;em&gt;visible&lt;/em&gt;.

&lt;/div&gt;

&lt;h2 id=&#34;accessible-namespaces&#34;&gt;Accessible Namespaces&lt;/h2&gt;
&lt;p&gt;With cluster-wide access disabled, the Kiali Server must be told what namespaces are accessible to it.  These accessible namespaces are defined by a list of discovery selectors that match namespaces.&lt;/p&gt;
&lt;p&gt;The list of accessible namespaces is specified in the Kiali CR via the &lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt; setting. As an example, if Kiali is to be installed in the &lt;code&gt;istio-system&lt;/code&gt; namespace, and is expected to monitor all namespaces with the label &amp;ldquo;my-mesh&amp;rdquo;, the setting would be:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster_wide_access&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;my-mesh&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Exists&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When &lt;code&gt;cluster_wide_access&lt;/code&gt; is set to &lt;code&gt;false&lt;/code&gt;, the Kiali Operator will examine the &lt;code&gt;default&lt;/code&gt; selectors under &lt;code&gt;spec.deployment.discovery_selectors&lt;/code&gt;, as the example above illustrates. The Kiali Operator will then attempt to find all of the namespaces that match the discovery selectors. For each namespace that matches the discovery selectors, the Kiali Operator will create a Role and assign that Role to the Kiali Service Account thus giving Kiali access to those namespaces. These namespaces are therefore called the &amp;ldquo;accessible namespaces&amp;rdquo;.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    The Kiali Operator will always give the Kiali Server access to the namespace where the Kiali Server is installed, whether its namespace matches a discovery selector or not. When &lt;code&gt;cluster_wide_access&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt; and no discovery selectors are defined, the Kiali Server will only be given access to its namespace.

&lt;/div&gt;



&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Because the Kiali Server utilizes Kubernetes watches to watch all accessible namespaces, this may cause performance issues. To increase performance you can set &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; even when specifying a list of discovery selectors. When you do this, the Kiali Server will be given access to the entire cluster and thus it can use a single cluster watch which increases performance and efficiency. However, you must be aware that when you do this, the Kiali Server will be granted access to the cluster via a ClusterRole - individual Roles will not be created per namespace. The &lt;code&gt;spec.deployment.discovery_selectors&lt;/code&gt; will still be used to determine which namespaces can be visible to users.

&lt;/div&gt;



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;If you install Kiali using the &lt;a href=&#34;https://v2-24.kiali.io/docs/installation/installation-guide/install-with-helm/&#34;&gt;Server Helm Chart&lt;/a&gt;, these Roles will be created when &lt;code&gt;cluster_wide_access=false&lt;/code&gt;. However, the Server Helm Chart does not provide the same lifecycle management features as the operator:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The operator automatically cleans up Roles/RoleBindings from namespaces that are no longer accessible when discovery selectors (&lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt;) change&lt;/li&gt;
&lt;li&gt;The operator handles transitions when &lt;code&gt;view_only_mode&lt;/code&gt; or &lt;code&gt;auth.strategy&lt;/code&gt; settings change (RoleBindings are immutable and must be deleted/recreated)&lt;/li&gt;
&lt;li&gt;The operator explicitly cleans up ClusterRole/ClusterRoleBinding resources when switching from &lt;code&gt;cluster_wide_access=true&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The operator adds labels to accessible namespaces to mark which Kiali instance manages them&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With the Server Helm Chart, you may need to manually clean up resources when changing these configurations. For full lifecycle management, use the operator. The Server Helm Chart is provided only as a convenience.&lt;/p&gt;


&lt;/div&gt;



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    If you install the Kiali Operator using the &lt;a href=&#34;https://v2-24.kiali.io/docs/installation/installation-guide/install-with-helm/#install-with-operator&#34;&gt;Operator Helm Chart&lt;/a&gt;, to be able to use &lt;code&gt;cluster_wide_access=true&lt;/code&gt;, you must specify the &lt;code&gt;--set clusterRoleCreator=true&lt;/code&gt; flag when invoking &lt;code&gt;helm install&lt;/code&gt;.

&lt;/div&gt;



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    When installing multiple Kiali instances into a single cluster, &lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt; must be mutually exclusive. In other words, a namespace must be matched by the discovery selectors defined by one and only one Kiali CR on the cluster.

&lt;/div&gt;

&lt;h2 id=&#34;istio-discovery-selectors&#34;&gt;Istio Discovery Selectors&lt;/h2&gt;
&lt;p&gt;In Istio&amp;rsquo;s &lt;a href=&#34;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&#34;&gt;MeshConfig&lt;/a&gt;, a list of discovery selectors can be configured. These Istio discovery selectors define the namespaces that Istio will consider &amp;ldquo;in the mesh&amp;rdquo; (see &lt;a href=&#34;https://istio.io/v1.13/blog/2021/discovery-selectors/&#34;&gt;this blog post&lt;/a&gt; for details). These Istio discovery selectors are utilized only by Istio; they will be ignored by Kiali.&lt;/p&gt;
&lt;h2 id=&#34;operator-namespace-watching&#34;&gt;Operator Namespace Watching&lt;/h2&gt;
&lt;p&gt;Note that the discovery selectors are evaluated by the Kiali Operator at install time when deciding which namespaces should be accessible (and thus which Roles to create). Namespaces that do not exist at the time of install will not be accessible to Kiali until the operator has a chance to reconcile the Kiali CR. There are several ways in which the operator can be told to reconcile a Kiali CR in order to determine the new set of accessible namespaces.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You can ask the Kiali Operator to periodically reconcile the Kiali CR on a fixed schedule. See the &lt;a href=&#34;https://sdk.operatorframework.io/docs/building-operators/ansible/reference/advanced_options/#ansiblesdkoperatorframeworkioreconcile-period-custom-resource-annotation&#34;&gt;Ansible Operator SDK documentation describing the reconcile-period annotation&lt;/a&gt;. In short, you can have the Kiali Operator periodically reconcile a Kiali CR by setting the &lt;code&gt;ansible.sdk.operatorframework.io/reconcile-period&lt;/code&gt; annotation on the Kiali CR. For example, to reconcile this Kiail CR every 60 seconds:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Kiali&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ansible.sdk.operatorframework.io/reconcile-period&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;60s&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Modifying the &lt;code&gt;deployment.discovery_selectors.default&lt;/code&gt; list of discovery selectors will automatically trigger the Kiali Operator to reconcile a Kiali CR and discover new namespaces. In fact, touching any &lt;code&gt;spec&lt;/code&gt; field in the Kiali CR will trigger a reconciliation of the Kiali CR.&lt;/li&gt;
&lt;li&gt;Similar to the above, touching any annotation on the Kiali CR will also trigger a reconciliation. One suggestion is to dedicate an annotation whose purpose is solely to trigger operator reconcilations. For example, add or modify the &amp;ldquo;trigger-reconcile&amp;rdquo; annotation on the Kiali CR to trigger the operator to run a reconcilation on that Kiali CR:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl annotate kiali my-kiali-cr --namespace istio-system --overwrite trigger-reconcile&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;$(&lt;/span&gt;date&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;The Kiali Operator can be enabled to watch for namespaces getting created in the cluster. When new namespaces are created, the Kiali Operator will detect this and will then attempt to reconcile all Kiali CRs in the cluster. To enable operator namespace watching, see the &lt;a href=&#34;https://v2-24.kiali.io/docs/faq/installation/&#34;&gt;FAQ&lt;/a&gt; describing the operator WATCHES_FILE environment variable. Note that on clusters with large numbers of namespaces that get created, enabling this namespace watching feature can cause the operator to consume a lot of CPU, so you may not wish to use this method.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once the Kiali Operator is triggered to reconcile a Kiali CR, the operator will create the necessary Roles for all accessible namespaces, giving the Kiali Server access to any new namespaces that have been created since the last reconciliation.&lt;/p&gt;
&lt;h2 id=&#34;multi-cluster-environments&#34;&gt;Multi-Cluster Environments&lt;/h2&gt;
&lt;p&gt;The Kiali CR &lt;code&gt;deployment.discover_selectors&lt;/code&gt; section supports multi-cluster configurations.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;default&lt;/code&gt; discovery selectors define the namespaces on the local cluster that Kiali will have access to (as explained above). These namespaces are made visible to Kiali users.&lt;/p&gt;
&lt;p&gt;It is assumed Kiali will have access to the same set of namespaces on the remote clusters as well. So Kiali will make those remote namespaces visible to users. However, if a remote cluster has a different set of namespaces that should be visible to Kiali users, you can set discovery selector &lt;code&gt;overrides&lt;/code&gt; in &lt;code&gt;deployment.discovery_selectors&lt;/code&gt; to match those remote namespaces.&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    Each remote cluster &lt;code&gt;overrides&lt;/code&gt; section completely overrides the default discovery selectors. That is to say, if a remote cluster has discovery selector overrides defined, only those selectors are used to determine which remote namespaces are to be visible to users. The &lt;code&gt;default&lt;/code&gt; discovery selectors will not be used for a particular remote cluster when &lt;code&gt;overrides&lt;/code&gt; are defined for that remote cluster.

&lt;/div&gt;

&lt;p&gt;Here is an example of defining discovery selectors for a remote cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster_wide_access&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# define accessible namespaces on the local cluster&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;my-mesh&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Exists&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;overrides&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# My remote cluster has a different set of namespaces&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;my-remote-cluster&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;org&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;production&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;east&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can define overrides for multiple remote clusters:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster_wide_access&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;south&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;overrides&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;east&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;west&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cluster3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;north&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;discovery-selectors&#34;&gt;Discovery Selectors&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;default&lt;/code&gt; and &lt;code&gt;overrides&lt;/code&gt; discovery selectors are processed in the same manner. They follow the same semantics as Istio as described in the &lt;a href=&#34;https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig&#34;&gt;Istio discoverySelectors documentation&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;


    &lt;p&gt;An empty list of discovery selectors has different semantics depending on the value of &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, an empty list of discovery selectors means all namespaces will be visible except those that are considered system namespaces. These include namespaces whose names are prefixed with &amp;ldquo;kube-&amp;rdquo;, &amp;ldquo;openshift&amp;rdquo; or &amp;ldquo;ibm&amp;rdquo; such as &lt;code&gt;kube-system&lt;/code&gt;, &lt;code&gt;openshift-operators&lt;/code&gt;, and &lt;code&gt;ibm-system&lt;/code&gt;. (&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#working-with-namespaces&#34;&gt;Kubernetes has reserved&lt;/a&gt; all namespaces prefixed with &lt;code&gt;kube-&lt;/code&gt; as system namespaces and users are cautioned against creating them). System namespaces such as these should not be considered to have service mesh components and so are excluded by Kiali. If, for some reason, you want to consider these namespaces in your service mesh, you can do so by defining discovery selectors, or alternatively you can rename your namespaces so they do not resemble system namespaces.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;deployment.cluster_wide_access&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;, an empty list of discovery selectors means only the Kiali deployment namespace will be accessible. This is not particularly useful as it will not include any application namespaces.&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;



&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    The Kiali deployment namespace will always be made accessible by Kiali. It is required that Istio control plane namespaces are also accessible. Istio control plane namespace(s) not co-located with Kiali must have their namespaces included in the defined discovery selectors.

&lt;/div&gt;

&lt;p&gt;In short, the &lt;code&gt;default&lt;/code&gt; discovery selectors and each remote cluster &lt;code&gt;overrides&lt;/code&gt; are lists of equality-based and set-based label selectors, with each item in a list being disjunctive (that is, match results from each selector item in a selector list are OR&amp;rsquo;ed together).&lt;/p&gt;
&lt;p&gt;Each discovery selector list item itself can consist of one &lt;code&gt;matchLabels&lt;/code&gt;, one &lt;code&gt;matchExpressions&lt;/code&gt;, or both. A &lt;code&gt;matchLabels&lt;/code&gt; can match one or more labels; a &lt;code&gt;matchExpressions&lt;/code&gt; can match one or more expressions. All results within a single discovery selector list item are AND&amp;rsquo;ed together (that is to say, a namespace must match all label selector conditions in order for that namespace to be selected by that label selector).&lt;/p&gt;
&lt;p&gt;For details on equality-based and set-based selector syntax and semantics, see the &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors&#34;&gt;Kubernetes documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below are a couple of examples to help you understand these semantics.&lt;/p&gt;
&lt;p&gt;This defines a discovery selector list that contains a single label selector that consists of one equality-based selector and one set-based selector. The namespaces that match this discovery selector are those that have a &lt;code&gt;env=production&lt;/code&gt; label AND a &lt;code&gt;org=frontdesk&lt;/code&gt; label AND a &lt;code&gt;app=ticketing&lt;/code&gt; label AND a &lt;code&gt;color=blue&lt;/code&gt; label:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;production&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;org&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;frontdesk&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ticketing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;blue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Suppose we want to also make accessible all namespaces that have the label &lt;code&gt;region=east&lt;/code&gt;. We add another discover selector to the list:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;discovery_selectors&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;region&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;east&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;production&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;org&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;frontdesk&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ticketing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;operator&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;In&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;values&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;blue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now all the same namespaces that matched before are also matched. But in addition, all namespaces that simply have a label &lt;code&gt;region=east&lt;/code&gt; will also match. This is because both label selectors in the list are OR&amp;rsquo;ed together.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: No Istiod Access</title>
      <link>https://v2-24.kiali.io/docs/configuration/no-istiod/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/no-istiod/</guid>
      <description>
        
        
        &lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&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;
&lt;ul&gt;
&lt;li&gt;The Istio API has been explicitly disabled in the Istio configuration.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://istio.io/latest/docs/ops/deployment/deployment-models/#multiple-clusters&#34;&gt;deployment model&lt;/a&gt; prevents access to the Istio API (firewalls, other networking concerns or limitations).&lt;/li&gt;
&lt;li&gt;The API is configured but for some, potentially unexpected, reason can not be reached by Kiali.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&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;
By default, istio_api_enabled is true.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;external_services&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;istio_api_enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;how-does-it-affect-kiali&#34;&gt;How does it affect Kiali&lt;/h2&gt;
&lt;p&gt;When the Istio API is not available there is expected feature degradation in Kiali:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The control plane metrics won&amp;rsquo;t be available.&lt;/li&gt;
&lt;li&gt;The proxy status won&amp;rsquo;t be available in the workloads details view.&lt;/li&gt;
&lt;li&gt;The control plane status will be calculated based on the namespace status, instead of the istio component status.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;#a-nameistio_validationsa-istio-validations&#34;&gt;Istio validations&lt;/a&gt; may not be available.&lt;/li&gt;
&lt;li&gt;From Kiali &amp;gt;= 2.23, the Kiali validations are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that &lt;a href=&#34;#a-nameistio_configurationsa-istio-configurations&#34;&gt;Istio Configurations&lt;/a&gt; will be available. This is because the list of Istio configurations is obtained using the Kubernetes API.&lt;/p&gt;
&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/no_istiod.png&#34; /&gt;
&lt;h3 id=&#34;a-nameistio_validationsa-istio-validations&#34;&gt;&lt;a name=&#34;istio_validations&#34;&gt;&lt;/a&gt; Istio Validations&lt;/h3&gt;
&lt;p&gt;The Istio validations won&amp;rsquo;t be available as this logic is provided by the Istio API.
But, if the Istio Config was created when the validatingwebhookconfiguration web hook was enabled, the validation messages will be available and the Istio validations can be found:&lt;/p&gt;
&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/configuration/istio_validations.png&#34; /&gt;
&lt;p&gt;Starting with Kiali 2.23, the Kiali validations are available even when the Istio API is disabled (in earlier versions they were disabled too).&lt;/p&gt;
&lt;h3 id=&#34;a-nameistio_configurationsa-istio-configurations&#34;&gt;&lt;a name=&#34;istio_configurations&#34;&gt;&lt;/a&gt; Istio Configurations&lt;/h3&gt;
&lt;p&gt;The Istio Configurations are available in view and edit mode.
It is important to know that the validations are disabled, so the configurations created or modified won&amp;rsquo;t be validated.&lt;/p&gt;
&lt;p&gt;There is one scenario where the creation/deletion/edition could fail: If the Istio validation webhook is enabled but Istiod is not reachable. In this case, the webhook should be removed in order for this to work.&lt;/p&gt;
&lt;p&gt;It can be checked with the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get ValidatingWebhookConfiguration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Docs: OSSMConsole CR Reference</title>
      <link>https://v2-24.kiali.io/docs/configuration/ossmconsoles.kiali.io/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/ossmconsoles.kiali.io/</guid>
      <description>
        
        
        &lt;div class=&#34;crd-schema-version&#34;&gt;
&lt;h3 id=&#34;example-cr&#34;&gt;Example CR&lt;/h3&gt;
&lt;em&gt;(all values shown here are the defaults unless otherwise noted)&lt;/em&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali.io/v1alpha1&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;OSSMConsole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ossmconsole&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;annotations&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ansible.sdk.operatorframework.io/verbosity&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imageDigest&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imageName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imagePullPolicy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;IfNotPresent&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# default: image_pull_secrets is an empty list&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imagePullSecrets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;image.pull.secret&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;imageVersion&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kiali&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;serviceName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;serviceNamespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;servicePort&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;validating-your-ossmconsole-cr&#34;&gt;Validating your OSSMConsole CR&lt;/h3&gt;
&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;
&lt;h3 id=&#34;property-details&#34;&gt;Properties&lt;/h3&gt;
&lt;div class=&#34;property depth-0&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec&#34;&gt;.spec&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment&#34;&gt;.spec.deployment&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imageDigest&#34;&gt;.spec.deployment.imageDigest&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imageName&#34;&gt;.spec.deployment.imageName&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imagePullPolicy&#34;&gt;.spec.deployment.imagePullPolicy&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imagePullSecrets&#34;&gt;.spec.deployment.imagePullSecrets&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(array)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The names of the secrets to be used when container images are to be pulled.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-3&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imagePullSecrets[*]&#34;&gt;.spec.deployment.imagePullSecrets[*]&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.imageVersion&#34;&gt;.spec.deployment.imageVersion&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;Determines which version of OSSM Console to install.
Choose &amp;lsquo;lastrelease&amp;rsquo; to use the last OSSM Console release.
Choose &amp;lsquo;latest&amp;rsquo; to use the latest image (which may or may not be a released version of the OSSM Console).
Choose &amp;lsquo;operator_version&amp;rsquo; to use the image whose version is the same as the operator version.
Otherwise, you can set this to any valid OSSM Console version (such as &amp;lsquo;v1.0&amp;rsquo;) or any valid OSSM Console
digest hash (if you set this to a digest hash, you must indicate the digest in &lt;code&gt;deployment.imageDigest&lt;/code&gt;).
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;.
If you set this to a specific version (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 version based on which &amp;lsquo;version&amp;rsquo; 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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.deployment.namespace&#34;&gt;.spec.deployment.namespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali&#34;&gt;.spec.kiali&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali.serviceName&#34;&gt;.spec.kiali.serviceName&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The internal Kiali service that the OpenShift Console will use to proxy API calls. If empty, an attempt will be made to auto-discover it from the Kiali OpenShift Route.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali.serviceNamespace&#34;&gt;.spec.kiali.serviceNamespace&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The namespace where the Kiali service is deployed. If empty, 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.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-2&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.kiali.servicePort&#34;&gt;.spec.kiali.servicePort&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(integer)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The internal port used by the Kiali service for the API. If empty, an attempt will be made to auto-discover it from the Kiali OpenShift Route.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-1&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.spec.version&#34;&gt;.spec.version&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(string)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The version of the Ansible role that will be executed in order to install OSSM Console.
This also indirectly determines the version of OSSM Console that will be installed.
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;
&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;
thus the most recent release of OSSM Console will be installed.&lt;/p&gt;
&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),
&lt;a href=&#34;https://github.com/kiali/kiali-operator/blob/master/playbooks/ossmconsole-default-supported-images.yml&#34;&gt;https://github.com/kiali/kiali-operator/blob/master/playbooks/ossmconsole-default-supported-images.yml&lt;/a&gt;&lt;/p&gt;
&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
&lt;code&gt;deployment.imageVersion&lt;/code&gt; settings. See the documentation for those settings below for
additional details. In short, this &lt;code&gt;version&lt;/code&gt; setting will dictate which version of the
OSSM Console image will be deployed by default. However, if you explicitly set &lt;code&gt;deployment.imageName&lt;/code&gt;
and/or &lt;code&gt;deployment.imageVersion&lt;/code&gt; to reference your own custom image, that will override the
default OSSM Console image to be installed; therefore, you are responsible for ensuring those settings
are compatible with the Ansible role that will be executed in order to install OSSM Console (i.e. your
custom OSSM Console image must be compatible with the rest of the configuration and resources the
operator will install).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;property depth-0&#34;&gt;
&lt;div class=&#34;property-header&#34;&gt;
&lt;hr/&gt;
&lt;h3 class=&#34;property-path&#34; id=&#34;.status&#34;&gt;.status&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&#34;property-body&#34;&gt;
&lt;div class=&#34;property-meta&#34;&gt;
&lt;span class=&#34;property-type&#34;&gt;(object)&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&#34;property-description&#34;&gt;
&lt;p&gt;The processing status of this CR as reported by the OpenShift Service Mesh Console Operator.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Prometheus, Tracing, Grafana</title>
      <link>https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/</guid>
      <description>
        
        
        &lt;p&gt;Prometheus is a required telemetry data source for Kiali. Jaeger/Tempo is a highly recommended tracing data source. Kiali also offers simple add-on integrations for Grafana and Perses. This page describes how to configure Kiali to communicate with these dependencies.&lt;/p&gt;
&lt;p&gt;Read the dedicated configuration page to learn more.&lt;/p&gt;
&lt;p&gt;If any of these services use HTTPS with certificates issued by a private CA, see the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/p8s-jaeger-grafana/tls-configuration/&#34;&gt;TLS Configuration&lt;/a&gt; page.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: TLS Policy</title>
      <link>https://v2-24.kiali.io/docs/configuration/tls-policy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/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 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;
&lt;h2 id=&#34;configuration-options&#34;&gt;Configuration Options&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
&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;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;min_version&lt;/code&gt;&lt;/td&gt;
&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;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max_version&lt;/code&gt;&lt;/td&gt;
&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;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cipher_suites&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List of OpenSSL cipher names for TLS 1.2 (ignored for TLS 1.3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;platform-defaults&#34;&gt;Platform Defaults&lt;/h3&gt;
&lt;ul&gt;
&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;
&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;
&lt;/ul&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;h3 id=&#34;openshift-auto-discover-tls-policy&#34;&gt;OpenShift: Auto-Discover TLS Policy&lt;/h3&gt;
&lt;p&gt;On OpenShift, set &lt;code&gt;source: auto&lt;/code&gt; to have Kiali automatically read and enforce the cluster&amp;rsquo;s TLSSecurityProfile from &lt;code&gt;APIServer/cluster&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;source&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;auto&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With this configuration, Kiali reads the TLS settings from OpenShift&amp;rsquo;s API Server and enforces them for all connections. If the cluster profile changes, restart the Kiali pod to pick up the new settings.&lt;/p&gt;
&lt;h3 id=&#34;non-openshift-explicit-tls-12-and-13&#34;&gt;Non-OpenShift: Explicit TLS 1.2 and 1.3&lt;/h3&gt;
&lt;p&gt;For non-OpenShift clusters, or when you want full control over TLS settings, use &lt;code&gt;source: config&lt;/code&gt; with explicit values:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;source&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;min_version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;TLSv1.2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;max_version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;TLSv1.3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;cipher_suites&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;ECDHE-RSA-AES128-GCM-SHA256&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;ECDHE-ECDSA-AES128-GCM-SHA256&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;ECDHE-RSA-AES256-GCM-SHA384&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;ECDHE-ECDSA-AES256-GCM-SHA384&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This allows both TLS 1.2 and TLS 1.3 connections. The cipher suites apply only to TLS 1.2 connections; TLS 1.3 uses Go&amp;rsquo;s fixed cipher set.&lt;/p&gt;
&lt;h3 id=&#34;tls-13-only&#34;&gt;TLS 1.3 Only&lt;/h3&gt;
&lt;p&gt;To enforce TLS 1.3 exclusively (highest security):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;source&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;min_version&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;TLSv1.3&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When &lt;code&gt;min_version&lt;/code&gt; is TLS 1.3, Kiali enforces TLS 1.3-only mode. The &lt;code&gt;cipher_suites&lt;/code&gt; setting is ignored because TLS 1.3 cipher selection is managed by Go.&lt;/p&gt;
&lt;h3 id=&#34;secure-defaults-minimal-configuration&#34;&gt;Secure Defaults (Minimal Configuration)&lt;/h3&gt;
&lt;p&gt;If you set &lt;code&gt;source: config&lt;/code&gt; without specifying other values, Kiali applies secure defaults:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;deployment&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tls_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;source&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This enforces TLS 1.2 or higher with Kiali&amp;rsquo;s secure default cipher list for TLS 1.2 connections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ECDHE-ECDSA-AES128-GCM-SHA256&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECDHE-RSA-AES128-GCM-SHA256&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECDHE-ECDSA-AES256-GCM-SHA384&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECDHE-RSA-AES256-GCM-SHA384&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECDHE-ECDSA-CHACHA20-POLY1305&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECDHE-RSA-CHACHA20-POLY1305&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These ciphers use ECDHE for forward secrecy and support both ECDSA and RSA certificates with modern AEAD encryption (AES-GCM and ChaCha20-Poly1305).&lt;/p&gt;
&lt;h2 id=&#34;supported-values&#34;&gt;Supported Values&lt;/h2&gt;
&lt;h3 id=&#34;tls-versions&#34;&gt;TLS Versions&lt;/h3&gt;
&lt;p&gt;TLS 1.0 and 1.1 are &lt;strong&gt;not supported&lt;/strong&gt; due to known security vulnerabilities. Attempting to use them will cause Kiali to fail at startup.&lt;/p&gt;
&lt;p&gt;Supported version strings (case variations accepted):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TLSv1.2&lt;/code&gt; / &lt;code&gt;TLS1.2&lt;/code&gt; / &lt;code&gt;VersionTLS12&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TLSv1.3&lt;/code&gt; / &lt;code&gt;TLS1.3&lt;/code&gt; / &lt;code&gt;VersionTLS13&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;tls-12-cipher-suites&#34;&gt;TLS 1.2 Cipher Suites&lt;/h3&gt;
&lt;p&gt;Specify cipher suites using OpenSSL names:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cipher Suite&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-RSA-AES128-GCM-SHA256&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-ECDSA-AES128-GCM-SHA256&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-RSA-AES256-GCM-SHA384&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-ECDSA-AES256-GCM-SHA384&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-RSA-CHACHA20-POLY1305&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ECDHE-ECDSA-CHACHA20-POLY1305&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AES128-GCM-SHA256&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AES256-GCM-SHA384&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Unsupported cipher names will cause validation failure at startup.&lt;/p&gt;
&lt;h2 id=&#34;behavior&#34;&gt;Behavior&lt;/h2&gt;
&lt;h3 id=&#34;fail-fast-safety&#34;&gt;Fail-Fast Safety&lt;/h3&gt;
&lt;p&gt;Kiali refuses to start if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;source&lt;/code&gt; value is invalid&lt;/li&gt;
&lt;li&gt;&lt;code&gt;source=auto&lt;/code&gt; is used on a non-OpenShift cluster&lt;/li&gt;
&lt;li&gt;The OpenShift TLSSecurityProfile cannot be read&lt;/li&gt;
&lt;li&gt;An unsupported TLS version or cipher suite is specified&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;enforcement-scope&#34;&gt;Enforcement Scope&lt;/h3&gt;
&lt;p&gt;The resolved TLS policy applies to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kiali server&amp;rsquo;s inbound TLS configuration&lt;/li&gt;
&lt;li&gt;All outbound HTTP clients (Prometheus, Grafana, tracing exporters, auth flows)&lt;/li&gt;
&lt;li&gt;All outbound gRPC clients&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;skip-verify-behavior&#34;&gt;Skip-Verify Behavior&lt;/h3&gt;
&lt;p&gt;Setting &lt;code&gt;skip_verify: true&lt;/code&gt; on external services only bypasses certificate validation. TLS versions and cipher suites are still enforced according to the policy.&lt;/p&gt;
&lt;h3 id=&#34;policy-refresh&#34;&gt;Policy Refresh&lt;/h3&gt;
&lt;p&gt;The TLS policy is resolved &lt;strong&gt;once at startup&lt;/strong&gt; and cached for the lifetime of the Kiali process. When using &lt;code&gt;source=auto&lt;/code&gt;, if the OpenShift TLSSecurityProfile changes, you must &lt;strong&gt;restart the Kiali pod&lt;/strong&gt; for changes to take effect.&lt;/p&gt;
&lt;h2 id=&#34;logging&#34;&gt;Logging&lt;/h2&gt;
&lt;p&gt;On startup, Kiali logs which TLS policy source is active and the resolved min/max versions and cipher count. Check these logs to verify the policy in effect or troubleshoot startup failures.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Traffic Health</title>
      <link>https://v2-24.kiali.io/docs/configuration/health/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/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;
&lt;h3 id=&#34;default-configuration&#34;&gt;Default Configuration&lt;/h3&gt;
&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;
&lt;ul&gt;
&lt;li&gt;For &lt;em&gt;http&lt;/em&gt; protocol 4xx are client errors and 5xx codes are application errors.&lt;/li&gt;
&lt;li&gt;For &lt;em&gt;grpc&lt;/em&gt; protocol all 1-16 are errors (0 is success).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, for example, if the rate of application errors is &amp;gt;= 0.1% Kiali will show &lt;code&gt;Degraded&lt;/code&gt; health and if &amp;gt; 10% will show &lt;code&gt;Failure&lt;/code&gt; health.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tolerance&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;^5\\d\\d$&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;direction&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;degraded&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;^4\\d\\d$&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;direction&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;degraded&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;^[1-9]$|^1[0-6]$&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;direction&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;grpc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;degraded&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;custom-configuration&#34;&gt;Custom Configuration&lt;/h2&gt;
&lt;p&gt;Custom health configuration is specified in the Kiali CR. To see the supported configuration syntax for &lt;code&gt;health_config&lt;/code&gt; see the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.health_config&#34;&gt;Kiali CR Reference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Kiali applies &lt;em&gt;the first matching rate configuration (namespace, kind, etc)&lt;/em&gt; and calculates the status for each tolerance. The reported health will be the status with highest priority (see below).&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
  &lt;th style=&#34;width: 150px&#34;&gt;Rate Option&lt;/th&gt;&lt;th&gt;Definition&lt;/th&gt;&lt;th&gt;Default&lt;/th&gt;
&lt;tr&gt;
  &lt;td&gt;namespace&lt;/td&gt;&lt;td&gt;Matching Namespaces (regex)&lt;/td&gt;&lt;td&gt;.* (match all)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;kind&lt;/td&gt;&lt;td&gt;Matching Resource Types (workload|app|service) (regex)&lt;/td&gt;&lt;td&gt;.* (match all)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;name&lt;/td&gt;&lt;td&gt;Matching Resource Names (regex)&lt;/td&gt;&lt;td&gt;.* (match all)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;tolerance&lt;/td&gt;&lt;td&gt;Array of tolerances to apply.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;table style=&#34;margin-left:40px&#34;&gt;
      &lt;tr&gt;
        &lt;th&gt;Tolerance Option&lt;/th&gt;
        &lt;th&gt;Definition&lt;/th&gt;
        &lt;th&gt;Default&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;code&lt;/td&gt;
        &lt;td&gt;Matching Response Status Codes (regex) [1]&lt;/td&gt;
        &lt;td&gt;&lt;strong&gt;required&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;direction&lt;/td&gt;
        &lt;td&gt;Matching Request Directions (inbound|outbound) (regex)&lt;/td&gt;
        &lt;td&gt;.* (match all)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;protocol&lt;/td&gt;
        &lt;td&gt;Matching Request Protocols (http|grpc) (regex)&lt;/td&gt;
        &lt;td&gt;.* (match all)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;degraded&lt;/td&gt;
        &lt;td&gt;Degraded Threshold(% matching requests &gt;= value)&lt;/td&gt;
        &lt;td&gt;0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;failure&lt;/td&gt;
        &lt;td&gt;Failure Threshold (% matching requests &gt;= value)&lt;/td&gt;
        &lt;td&gt;0&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;[1] The status code typically depends on the request protocol. The special code &lt;strong&gt;-&lt;/strong&gt;, a single dash, is used for requests that don&amp;rsquo;t receive a response, and therefore no response code.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Kiali reports traffic health with the following top-down status priority :&lt;/p&gt;
 &lt;table&gt;
    &lt;tr&gt;
        &lt;th&gt;Priority&lt;/th&gt;
        &lt;th&gt;Rule (value=% matching requests)&lt;/th&gt;
        &lt;th&gt;Status&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;value &gt;= FAILURE threshold&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/failure.png&#34; style=&#34;width: 40px;height: 40px&#34; /&gt;FAILURE&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;value &gt;= DEGRADED threshold AND value &lt; FAILURE threshold&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/degraded.png&#34; style=&#34;width: 40px;height: 40px&#34; /&gt;DEGRADED&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;value &gt; 0 AND value &lt; DEGRADED threshold&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/healthy.png&#34; style=&#34;width: 40px;height: 40px&#34; /&gt;HEALTHY&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;value = 0&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/healthy.png&#34; style=&#34;width: 40px;height: 40px&#34; /&gt;HEALTHY&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;No traffic&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/no_health.png&#34; style=&#34;width: 40px;height: 40px&#34; /&gt;No Health Information&lt;/td&gt;
    &lt;/tr&gt;
 &lt;/table&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;These examples use the repo &lt;a href=&#34;https://github.com/kiali/demos/tree/master/error-rates&#34;&gt;https://github.com/kiali/demos/tree/master/error-rates&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this repo we can see 2 namespaces: alpha and beta (&lt;a href=&#34;https://github.com/kiali/demos/tree/master/error-rates#error-rates-demo-design&#34;&gt;Demo design&lt;/a&gt;).&lt;/p&gt;
&lt;table&gt;
&lt;tr style=&#34;text-align: center&#34;&gt;
&lt;td&gt;Alpha&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&#34;text-align: center&#34;&gt;
&lt;td&gt;
&lt;img src=&#34;https://raw.githubusercontent.com/kiali/demos/master/error-rates/doc/Kiali-AlphaNamespace.png&#34; style=&#34;width: 80%; height: 60%&#34; /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Where nodes return the responses (You can configure responses &lt;a href=&#34;https://github.com/kiali/demos/tree/master/error-rates#configurable-error-rates&#34;&gt;here&lt;/a&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/kiali/demos/blob/master/error-rates/alpha.yaml&#34;&gt;Alpha deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/kiali/demos/blob/master/error-rates/beta.yaml&#34;&gt;Beta deployment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App (alpha/beta)&lt;/th&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;x-server&lt;/td&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;x-server&lt;/td&gt;
&lt;td&gt;404&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;y-server&lt;/td&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;y-server&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;z-server&lt;/td&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;z-server&lt;/td&gt;
&lt;td&gt;201&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;z-server&lt;/td&gt;
&lt;td&gt;201&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br/&gt;
The applied traffic rate configuration is:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;health_config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;   &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;alpha&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;     &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tolerance&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;       &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;404&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;       &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[45]\\d[^\\D4]&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;   &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;beta&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;     &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;tolerance&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;       &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[4]\\d\\d&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;degraded&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;failure&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;40&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;       &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;code&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[5]\\d\\d&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ...&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After Kiali adds default configuration we have the following (Debug Info Kiali):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;healthConfig&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;rate&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/alpha/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;tolerance&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/404/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/[45]\\d[^\\D4]/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/beta/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;tolerance&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/[4]\\d\\d/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;40&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/[5]\\d\\d/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;tolerance&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/^5\\d\\d$/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/^4\\d\\d$/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/http/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/^[1-9]$|^1[0-6]$/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;degraded&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;failure&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/grpc/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/.*/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;What are we applying?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;For namespace alpha, all resources&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol http if % requests with error code 404 are &amp;gt;= 10 then FAILURE, if they are &amp;gt; 0 then DEGRADED&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol http if % requests with others error codes are&amp;gt; 0 then FAILURE.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For namespace beta, all resources&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol http if % requests with error code 4xx are &amp;gt;= 40 then FAILURE, if they are &amp;gt;= 30 then DEGRADED&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol http if % requests with error code 5xx are &amp;gt; 0 then FAILURE&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For other namespaces Kiali will apply the defaults.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol http if % requests with error code 5xx are &amp;gt;= 20 then FAILURE, if they are &amp;gt;= 0.1 then DEGRADED&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protocol grpc if % requests with error code match /^[1-9]$|^1[0-6]$/ are &amp;gt;= 20 then FAILURE, if they are &amp;gt;= 0.1 then DEGRADED&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
 &lt;table &gt;
    &lt;tr style=&#34;text-align: center&#34;&gt;
        &lt;td&gt; Alpha &lt;/td&gt;
        &lt;td&gt; Beta &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/alpha.png&#34; style=&#34;width: 100%;height: 800px&#34; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/health-configuration/beta.png&#34; style=&#34;width: 100%;height: 800px&#34; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
 &lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Virtual Machine workloads</title>
      <link>https://v2-24.kiali.io/docs/configuration/vm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/configuration/vm/</guid>
      <description>
        
        
        &lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&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;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;


    Kiali does not currently distinguish between pod-based and VM-based workloads nor does Kiali support viewing additional details for the VM-based workloads beyond what is displayed on the graph. One way to distinguish between the two is to give the VM-based workloads a different version label than the pod-based workloads.

&lt;/div&gt;

&lt;h2 id=&#34;configuring-prometheus-to-scrape-vm-based-istio-proxy&#34;&gt;Configuring Prometheus to scrape VM-based Istio Proxy&lt;/h2&gt;
&lt;p&gt;Once the Istio Proxy is running on a Virtual Machine, configuring Prometheus to scrape the VM&amp;rsquo;s Istio Proxy metrics endpoint is the only configuration Kiali needs to display traffic for the VM-based workload.
&lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/configuration/configuration/&#34;&gt;Configuring Prometheus&lt;/a&gt; will vary between environments. Here is a very simple example of a Prometheus configuration that includes a job to scrape VM based workloads:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;job_name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;bookinfo-vms&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;honor_timestamps&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scrape_interval&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;15s&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scrape_timeout&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;10s&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;metrics_path&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;/stats/prometheus&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;scheme&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;follow_redirects&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;static_configs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;targets&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;details-v1:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;productpage-v1:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;ratings-v1:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;reviews-v1:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;reviews-v2:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#000&#34;&gt;reviews-v3:15020&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
  </channel>
</rss>
