<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Verrazzano Enterprise Container Platform – API</title>
    <link>/docs/reference/api/</link>
    <description>Recent content in API on Verrazzano Enterprise Container Platform</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/docs/reference/api/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: IngressTrait Custom Resource Definition</title>
      <link>/docs/reference/api/oam/ingresstrait/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/oam/ingresstrait/</guid>
      <description>
        
        
        &lt;p&gt;The IngressTrait custom resource contains the configuration of host and path rules for traffic routing to an application.  Here is a sample ApplicationConfiguration that specifies an IngressTrait.  To deploy an example application that demonstrates this IngressTrait, see &lt;a href=&#34;../../../docs/samples/hello-helidon/&#34;&gt;Hello World Helidon&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
  name: hello-helidon-appconf
  namespace: hello-helidon
  annotations:
    version: v1.0.0
    description: &amp;#34;Hello Helidon application&amp;#34;
spec:
  components:
    - componentName: hello-helidon-component
      traits:
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: MetricsTrait
            spec:
                scraper: verrazzano-system/vmi-system-prometheus-0
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: IngressTrait
            metadata:
              name: hello-helidon-ingress
            spec:
              rules:
                - paths:
                    - path: &amp;#34;/greet&amp;#34;
                      pathType: Prefix
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In the sample configuration, the IngressTrait &lt;code&gt;hello-helidon-ingress&lt;/code&gt; is set on the &lt;code&gt;hello-helidon-component&lt;/code&gt; application component and defines an ingress rule that configures a path and path type.  This exposes a route for external access to the application.  Note that because no &lt;code&gt;hosts&lt;/code&gt; list is given for the &lt;a href=&#34;#ingressrule&#34;&gt;IngressRule&lt;/a&gt;, a DNS host name is automatically generated.&lt;/p&gt;
&lt;p&gt;For example, with the sample application configuration successfully deployed, the application will be accessible with the &lt;code&gt;path&lt;/code&gt; specified in the IngressTrait and the generated host name.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ HOST=$(kubectl get gateways.networking.istio.io hello-helidon-hello-helidon-appconf-gw -n hello-helidon -o jsonpath={.spec.servers[0].hosts[0]})
$ echo $HOST
hello-helidon-appconf.hello-helidon.11.22.33.44.nip.io

$ curl -sk -X GET https://${HOST}/greet
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Alternatively, specific host names can be given in an &lt;a href=&#34;#ingressrule&#34;&gt;IngressRule&lt;/a&gt;.  Doing this implies that a secret and certificate have been created for the specific hosts and the secret name has been specified in the associated &lt;a href=&#34;#ingresssecurity&#34;&gt;IngressSecurity&lt;/a&gt; &lt;code&gt;secretName&lt;/code&gt; field.&lt;/p&gt;
&lt;p&gt;Load balancer session affinity is configured using an HTTP cookie in a destination rule. Here is an updated sample ApplicationConfiguration that includes a destination rule with an HTTP cookie.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
  name: hello-helidon-appconf
  namespace: hello-helidon
  annotations:
    version: v1.0.0
    description: &amp;#34;Hello Helidon application&amp;#34;
spec:
  components:
    - componentName: hello-helidon-component
      traits:
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: MetricsTrait
            spec:
                scraper: verrazzano-system/vmi-system-prometheus-0
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: IngressTrait
            metadata:
              name: hello-helidon-ingress
            spec:
              rules:
                - paths:
                    - path: &amp;#34;/greet&amp;#34;
                      pathType: Prefix
                - destination:
                    httpCookie:
                      name: sessioncookie
                      path: &amp;#34;/&amp;#34;
                      ttl: 600
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;ingresstrait&#34;&gt;IngressTrait&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;IngressTrait&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingresstraitspec&#34;&gt;IngressTraitSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of an ingress trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;ingresstraitspec&#34;&gt;IngressTraitSpec&lt;/h4&gt;
&lt;p&gt;IngressTraitSpec specifies the desired state of an ingress trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rules&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingressrule&#34;&gt;IngressRule&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;A list of ingress rules to for an ingress trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingresssecurity&#34;&gt;IngressSecurity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The security parameters for an ingress trait. This is required only if specific hosts are given in an &lt;a href=&#34;#ingressrule&#34;&gt;IngressRule&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;ingressrule&#34;&gt;IngressRule&lt;/h4&gt;
&lt;p&gt;IngressRule specifies a rule for an ingress trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;hosts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string array&lt;/td&gt;
&lt;td&gt;One or more hosts exposed by the ingress trait.  Wildcard hosts or hosts that are empty are filtered out. If there are no valid hosts provided, then a DNS host name is automatically generated and used.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;paths&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingresspath&#34;&gt;IngressPath&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;The paths to be exposed for an ingress trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;destination&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingressdestination&#34;&gt;IngressDestination&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The destination host and port for the ingress paths.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;ingresspath&#34;&gt;IngressPath&lt;/h4&gt;
&lt;p&gt;IngressPath specifies a specific path to be exposed for an ingress trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;If no path is provided, it defaults to &lt;code&gt;/&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pathType&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Path type values are case-sensitive and formatted as follows: &lt;ul&gt;&lt;li&gt;&lt;code&gt;exact&lt;/code&gt;: exact string match&lt;/li&gt;&lt;li&gt;&lt;code&gt;prefix&lt;/code&gt;: prefix-based match&lt;/li&gt;&lt;li&gt;&lt;code&gt;regex&lt;/code&gt;: regex-based match&lt;/li&gt;&lt;/ul&gt;If the provided ingress path doesn&amp;rsquo;t contain a &lt;code&gt;pathType&lt;/code&gt;, it defaults to &lt;code&gt;prefix&lt;/code&gt; if the path is &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;exact&lt;/code&gt; otherwise.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;ingressdestination&#34;&gt;IngressDestination&lt;/h4&gt;
&lt;p&gt;IngressDestination specifies a specific destination host and port for the ingress paths.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Destination host.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;Destination port.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;httpCookie&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#httpcookie&#34;&gt;HttpCookie&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Session affinity cookie.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;NOTE&lt;/h4&gt;

    If there are multiple ports defined for a service, then the destination port must be specified OR
the service port name must have the prefix &amp;ldquo;http&amp;rdquo;.

&lt;/div&gt;

&lt;h4 id=&#34;httpcookie&#34;&gt;HttpCookie&lt;/h4&gt;
&lt;p&gt;HttpCookie specifies a session affinity cookie for an ingress trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of the HTTP cookie.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The path of the HTTP cookie.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ttl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;The lifetime of the HTTP cookie (in seconds).&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;ingresssecurity&#34;&gt;IngressSecurity&lt;/h4&gt;
&lt;p&gt;IngressSecurity specifies the secret containing the certificate securing the transport for an ingress trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;secretName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of a secret containing the certificate securing the transport.  The specification of a secret here implies that a certificate was created for specific hosts, as specified in an &lt;a href=&#34;#ingressrule&#34;&gt;IngressRule&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: LoggingTrait Custom Resource Definition</title>
      <link>/docs/reference/api/oam/loggingtrait/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/oam/loggingtrait/</guid>
      <description>
        
        
        &lt;p&gt;The LoggingTrait custom resource contains the configuration for an additional logging sidecar with a custom image and Fluentd configuration file.
Here is a sample ApplicationConfiguration that includes a LoggingTrait.
To deploy an example application with this LoggingTrait, replace the ApplicationConfiguration of the &lt;a href=&#34;../../../docs/samples/todo-list/&#34;&gt;ToDo-List&lt;/a&gt; example application with the following sample.&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;core.oam.dev/v1alpha2&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;ApplicationConfiguration&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;todo-appconf&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;todo-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;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;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.0.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;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;ToDo List example application&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;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&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;componentName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;todo-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;traits&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;trait&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;oam.verrazzano.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;LoggingTrait&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;logging-trait-example&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;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;todo-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;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;loggingImage&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;fluent/fleuntd-example-image&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;# Replace with custom Fluentd Image&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;loggingConfig&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;                # Replace with Fluentd config file
&lt;/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;                &amp;lt;match **&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;                @type stdout
&lt;/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;                &amp;lt;/match&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;componentName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;todo-jdbc-configmap&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;componentName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;todo-mysql-configmap&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;componentName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;todo-mysql-service&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;componentName&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#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;todo-mysql-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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In this sample configuration, the LoggingTrait &lt;code&gt;logging-trait-example&lt;/code&gt; is set on the &lt;code&gt;todo-domain&lt;/code&gt; application component and defines a logging sidecar with the given Fluentd image and configuration file.
This sidecar will be attached to the component&amp;rsquo;s pod and will gather logs according to the given Fluentd configuration file.
In order for the Fluentd DaemonSet to collect the custom logs, the Fluentd configuration file needs to direct the logs to &lt;code&gt;STDOUT&lt;/code&gt;, as demonstrated in the previous example.&lt;/p&gt;
&lt;p&gt;For example, when the &lt;a href=&#34;../../../docs/samples/todo-list/&#34;&gt;ToDo-List&lt;/a&gt; example ApplicationConfiguration is successfully deployed with a LoggingTrait, the &lt;code&gt;tododomain-adminserver&lt;/code&gt; pod will have a container named &lt;code&gt;logging-stdout&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl get pods tododomain-adminserver -n todo-list -o &lt;span style=&#34;color:#000&#34;&gt;jsonpath&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;{.spec.containers[*].name}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ... logging-stdout ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In this example, the &lt;code&gt;logging-stdout&lt;/code&gt; container will run the image given in the LoggingTrait and a ConfigMap named &lt;code&gt;logging-stdout-todo-domain-domain&lt;/code&gt; will be created with the custom Fluentd configuration file.&lt;/p&gt;
&lt;h4 id=&#34;loggingtrait&#34;&gt;LoggingTrait&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;LoggingTrait&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#loggingtraitspec&#34;&gt;LoggingTraitSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a logging trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;loggingtraitspec&#34;&gt;LoggingTraitSpec&lt;/h4&gt;
&lt;p&gt;LoggingTraitSpec specifies the desired state of a logging trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;loggingConfig&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;A string representation of the Fluentd configuration.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;loggingImage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of the custom Fluentd image.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Metrics Template Custom Resource Definition</title>
      <link>/docs/reference/api/verrazzano/metricstemplate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/verrazzano/metricstemplate/</guid>
      <description>
        
        
        &lt;p&gt;The Metrics Template CRD contains the metrics configuration for default Kubernetes workloads.
Here is the default Metrics Template that Verrazzano installs.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: app.verrazzano.io/v1alpha1
kind: MetricsTemplate
metadata:
  name: standard-k8s-metrics-template
  namespace: verrazzano-system
spec:
  workloadSelector:
    apiGroups: [&amp;#34;apps&amp;#34;, &amp;#34;&amp;#34;]
    apiVersions: [&amp;#34;v1&amp;#34;]
    resources: [&amp;#34;deployment&amp;#34;, &amp;#34;statefulset&amp;#34;, &amp;#34;replicaset&amp;#34;, &amp;#34;pod&amp;#34;]
  prometheusConfig:
    targetConfigMap:
      namespace: verrazzano-system
      name: vmi-system-prometheus-config
    scrapeConfigTemplate: |
      kubernetes_sd_configs:
        - namespaces:
            names:
            - {{`{{.workload.metadata.namespace}}`}}
          role: pod
      relabel_configs:
        - action: replace
          replacement: local
          source_labels: null
          target_label: verrazzano_cluster
        - action: keep
          regex: {{`{{index .workload.metadata.labels &amp;#34;app.verrazzano.io/workload&amp;#34;}}`}};true
          source_labels:
            - __meta_kubernetes_pod_label_app_verrazzano_io_workload
            - __meta_kubernetes_pod_annotation_prometheus_io_scrape
        - action: replace
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
          source_labels:
            - __address__
            - __meta_kubernetes_pod_annotation_prometheus_io_port
          target_label: __address__
        - action: replace
          regex: (.*)
          source_labels:
            - __meta_kubernetes_pod_annotation_prometheus_io_path
          target_label: __metrics_path__
        - action: replace
          regex: (.*)
          replacement: $1
          source_labels:
            - __meta_kubernetes_namespace
          target_label: namespace
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - action: replace
          source_labels:
            - __meta_kubernetes_pod_name
          target_label: pod_name
        - action: labeldrop
          regex: (controller_revision_hash)
        - action: replace
          regex: .*/(.*)$
          replacement: $1
          source_labels:
            - name
          target_label: webapp
      {{`{{ if index .namespace.metadata.labels &amp;#34;istio-injection&amp;#34; }}`}}
      {{`{{ if eq (index .namespace.metadata.labels &amp;#34;istio-injection&amp;#34; ) &amp;#34;enabled&amp;#34; }}`}}
      scheme: https
      tls_config:
        ca_file: /etc/istio-certs/root-cert.pem
        cert_file: /etc/istio-certs/cert-chain.pem
        insecure_skip_verify: true
        key_file: /etc/istio-certs/key.pem
      {{`{{ end }}`}}
      {{`{{ end }}`}}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For more information on using the Metrics Template, see &lt;a href=&#34;../../../docs/monitoring/metrics/metrics/#metrics-template&#34;&gt;Metrics Template&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;metricstemplate&#34;&gt;MetricsTemplate&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;app.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MetricsTemplate&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to the Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#metricstemplatespec&#34;&gt;MetricsTemplateSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a metrics trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;metricstemplatespec&#34;&gt;MetricsTemplateSpec&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workloadSelector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#workloadselector&#34;&gt;WorkloadSelector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Selector for target workloads.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prometheusConfig&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#prometheusconfig&#34;&gt;PrometheusConfig&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Prometheus configuration details.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;workloadselector&#34;&gt;WorkloadSelector&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors&#34;&gt;LabelSelector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Scopes the template to a namespace.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;objectSelector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors&#34;&gt;LabelSelector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Scopes the template to a specific workload object.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiGroups&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;[]string&lt;/td&gt;
&lt;td&gt;Scopes the template to given API Groups.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;[]string&lt;/td&gt;
&lt;td&gt;Scopes the template to given API Versions.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;resources&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;[]string&lt;/td&gt;
&lt;td&gt;Scopes the template to given API Resources.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;prometheusconfig&#34;&gt;PrometheusConfig&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;targetConfigMap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#targetconfigmap&#34;&gt;TargetConfigMap&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Identity of the ConfigMap to be updated with the scrape configuration specified in &lt;code&gt;scrapeConfigTemplate&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scrapeConfigTemplate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Scrape configuration template to be added to the Prometheus configuration.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;targetconfigmap&#34;&gt;TargetConfigMap&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Namespace of the ConfigMap to be updated with the scrape target configuration.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the ConfigMap to be updated with the scrape target configuration.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MetricsTrait Custom Resource Definition</title>
      <link>/docs/reference/api/oam/metricstrait/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/oam/metricstrait/</guid>
      <description>
        
        
        &lt;p&gt;The MetricsTrait custom resource contains the configuration information needed to enable metrics for an application component.  Component workloads configured with a MetricsTrait are set up to emit metrics through an endpoint that are scraped by a given Prometheus deployment.  Here is a sample ApplicationConfiguration that specifies a MetricsTrait.  To deploy an example application that demonstrates a MetricsTrait, see &lt;a href=&#34;../../../docs/samples/hello-helidon/&#34;&gt;Hello World Helidon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that if an ApplicationConfiguration does not specify a MetricsTrait, then a default MetricsTrait will be generated with values appropriate for the workload type.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
  name: hello-helidon-appconf
  namespace: hello-helidon
  annotations:
    version: v1.0.0
    description: &amp;#34;Hello Helidon application&amp;#34;
spec:
  components:
    - componentName: hello-helidon-component
      traits:
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: MetricsTrait
            spec:
                scraper: verrazzano-system/vmi-system-prometheus-0
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: IngressTrait
            metadata:
              name: hello-helidon-ingress
            spec:
              rules:
                - paths:
                    - path: &amp;#34;/greet&amp;#34;
                      pathType: Prefix
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In the sample configuration, a MetricsTrait is specified for the &lt;code&gt;hello-helidon-component&lt;/code&gt; application component.&lt;/p&gt;
&lt;p&gt;With the sample application configuration successfully deployed, you can query for metrics from the application component.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ HOST=$(kubectl get ingress \
     -n verrazzano-system vmi-system-prometheus \
     -o jsonpath={.spec.rules[0].host})
$ echo $HOST

prometheus.vmi.system.default.&amp;lt;ip&amp;gt;.nip.io

$ VZPASS=$(kubectl get secret \
     --namespace verrazzano-system verrazzano \
     -o jsonpath={.data.password} | base64 \
     --decode; echo)
$ curl -sk \
    --user verrazzano:${VZPASS} \
    -X GET https://${HOST}/api/v1/query?query=vendor_requests_count_total

{&amp;#34;status&amp;#34;:&amp;#34;success&amp;#34;,&amp;#34;data&amp;#34;:{&amp;#34;resultType&amp;#34;:&amp;#34;vector&amp;#34;,&amp;#34;result&amp;#34;:[{&amp;#34;metric&amp;#34;:{&amp;#34;__name__&amp;#34;:&amp;#34;vendor_requests_count_total&amp;#34;,&amp;#34;app&amp;#34;:&amp;#34;hello-helidon&amp;#34;,&amp;#34;app_oam_dev_component&amp;#34;:&amp;#34;hello-helidon-component&amp;#34;,&amp;#34;app_oam_dev_name&amp;#34;:&amp;#34;hello-helidon-appconf&amp;#34;,&amp;#34;app_oam_dev_resourceType&amp;#34;:&amp;#34;WORKLOAD&amp;#34;,&amp;#34;app_oam_dev_revision&amp;#34;:&amp;#34;hello-helidon-component-v1&amp;#34;,&amp;#34;containerizedworkload_oam_crossplane_io&amp;#34;:&amp;#34;496df78f-ef8b-4753-97fd-d9218d2f38f1&amp;#34;,&amp;#34;job&amp;#34;:&amp;#34;hello-helidon-appconf_default_helidon-logging_hello-helidon-component&amp;#34;,&amp;#34;namespace&amp;#34;:&amp;#34;helidon-logging&amp;#34;,&amp;#34;pod_name&amp;#34;:&amp;#34;hello-helidon-workload-b7d9d95d8-ht7gb&amp;#34;,&amp;#34;pod_template_hash&amp;#34;:&amp;#34;b7d9d95d8&amp;#34;},&amp;#34;value&amp;#34;:[1616535232.487,&amp;#34;4800&amp;#34;]}]}}
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;metricstrait&#34;&gt;MetricsTrait&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MetricsTrait&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#metricstraitspec&#34;&gt;MetricsTraitSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a metrics trait.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;metricstraitspec&#34;&gt;MetricsTraitSpec&lt;/h4&gt;
&lt;p&gt;MetricsTraitSpec specifies the desired state of a metrics trait.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;The HTTP port for the related metrics endpoint. Defaults to &lt;code&gt;8080&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ports&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#portspec&#34;&gt;[]PortSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The HTTP endpoints for the related metrics.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The HTTP path for the related metrics endpoint. Defaults to &lt;code&gt;/metrics&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;secret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of an opaque secret (for example, user name and password) within the workload’s namespace for metrics endpoint access.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scraper&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The Prometheus deployment used to scrape the related metrics endpoints. Defaults to &lt;code&gt;verrazzano-system/vmi-system-prometheus-0&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;portspec&#34;&gt;PortSpec&lt;/h4&gt;
&lt;p&gt;PortSpec defines an HTTP port and path combination.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;The HTTP port for the related metrics endpoint. Defaults to &lt;code&gt;8080&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The HTTP path for the related metrics endpoint. Defaults to &lt;code&gt;/metrics&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MultiClusterApplicationConfiguration Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/multiclusterapplicationconfiguration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/multiclusterapplicationconfiguration/</guid>
      <description>
        
        
        &lt;p&gt;The MultiClusterApplicationConfiguration custom resource is an envelope used to distribute &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resources in a multicluster environment.&lt;/p&gt;
&lt;p&gt;Here is a sample MultiClusterApplicationConfiguration that specifies an ApplicationConfiguration resource to create on the cluster named &lt;code&gt;managed1&lt;/code&gt;.  To deploy an example application that demonstrates a MultiClusterApplicationConfiguration, see &lt;a href=&#34;../../../docs/samples/multicluster/todo-list/&#34;&gt;Multicluster ToDo List&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: MultiClusterApplicationConfiguration
metadata:
  name: todo-appconf
  namespace: mc-todo-list
spec:
  template:
    metadata:
      annotations:
        version: v1.0.0
        description: &amp;#34;ToDo List example application&amp;#34;
    spec:
      components:
        - componentName: todo-domain
          traits:
            - trait:
                apiVersion: oam.verrazzano.io/v1alpha1
                kind: MetricsTrait
                spec:
                  scraper: verrazzano-system/vmi-system-prometheus-0
            - trait:
                apiVersion: oam.verrazzano.io/v1alpha1
                kind: IngressTrait
                spec:
                  rules:
                    - paths:
                        - path: &amp;#34;/todo&amp;#34;
                          pathType: Prefix
        - componentName: todo-jdbc-config
        - componentName: mysql-initdb-config
        - componentName: todo-mysql-service
        - componentName: todo-mysql-deployment
  placement:
    clusters:
      - name: managed1
  secrets:
    - tododomain-repo-credentials
    - tododomain-jdbc-tododb
    - tododomain-weblogic-credentials
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;multiclusterapplicationconfiguration&#34;&gt;MultiClusterApplicationConfiguration&lt;/h4&gt;
&lt;p&gt;A MultiClusterApplicationConfiguration is an envelope to create &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resources on the clusters specified in the &lt;code&gt;placement&lt;/code&gt; section.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MultiClusterApplicationConfiguration&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#multiclusterapplicationconfigurationspec&#34;&gt;MultiClusterApplicationConfigurationSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;multiclusterapplicationconfigurationspec&#34;&gt;MultiClusterApplicationConfigurationSpec&lt;/h4&gt;
&lt;p&gt;MultiClusterApplicationConfigurationSpec specifies the desired state of a &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#applicationconfigurationtemplate&#34;&gt;ApplicationConfigurationTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The embedded &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../placement&#34;&gt;Placement&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Clusters in which the resource is to be placed.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;secrets&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string array&lt;/td&gt;
&lt;td&gt;List of secrets used by the application.  These secrets must be created in the application&amp;rsquo;s namespace before deploying a MultiClusterApplicationConfiguration resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;applicationconfigurationtemplate&#34;&gt;ApplicationConfigurationTemplate&lt;/h4&gt;
&lt;p&gt;ApplicationConfigurationTemplate has the metadata and spec of the &lt;code&gt;core.oam.dev/v1alpha2/ApplicationConfiguration&lt;/code&gt; resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ApplicationConfigurationSpec&lt;/td&gt;
&lt;td&gt;An instance of the &lt;code&gt;struct&lt;/code&gt; ApplicationConfigurationSpec defined in &lt;a href=&#34;https://github.com/crossplane/oam-kubernetes-runtime/blob/master/apis/core/v1alpha2/core_types.go&#34;&gt;core_types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MultiClusterComponent Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/multiclustercomponent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/multiclustercomponent/</guid>
      <description>
        
        
        &lt;p&gt;The MultiClusterComponent custom resource is an envelope used to distribute &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resources in a multicluster environment.&lt;/p&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;NOTE&lt;/h4&gt;

    Starting with Verrazzano v1.1.0, it is preferred that the MultiClusterComponent custom resource not be used; instead
directly use &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resources in your application.  See the example application, &lt;a href=&#34;../../../docs/samples/multicluster/todo-list/&#34;&gt;Multicluster ToDo List&lt;/a&gt;, which directly uses &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resources.

&lt;/div&gt;

&lt;p&gt;Here is a sample MultiClusterComponent that specifies a OAM Component resource to create on the cluster named &lt;code&gt;managed1&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: MultiClusterComponent
metadata:
  name: hello-helidon-component
  namespace: hello-helidon
spec:
  template:
    spec:
      workload:
        apiVersion: oam.verrazzano.io/v1alpha1
        kind: VerrazzanoHelidonWorkload
        metadata:
          name: hello-helidon-workload
          namespace: hello-helidon
          labels:
            app: hello-helidon
        spec:
          deploymentTemplate:
            metadata:
              name: hello-helidon-deployment
            podSpec:
              containers:
                - name: hello-helidon-container
                  image: &amp;#34;ghcr.io/verrazzano/example-helidon-greet-app-v1:0.1.12-1-20210409130027-707ecc4&amp;#34;
                  ports:
                    - containerPort: 8080
                      name: http
  placement:
    clusters:
      - name: managed1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;multiclustercomponent&#34;&gt;MultiClusterComponent&lt;/h4&gt;
&lt;p&gt;A MultiClusterComponent is an envelope to create &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resources on the clusters specified in the &lt;code&gt;placement&lt;/code&gt; section.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MultiClusterComponent&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#multiclustercomponentspec&#34;&gt;MultiClusterComponentSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;multiclustercomponentspec&#34;&gt;MultiClusterComponentSpec&lt;/h4&gt;
&lt;p&gt;MultiClusterComponentSpec specifies the desired state of a &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#componenttemplate&#34;&gt;ComponentTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The embedded &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../placement&#34;&gt;Placement&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Clusters in which the resource is to be placed.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;componenttemplate&#34;&gt;ComponentTemplate&lt;/h4&gt;
&lt;p&gt;ComponentTemplate has the metadata and spec of the &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ComponentSpec&lt;/td&gt;
&lt;td&gt;An instance of the &lt;code&gt;struct&lt;/code&gt; ComponentSpec defined in &lt;a href=&#34;https://github.com/crossplane/oam-kubernetes-runtime/blob/master/apis/core/v1alpha2/core_types.go&#34;&gt;core_types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MultiClusterConfigMap Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/multiclusterconfigmap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/multiclusterconfigmap/</guid>
      <description>
        
        
        &lt;p&gt;The MultiClusterConfigMap custom resource is an envelope used to distribute Kubernetes ConfigMap resources in a multicluster environment.&lt;/p&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;NOTE&lt;/h4&gt;

    Starting with Verrazzano v1.1.0, it is preferred that the MultiClusterConfigMap custom resource not be used; instead
directly use &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; to define ConfigMap resources in your application.
See the example application, &lt;a href=&#34;../../../docs/samples/multicluster/todo-list/&#34;&gt;Multicluster ToDo List&lt;/a&gt;, which uses &lt;code&gt;core.oam.dev/v1alpha2/Component&lt;/code&gt; resources to define ConfigMaps.

&lt;/div&gt;

&lt;p&gt;Here is a sample MultiClusterConfigMap that specifies a Kubernetes ConfigMap to create on the cluster named &lt;code&gt;managed1&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: MultiClusterConfigMap
metadata:
  name: mymcconfigmap
  namespace: multiclustertest
spec:
  template:
    metadata:
      name: myconfigmap
      namespace: myns
    data:
      simple.key: &amp;#34;simplevalue&amp;#34;
  placement:
    clusters:
      - name: managed1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;multiclusterconfigmap&#34;&gt;MultiClusterConfigMap&lt;/h4&gt;
&lt;p&gt;A MultiClusterConfigMap is an envelope to create Kubernetes ConfigMap resources on the clusters specified in the &lt;code&gt;placement&lt;/code&gt; section.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MultiClusterConfigMap&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#multiclusterconfigmapspec&#34;&gt;MultiClusterConfigMapSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a Kubernetes ConfigMap.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;multiclusterconfigmapspec&#34;&gt;MultiClusterConfigMapSpec&lt;/h4&gt;
&lt;p&gt;MultiClusterConfigMapSpec specifies the desired state of a Kubernetes ConfigMap.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#configmaptemplate&#34;&gt;ConfigMapTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The embedded Kubernetes ConfigMap.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../placement&#34;&gt;Placement&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Clusters in which the ConfigMap is to be placed.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;configmaptemplate&#34;&gt;ConfigMapTemplate&lt;/h4&gt;
&lt;p&gt;ConfigMapTemplate has the metadata and spec of the Kubernetes ConfigMap.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;immutable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;*bool&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;immutable&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; ConfigMap defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;map[string]string&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;data&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; ConfigMap defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;binaryData&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;map[string][]byte&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;binaryData&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; ConfigMap  defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MultiClusterResourceStatus Subresource</title>
      <link>/docs/reference/api/multicluster/multiclusterresourcestatus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/multiclusterresourcestatus/</guid>
      <description>
        
        
        &lt;p&gt;The MultiClusterResourceStatus subresource is shared by multicluster custom resources.&lt;/p&gt;
&lt;h4 id=&#34;multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/h4&gt;
&lt;p&gt;MultiClusterResourceStatus specifies the status portion of a multicluster resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#condition&#34;&gt;Condition&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;The current state of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The state of the multicluster resource.  State values are case-sensitive and formatted as follows: &lt;ul&gt;&lt;li&gt;&lt;code&gt;Pending&lt;/code&gt;: deployment to cluster is in progress&lt;/li&gt;&lt;li&gt;&lt;code&gt;Succeeded&lt;/code&gt;: deployment to cluster successfully completed&lt;/li&gt;&lt;li&gt;&lt;code&gt;Failed&lt;/code&gt;: deployment to cluster failed&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;clusters&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#clusterlevelstatus&#34;&gt;ClusterLevelStatus&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;Array of status information for each cluster.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;condition&#34;&gt;Condition&lt;/h4&gt;
&lt;p&gt;Condition describes current state of a multicluster resource across all clusters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The condition of the multicluster resource which can be checked with a &lt;code&gt;kubectl wait&lt;/code&gt; command. Condition values are case-sensitive and formatted as follows: &lt;ul&gt;&lt;li&gt;&lt;code&gt;DeployComplete&lt;/code&gt;: deployment to all clusters completed successfully&lt;/li&gt;&lt;li&gt;&lt;code&gt;DeployFailed&lt;/code&gt;: deployment to all clusters failed&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ConditionStatus&lt;/td&gt;
&lt;td&gt;An instance of the type ConditionStatus that is defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lastTransitionTime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The last time the condition transitioned from one status to another.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;message&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;A message with details about the last transition.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;clusterlevelstatus&#34;&gt;ClusterLevelStatus&lt;/h4&gt;
&lt;p&gt;ClusterLevelStatus describes the status of the multicluster resource on an individual cluster.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the cluster.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The state of the multicluster resource.  State values are case-sensitive and formatted as follows: &lt;ul&gt;&lt;li&gt;&lt;code&gt;Pending&lt;/code&gt;: deployment is in progress&lt;/li&gt;&lt;li&gt;&lt;code&gt;Succeeded&lt;/code&gt;: deployment successfully completed&lt;/li&gt;&lt;li&gt;&lt;code&gt;Failed&lt;/code&gt;: deployment failed&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;message&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Message with details about the status in this cluster.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lastUpdateTime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The last time the resource state was updated.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: MultiClusterSecret Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/multiclustersecret/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/multiclustersecret/</guid>
      <description>
        
        
        &lt;p&gt;The MultiClusterSecret custom resource is an envelope used to distribute Kubernetes Secret resources in a multicluster environment.&lt;/p&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;NOTE&lt;/h4&gt;

    Starting with Verrazzano v1.1.0, it is preferred that the MultiClusterSecret custom resource not be used; instead
specify secrets in the MultiClusterApplicationConfiguration resource.
See the example application, &lt;a href=&#34;../../../docs/samples/multicluster/todo-list/&#34;&gt;Multicluster ToDo List&lt;/a&gt; where secrets are specified in a MultiClusterApplicationConfiguration resource.

&lt;/div&gt;

&lt;p&gt;Here is a sample MultiClusterSecret that specifies a Kubernetes secret to create on the cluster named &lt;code&gt;managed1&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: MultiClusterSecret
metadata:
  name: mymcsecret
  namespace: multiclustertest
spec:
  template:
    data:
      username: dmVycmF6emFubw==
      password: dmVycmF6emFubw==
  spec:
  placement:
    clusters:
      - name: managed1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;multiclustersecret&#34;&gt;MultiClusterSecret&lt;/h4&gt;
&lt;p&gt;A MultiClusterSecret is an envelope to create Kubernetes Secret resources on the clusters specified in the &lt;code&gt;placement&lt;/code&gt; section.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MultiClusterSecret&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#multiclustersecretspec&#34;&gt;MultiClusterSecretSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a Kubernetes Secret.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;multiclustersecretspec&#34;&gt;MultiClusterSecretSpec&lt;/h4&gt;
&lt;p&gt;MultiClusterSecretSpec specifies the desired state of a Kubernetes Secret.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#secrettemplate&#34;&gt;SecretTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The embedded Kubernetes Secret.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../placement&#34;&gt;Placement&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Clusters in which the Secret is to be placed.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;secrettemplate&#34;&gt;SecretTemplate&lt;/h4&gt;
&lt;p&gt;SecretTemplate has the metadata and spec of the Kubernetes Secret.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;map[string][]byte&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;data&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; Secret defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stringData&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;map[string]string&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;stringData&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; Secret  defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Corresponds to the &lt;code&gt;type&lt;/code&gt; field of the &lt;code&gt;struct&lt;/code&gt; Secret defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Placement Subresource</title>
      <link>/docs/reference/api/multicluster/placement/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/placement/</guid>
      <description>
        
        
        &lt;p&gt;The Placement subresource is shared by multicluster custom resources.&lt;/p&gt;
&lt;h4 id=&#34;placement&#34;&gt;Placement&lt;/h4&gt;
&lt;p&gt;Placement contains the name of each cluster where this resource will be located.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;clusters&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#cluster&#34;&gt;Cluster&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;An array of cluster locations.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;cluster&#34;&gt;Cluster&lt;/h4&gt;
&lt;p&gt;Cluster contains the name of a single cluster.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cluster&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of a cluster.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Verrazzano Custom Resource Definition</title>
      <link>/docs/reference/api/verrazzano/verrazzano/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/verrazzano/verrazzano/</guid>
      <description>
        
        
        &lt;p&gt;The Verrazzano custom resource contains the configuration information for an installation.
Here is a sample Verrazzano custom resource file that uses Oracle Cloud Infrastructure DNS.  See other examples
&lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/config/samples&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  environmentName: env
  profile: prod
  components:
    certManager:
      certificate:
        acme:
          provider: letsEncrypt
          emailAddress: emailAddress@example.com
    dns:
      oci:
        ociConfigSecret: oci
        dnsZoneCompartmentOCID: dnsZoneCompartmentOcid
        dnsZoneOCID: dnsZoneOcid
        dnsZoneName: my.dns.zone.name
    ingress:
      type: LoadBalancer
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;verrazzanospec&#34;&gt;VerrazzanoSpec&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;environmentName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the installation.  This name is part of the endpoint access URLs that are generated. The default value is &lt;code&gt;default&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;profile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The installation profile to select.  Valid values are &lt;code&gt;prod&lt;/code&gt; (production), &lt;code&gt;dev&lt;/code&gt; (development), and &lt;code&gt;managed-cluster&lt;/code&gt;.  The default is &lt;code&gt;prod&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The version to install.  Valid versions can be found &lt;a href=&#34;https://github.com/verrazzano/verrazzano/releases/&#34;&gt;here&lt;/a&gt;.  Defaults to the current version supported by the Verrazzano platform operator.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;components&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#components&#34;&gt;Components&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Verrazzano components.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;defaultVolumeSource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/volume/&#34;&gt;VolumeSource&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Defines the type of volume to be used for persistence for all components unless overridden, and can be one of either &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#emptydirvolumesource-v1-core&#34;&gt;EmptyDirVolumeSource&lt;/a&gt; or &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#persistentvolumeclaimvolumesource-v1-core&#34;&gt;PersistentVolumeClaimVolumeSource&lt;/a&gt;. If &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#persistentvolumeclaimvolumesource-v1-core&#34;&gt;PersistentVolumeClaimVolumeSource&lt;/a&gt; is declared, then the &lt;code&gt;claimName&lt;/code&gt; must reference the name of an existing &lt;code&gt;VolumeClaimSpecTemplate&lt;/code&gt; declared in the &lt;code&gt;volumeClaimSpecTemplates&lt;/code&gt; section.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;volumeClaimSpecTemplates&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#volumeclaimspectemplate&#34;&gt;VolumeClaimSpecTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Defines a named set of PVC configurations that can be referenced from components to configure persistent volumes.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;volumeclaimspectemplate&#34;&gt;VolumeClaimSpecTemplate&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/&#34;&gt;ObjectMeta&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Metadata about the PersistentVolumeClaimSpec template.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#PersistentVolumeClaimSpec&#34;&gt;PersistentVolumeClaimSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A &lt;code&gt;PersistentVolumeClaimSpec&lt;/code&gt; template that can be referenced by a Component to override its default storage settings for a profile.  At present, only a subset of the &lt;code&gt;resources.requests&lt;/code&gt; object are honored depending on the component.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;components&#34;&gt;Components&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;authProxy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#authproxy-component&#34;&gt;AuthProxyComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The AuthProxy component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;certManager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#certmanager-component&#34;&gt;CertManagerComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The cert-manager component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dns&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#dns-component&#34;&gt;DNSComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The DNS component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ingress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#ingress-component&#34;&gt;IngressComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The ingress component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;istio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-component&#34;&gt;IstioComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Istio component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fluentd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#fluentd-component&#34;&gt;FluentdComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Fluentd component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jaegerOperator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#jaeger-operator-component&#34;&gt;JaegerOperatorComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Jaeger Operator component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;keycloak&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#keycloak-component&#34;&gt;KeycloakComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Keycloak component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;elasticsearch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-component&#34;&gt;OpenSearchComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The OpenSearch component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prometheus&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#prometheus-component&#34;&gt;PrometheusComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Prometheus component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kibana&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-dashboards-component&#34;&gt;OpenSearchDashboardsComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The OpenSearch Dashboards component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grafana&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#grafana-component&#34;&gt;GrafanaComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Grafana component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kiali&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#kiali-component&#34;&gt;KialiComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Kiali component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prometheusOperator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#prometheus-operator-component&#34;&gt;PrometheusOperatorComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Prometheus Operator component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prometheusAdapter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#prometheus-adapter-component&#34;&gt;PrometheusAdapterComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Prometheus Adapter component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kubeStateMetrics&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#kube-state-metrics-component&#34;&gt;KubeStateMetricsComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The kube-state-metrics component configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;authproxy-component&#34;&gt;AuthProxy Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then AuthProxy will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kubernetes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#authproxy-kubernetes-configuration&#34;&gt;AuthProxyKubernetes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Kubernetes resources than can be configured for AuthProxy.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/helm_config/charts/verrazzano-authproxy/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;authproxy-kubernetes-configuration&#34;&gt;AuthProxy Kubernetes Configuration&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;The number of pods to replicate.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;affinity&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity&#34;&gt;Affinity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A Kubernetes affinity definition.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;certmanager-component&#34;&gt;CertManager Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;certificate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#certificate&#34;&gt;Certificate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The certificate configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/cert-manager/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;certificate&#34;&gt;Certificate&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;acme&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#acme&#34;&gt;Acme&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The ACME configuration.  Either &lt;code&gt;acme&lt;/code&gt; or &lt;code&gt;ca&lt;/code&gt; must be specified.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ca&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#certificateauthority&#34;&gt;CertificateAuthority&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The certificate authority configuration.  Either &lt;code&gt;acme&lt;/code&gt; or &lt;code&gt;ca&lt;/code&gt; must be specified.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;acme&#34;&gt;Acme&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;provider&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the Acme provider.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emailAddress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Email address of the user.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;certificateauthority&#34;&gt;CertificateAuthority&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;secretName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The secret name.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;clusterResourceNamespace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The secrete namespace.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;dns-component&#34;&gt;DNS Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wildcard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#dns-wildcard&#34;&gt;DNS-Wilcard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Wildcard DNS configuration. This is the default with a domain of &lt;code&gt;nip.io&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;oci&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#dns-oci&#34;&gt;DNS-OCI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Oracle Cloud Infrastructure DNS configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;external&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#dns-external&#34;&gt;DNS-External&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;External DNS configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/external-dns/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;dns-wildcard&#34;&gt;DNS Wildcard&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;domain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The type of wildcard DNS domain. For example, &lt;code&gt;nip.io&lt;/code&gt;, &lt;code&gt;sslip.io&lt;/code&gt;, and such.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;dns-oracle-cloud-infrastructure&#34;&gt;DNS Oracle Cloud Infrastructure&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ociConfigSecret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the Oracle Cloud Infrastructure configuration secret.  Generate a secret based on the Oracle Cloud Infrastructure configuration profile you want to use.  You can specify a profile other than DEFAULT and specify the secret name.  See instructions by running &lt;code&gt;./install/create_oci_config_secret.sh&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dnsZoneCompartmentOCID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The Oracle Cloud Infrastructure DNS compartment OCID.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dnsZoneOCID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The Oracle Cloud Infrastructure DNS zone OCID.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dnsZoneName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of Oracle Cloud Infrastructure DNS zone.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dnsScope&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Scope of the Oracle Cloud Infrastructure DNS zone (&lt;code&gt;PRIVATE&lt;/code&gt;, &lt;code&gt;GLOBAL&lt;/code&gt;). If not specified, then defaults to &lt;code&gt;GLOBAL&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;dns-external&#34;&gt;DNS External&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;suffix&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The suffix for DNS names.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;ingress-component&#34;&gt;Ingress Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The ingress type.  Valid values are &lt;code&gt;LoadBalancer&lt;/code&gt; and &lt;code&gt;NodePort&lt;/code&gt;.  The default value is &lt;code&gt;LoadBalancer&lt;/code&gt;. If the ingress type is &lt;code&gt;NodePort&lt;/code&gt;, a valid and accessible IP address must be specified using the &lt;code&gt;controller.service.externalIPs&lt;/code&gt; key in &lt;a href=&#34;#nginx-install-args&#34;&gt;NGINXInstallArgs&lt;/a&gt;. For sample usage, see &lt;a href=&#34;../../../docs/setup/customizing/externallbs/&#34;&gt;External Load Balancers&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nginxInstallArgs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#nginx-install-args&#34;&gt;NGINXInstallArgs&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of values to use during NGINX installation.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ports&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#port-config&#34;&gt;PortConfig&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;The list port configurations used by the ingress.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/ingress-nginx/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;nginx-install-args&#34;&gt;NGINX Install Args&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;ValueType&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller.service.externalIPs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string list&lt;/td&gt;
&lt;td&gt;The external IP address used by the NGINX Ingress Controller.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller.service.externalTrafficPolicy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Preserves the client source IP address. See &lt;a href=&#34;https://kubernetes.github.io/ingress-nginx/deploy/baremetal/&#34;&gt;Bare-metal considerations&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller.service.annotations.*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Annotations used for NGINX Ingress Controller.  For sample usage, see &lt;a href=&#34;../../../docs/setup/customizing/ingress/&#34;&gt;Customize Ingress&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller.autoscaling.enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then enable horizonal pod autoscaler.  Default &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller.autoscaling.minReplicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Minimum replicas used for autoscaling.  Default &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;port-config&#34;&gt;Port Config&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The port name.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The port value.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;targetPort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The target port value. The default is same as the port value.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The protocol used by the port.  &lt;code&gt;TCP&lt;/code&gt; is the default.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodePort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;nodePort&lt;/code&gt; value.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;name-value&#34;&gt;Name Value&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of a Helm override for a Verrazzano component chart, specified with a &lt;code&gt;—set&lt;/code&gt; flag on the Helm command line, for example, &lt;code&gt;helm install --set name=value&lt;/code&gt;. For more information about chart overrides, see &lt;a href=&#34;../../../docs/setup/customizing/ingress/&#34;&gt;Customize Ingress&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The value of a Helm override for a Verrazzano component chart, specified with a &lt;code&gt;—set&lt;/code&gt; flag on the Helm command line, for example, &lt;code&gt;helm install --set name=value&lt;/code&gt;. Either &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;valueList&lt;/code&gt; must be specified. For more information about chart overrides, see &lt;a href=&#34;../../../docs/setup/customizing/ingress/&#34;&gt;Customize Ingress&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;valueList&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string list&lt;/td&gt;
&lt;td&gt;The list of Helm override values for a Verrazzano component, each specified with a &lt;code&gt;—set&lt;/code&gt; flag on the Helm command line, for example, &lt;code&gt;helm install --set name[0]=&amp;lt;first element of valueList&amp;gt; —set name[1]=&amp;lt;second element of valueList&amp;gt;&lt;/code&gt;. Either &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;valueList&lt;/code&gt; must be specified. For more information about chart overrides, see &lt;a href=&#34;../../../docs/setup/customizing/ingress/&#34;&gt;Customize Ingress&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;setString&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;Specifies if the argument requires the Helm &lt;code&gt;--set-string&lt;/code&gt; command-line flag to override a chart value, for example, &lt;code&gt;helm install --set-string name=value&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;istio-component&#34;&gt;Istio Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Istio will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;istioIngress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-ingress-configuration&#34;&gt;IstioIngress&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Istio ingress gateway configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;istioEgress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-egress-configuration&#34;&gt;IstioEgress&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Istio egress gateway configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;istioInstallArgs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-install-args&#34;&gt;IstioInstallArgs&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of values to use during Istio installation.  Each argument is specified as either a &lt;code&gt;name/value&lt;/code&gt; or &lt;code&gt;name/valueList&lt;/code&gt; pair.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for default IstioOperator. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://istio.io/v1.13/docs/reference/config/istio.operator.v1alpha1/#IstioOperatorSpec&#34;&gt;here&lt;/a&gt;. Passing through an invalid IstioOperator resource will result in an error.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;istio-ingress-configuration&#34;&gt;Istio Ingress Configuration&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The Istio ingress type.  Valid values are &lt;code&gt;LoadBalancer&lt;/code&gt; and &lt;code&gt;NodePort&lt;/code&gt;.  The default value is &lt;code&gt;LoadBalancer&lt;/code&gt;. If the Istio ingress type is &lt;code&gt;NodePort&lt;/code&gt;, a valid and accessible IP address must be specified using the &lt;code&gt;gateways.istio-ingressgateway.externalIPs&lt;/code&gt; key in &lt;a href=&#34;#istio-install-args&#34;&gt;IstioInstallArgs&lt;/a&gt;. For sample usage, see &lt;a href=&#34;../../../docs/setup/customizing/externallbs/&#34;&gt;External Load Balancers&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ports&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#port-config&#34;&gt;PortConfig&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;The list port configurations used by the Istio ingress.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kubernetes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-kubernetes-configuration&#34;&gt;IstioKubernetes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Kubernetes resources than can be configured for an Istio ingress gateway.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;istio-egress-configuration&#34;&gt;Istio Egress Configuration&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kubernetes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#istio-kubernetes-configuration&#34;&gt;IstioKubernetes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Kubernetes resources than can be configured for an Istio egress gateway.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;istio-kubernetes-configuration&#34;&gt;Istio Kubernetes Configuration&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;The number of pods to replicate.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;affinity&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity&#34;&gt;Affinity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A Kubernetes affinity definition.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;istio-install-args&#34;&gt;Istio Install Args&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;ValueType&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gateways.istio-ingressgateway.externalIPs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string list&lt;/td&gt;
&lt;td&gt;The external IP address used by the Istio ingress gateway.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gateways.istio-ingressgateway.serviceAnnotations.*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Annotations used for the Istio ingress gateway.  For sample usage, see &lt;a href=&#34;../../../docs/setup/customizing/ingress/&#34;&gt;Customize Ingress&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;meshConfig.enableTracing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;If &lt;code&gt;&amp;quot;true&amp;quot;&lt;/code&gt;, Istio will export tracing when Jaeger is installed. Defaults to &lt;code&gt;&amp;quot;false&amp;quot;&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;meshConfig.defaultConfig.tracing.sampling&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Sampling rate for Istio tracing. Defaults to &lt;code&gt;&amp;quot;1&amp;quot;&lt;/code&gt;, meaning a 1% sampling rate.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;fluentd-component&#34;&gt;Fluentd Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Fluentd will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extraVolumeMounts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#extra-volume-mount&#34;&gt;ExtraVolumeMount&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of host path volume mounts in addition to &lt;code&gt;/var/log&lt;/code&gt; into the Fluentd DaemonSet. The Fluentd component collects log files in the &lt;code&gt;/var/log/containers&lt;/code&gt; directory of Kubernetes worker nodes. The &lt;code&gt;/var/log/containers&lt;/code&gt; directory may contain symbolic links to files located outside the &lt;code&gt;/var/log&lt;/code&gt; directory. If the host path directory containing the log files is located outside of &lt;code&gt;/var/log&lt;/code&gt;, the Fluentd DaemonSet must have the volume mount of that directory to collect the logs.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;elasticsearchURL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The target OpenSearch URLs.  Specify this option in &lt;a href=&#34;https://docs.fluentd.org/output/elasticsearch#hosts-optional&#34;&gt;this format&lt;/a&gt;.  The default &lt;code&gt;http://vmi-system-es-ingest-oidc:8775&lt;/code&gt; is the VMI OpenSearch URL.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;elasticsearchSecret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The secret containing the credentials for connecting to OpenSearch.  This secret needs to be created in the &lt;code&gt;verrazzano-install&lt;/code&gt; namespace prior to creating the Verrazzano custom resource.  Specify the OpenSearch login credentials in the &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; fields in this secret.  Specify the CA for verifying the OpenSearch certificate in the &lt;code&gt;ca-bundle&lt;/code&gt; field, if applicable.  The default &lt;code&gt;verrazzano&lt;/code&gt; is the secret for connecting to the VMI OpenSearch.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;oci&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#oci-logging-configuration&#34;&gt;OCILoggingConfiguration&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Oracle Cloud Infrastructure Logging configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;jaeger-operator-component&#34;&gt;Jaeger Operator Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Jaeger Operator will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;extra-volume-mount&#34;&gt;Extra Volume Mount&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&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;string&lt;/td&gt;
&lt;td&gt;The source host path.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;destination&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The destination path on the Fluentd Container, defaults to the &lt;code&gt;source&lt;/code&gt; host path.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;readOnly&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;Specifies if the volume mount is read-only, defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;oracle-cloud-infrastructure-logging-configuration&#34;&gt;Oracle Cloud Infrastructure Logging Configuration&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;systemLogId&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The OCID of the Oracle Cloud Infrastructure Log that will collect system logs.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;defaultAppLogId&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The OCID of the Oracle Cloud Infrastructure Log that will collect application logs.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiSecret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of the secret containing the Oracle Cloud Infrastructure API configuration and private key.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;keycloak-component&#34;&gt;Keycloak Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Keycloak will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mysql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#mysql-component&#34;&gt;MySQLComponent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Contains the MySQL component configuration needed for Keycloak.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/keycloak/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;mysql-component&#34;&gt;MySQL Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;volumeSource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/volume/&#34;&gt;VolumeSource&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Defines the type of volume to be used for persistence for Keycloak/MySQL, and can be one of either &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#emptydirvolumesource-v1-core&#34;&gt;EmptyDirVolumeSource&lt;/a&gt; or &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#persistentvolumeclaimvolumesource-v1-core&#34;&gt;PersistentVolumeClaimVolumeSource&lt;/a&gt;. If &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#persistentvolumeclaimvolumesource-v1-core&#34;&gt;PersistentVolumeClaimVolumeSource&lt;/a&gt; is declared, then the &lt;code&gt;claimName&lt;/code&gt; must reference the name of a &lt;code&gt;VolumeClaimSpecTemplate&lt;/code&gt; declared in the &lt;code&gt;volumeClaimSpecTemplates&lt;/code&gt; section.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/mysql/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;opensearch-component&#34;&gt;OpenSearch Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then OpenSearch will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;installArgs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-install-args&#34;&gt;OpenSearchInstallArgs&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of values to use during OpenSearch installation.  Each argument is specified as either a &lt;code&gt;name/value&lt;/code&gt; or &lt;code&gt;name/valueList&lt;/code&gt; pair.  For sample usage, see &lt;a href=&#34;../../../docs/setup/customizing/opensearch/&#34;&gt;Customize OpenSearch&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;policies&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-index-management-policies&#34;&gt;Policy&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of &lt;a href=&#34;https://opensearch.org/docs/1.2/im-plugin/ism/index/&#34;&gt;Index State Management&lt;/a&gt; policies to enable on OpenSearch.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-node-groups&#34;&gt;Node&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;A list of OpenSearch node groups.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;opensearch-node-groups&#34;&gt;OpenSearch Node Groups&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the node group.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Node group replica count.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;roles&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;list&lt;/td&gt;
&lt;td&gt;Role(s) that nodes in the group will assume. May be &lt;code&gt;master&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, and/or &lt;code&gt;ingest&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-node-group-storage&#34;&gt;Storage&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Storage settings for the node group.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;resources&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/&#34;&gt;Resources&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Kubernetes container resources for nodes in the node group.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;opensearch-node-group-storage&#34;&gt;OpenSearch Node Group Storage&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Node group storage size expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;opensearch-index-management-policies&#34;&gt;OpenSearch Index Management Policies&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;policyName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the Index State Management policy.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;indexPattern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;An Index Pattern is an index name or pattern like &lt;code&gt;my-index-*&lt;/code&gt;. If an index matches the pattern, the associated policy will attach to the index.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minIndexAge&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://opensearch.org/docs/1.2/opensearch/units/&#34;&gt;Time&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Amount of time until a managed index is deleted. Default is seven days (&lt;code&gt;7d&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rollover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#opensearch-index-management-rollover&#34;&gt;Rollover&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Index rollover settings.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;opensearch-install-args&#34;&gt;OpenSearch Install Args&lt;/h4&gt;
&lt;p&gt;To configure OpenSearch, instead of using install args, Oracle recommends that you use &lt;a href=&#34;#opensearch-node-groups&#34;&gt;OpenSearch Node Groups&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;ValueType&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.master.replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The number of master node replicas.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.master.requests.memory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The master node memory request amount expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.master.requests.storage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The master storage request amount expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.ingest.replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The number of ingest node replicas.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.ingest.requests.memory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The ingest node memory request amount expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.data.replicas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The number of data node replicas.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.data.requests.memory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The data node memory request amount expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nodes.data.requests.storage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#name-value&#34;&gt;NameValue&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The data storage request amount expressed as a &lt;a href=&#34;https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/#Quantity&#34;&gt;Quantity&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;opensearch-index-management-rollover&#34;&gt;OpenSearch Index Management Rollover&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minIndexAge&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://opensearch.org/docs/1.2/opensearch/units/&#34;&gt;Time&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Amount of time until a managed index is rolled over. Default is 1 day (&lt;code&gt;1d&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minSize&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://opensearch.org/docs/1.2/opensearch/units/&#34;&gt;Bytes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The size at which a managed index is rolled over.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minDocCount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;Amount of documents in a managed index that triggers a rollover.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;opensearch-dashboards-component&#34;&gt;OpenSearch Dashboards Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then OpenSearch Dashboards will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;prometheus-component&#34;&gt;Prometheus Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Prometheus will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;grafana-component&#34;&gt;Grafana Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Grafana will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;kiali-component&#34;&gt;Kiali Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then Kiali will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/kiali-server/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;prometheus-operator-component&#34;&gt;Prometheus Operator Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then the Prometheus Operator will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/prometheus-community/kube-prometheus-stack/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;prometheus-adapter-component&#34;&gt;Prometheus Adapter Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then the Prometheus Adapter will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/prometheus-community/prometheus-adapter/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;kube-state-metrics-component&#34;&gt;Kube State Metrics Component&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If true, then kube-state-metrics will be installed.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitorChanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;If false, then Verrazzano updates will ignore any configuration changes to this component. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;overrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt; list&lt;/td&gt;
&lt;td&gt;List of Overrides for the default &lt;code&gt;values.yaml&lt;/code&gt; file for the component Helm chart. Lower Overrides have precedence over the ones above them. You can find all possible values &lt;a href=&#34;https://github.com/verrazzano/verrazzano/blob/v1.3.8/platform-operator/thirdparty/charts/prometheus-community/kube-state-metrics/values.yaml&#34;&gt;here&lt;/a&gt; and invalid values will be ignored.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;overrides&#34;&gt;Overrides&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configMapRef&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/k8s.io/api/core/v1@v0.23.5#ConfigMapKeySelector&#34;&gt;ConfigMapKeySelector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Selector for ConfigMap containing override data.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;secretRef&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/k8s.io/api/core/v1@v0.23.5#SecretKeySelector&#34;&gt;SecretKeySelector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Selector for Secret containing override data.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;values&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1@v0.23.5#JSON&#34;&gt;JSON&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Configure overrides using inline YAML.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Verrazzano Workload Custom Resource Definitions</title>
      <link>/docs/reference/api/oam/workloads/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/oam/workloads/</guid>
      <description>
        
        
        &lt;h3 id=&#34;verrazzanocoherenceworkload&#34;&gt;VerrazzanoCoherenceWorkload&lt;/h3&gt;
&lt;p&gt;The VerrazzanoCoherenceWorkload custom resource contains the configuration information for a &lt;a href=&#34;https://oracle.github.io/coherence-operator/docs/3.1.3/#/about/04_coherence_spec&#34;&gt;Coherence&lt;/a&gt; workload within Verrazzano.  Here is a sample component that specifies a VerrazzanoCoherenceWorkload.  To deploy an example application that demonstrates this workload type, see &lt;a href=&#34;../../../docs/samples/sock-shop/&#34;&gt;Sock Shop&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
  name: carts
  namespace: sockshop
spec:
  workload:
    apiVersion: oam.verrazzano.io/v1alpha1
    kind: VerrazzanoCoherenceWorkload
    spec:
      template:
        metadata:
          name: carts-coh
        spec:
          cluster: SockShop
          role: Carts
          replicas: 1
          image: ghcr.io/helidon-sockshop/carts-coherence:2.2.0
          imagePullPolicy: Always
          application:
            type: helidon
          jvm:
            args:
              - &amp;#34;-Dcoherence.k8s.operator.health.wait.dcs=false&amp;#34;
              - &amp;#34;-Dcoherence.metrics.legacy.names=false&amp;#34;
            memory:
              heapSize: 2g
          coherence:
            logLevel: 9
          ports:
            - name: http
              port: 7001
              service:
                name: carts
                port: 80
              serviceMonitor:
                enabled: true
            - name: metrics
              port: 7001
              serviceMonitor:
                enabled: true
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;verrazzanocoherenceworkload-1&#34;&gt;VerrazzanoCoherenceWorkload&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;VerrazzanoCoherenceWorkload&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanocoherenceworkloadspec&#34;&gt;VerrazzanoCoherenceWorkloadSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a Verrazzano Coherence workload.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanocoherenceworkloadspec&#34;&gt;VerrazzanoCoherenceWorkloadSpec&lt;/h4&gt;
&lt;p&gt;VerrazzanoCoherenceWorkloadSpec specifies the desired state of a Verrazzano Coherence workload.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/k8s.io/apimachinery/pkg/runtime#RawExtension&#34;&gt;RawExtension&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The metadata and spec for the underlying &lt;a href=&#34;https://oracle.github.io/coherence-operator/docs/3.1.3/#/about/04_coherence_spec&#34;&gt;Coherence&lt;/a&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;verrazzanohelidonworkload&#34;&gt;VerrazzanoHelidonWorkload&lt;/h3&gt;
&lt;p&gt;The VerrazzanoHelidonWorkload custom resource contains the configuration information for a &lt;a href=&#34;https://helidon.io&#34;&gt;Helidon&lt;/a&gt; workload within Verrazzano. Here is a sample component that specifies a VerrazzanoHelidonWorkload.  To deploy an example application that demonstrates this workload type, see &lt;a href=&#34;../../../docs/samples/hello-world/&#34;&gt;Hello World Helidon&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
  name: hello-helidon-component
  namespace: hello-helidon
spec:
  workload:
    apiVersion: oam.verrazzano.io/v1alpha1
    kind: VerrazzanoHelidonWorkload
    metadata:
      name: hello-helidon-workload
      labels:
        app: hello-helidon
    spec:
      deploymentTemplate:
        metadata:
          name: hello-helidon-deployment
        podSpec:
          containers:
            - name: hello-helidon-container
              image: &amp;#34;ghcr.io/verrazzano/example-helidon-greet-app-v1:0.1.10-3-20201016220428-56fb4d4&amp;#34;
              ports:
                - containerPort: 8080
                  name: http
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;verrazzanohelidonworkload-1&#34;&gt;VerrazzanoHelidonWorkload&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;VerrazzanoHelidonWorkload&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanohelidonworkloadspec&#34;&gt;VerrazzanoHelidonWorkloadSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a Verrazzano Helidon workload.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanohelidonworkloadspec&#34;&gt;VerrazzanoHelidonWorkloadSpec&lt;/h4&gt;
&lt;p&gt;VerrazzanoHelidonWorkloadSpec specifies the desired state of a Verrazzano Helidon workload.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deploymentTemplate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#deploymenttemplate&#34;&gt;DeploymentTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The embedded deployment.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;deploymenttemplate&#34;&gt;DeploymentTemplate&lt;/h4&gt;
&lt;p&gt;DeploymentTemplate specifies the metadata and pod spec of the underlying deployment.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;strategy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#deploymentstrategy-v1-apps&#34;&gt;DeploymentStrategy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The replacement strategy of the underlying deployment.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podSpec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#podspec-v1-core&#34;&gt;PodSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The pod spec of the underlying deployment.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;verrazzanoweblogicworkload&#34;&gt;VerrazzanoWebLogicWorkload&lt;/h3&gt;
&lt;p&gt;The VerrazzanoWebLogicWorkload custom resource contains the configuration information for a WebLogic &lt;a href=&#34;https://github.com/oracle/weblogic-kubernetes-operator/blob/main/documentation/domains/Domain.md&#34;&gt;Domain&lt;/a&gt; workload within Verrazzano.  Here is a sample component that specifies a VerrazzanoWebLogicWorkload.  To deploy an example application that demonstrates this workload type, see the ToDo List &lt;a href=&#34;../../../docs/guides/lift-and-shift/lift-and-shift/&#34;&gt;Lift-and-Shift&lt;/a&gt; application.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
  name: todo-domain
  namespace: todo-list
spec:
  workload:
    apiVersion: oam.verrazzano.io/v1alpha1
    kind: VerrazzanoWebLogicWorkload
    spec:
      template:
        metadata:
          name: todo-domain
          namespace: todo-list
        spec:
          domainUID: tododomain
          domainHome: /u01/domains/tododomain
          image: container-registry.oracle.com/verrazzano/example-todo:0.8.0
          imagePullSecrets:
            - name: tododomain-repo-credentials
          domainHomeSourceType: &amp;#34;FromModel&amp;#34;
          includeServerOutInPodLog: true
          replicas: 1
          webLogicCredentialsSecret:
            name: tododomain-weblogic-credentials
          configuration:
            introspectorJobActiveDeadlineSeconds: 900
            model:
              configMap: tododomain-jdbc-config
              domainType: WLS
              modelHome: /u01/wdt/models
              runtimeEncryptionSecret: tododomain-runtime-encrypt-secret
            secrets:
              - tododomain-jdbc-tododb
          serverPod:
            env:
              - name: JAVA_OPTIONS
                value: &amp;#34;-Dweblogic.StdoutDebugEnabled=false&amp;#34;
              - name: USER_MEM_ARGS
                value: &amp;#34;-Djava.security.egd=file:/dev/./urandom -Xms64m -Xmx256m &amp;#34;
              - name: WL_HOME
                value: /u01/oracle/wlserver
              - name: MW_HOME
                value: /u01/oracle
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;verrazzanoweblogicworkload-1&#34;&gt;VerrazzanoWebLogicWorkload&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oam.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;VerrazzanoWebLogicWorkload&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanoweblogicworkloadspec&#34;&gt;VerrazzanoWebLogicWorkloadSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The desired state of a Verrazzano WebLogic workload.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanoweblogicworkloadspec&#34;&gt;VerrazzanoWebLogicWorkloadSpec&lt;/h4&gt;
&lt;p&gt;VerrazzanoWebLogicWorkloadSpec specifies the desired state of a Verrazzano WebLogic workload.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/k8s.io/apimachinery/pkg/runtime#RawExtension&#34;&gt;RawExtension&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The metadata and spec for the underlying WebLogic &lt;a href=&#34;https://github.com/oracle/weblogic-kubernetes-operator/blob/main/documentation/domains/Domain.md&#34;&gt;Domain&lt;/a&gt; resource.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: VerrazzanoManagedCluster Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/verrazzanomanagedcluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/verrazzanomanagedcluster/</guid>
      <description>
        
        
        &lt;p&gt;The VerrazzanoManagedCluster custom resource is used to register a managed cluster with an admin cluster.  Here is a sample VerrazzanoManagedCluster that registers the cluster named &lt;code&gt;managed1&lt;/code&gt;.  To deploy an example application that demonstrates a VerrazzanoManagedCluster, see &lt;a href=&#34;../../../docs/samples/multicluster/hello-helidon/&#34;&gt;Multicluster Hello World Helidon&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: VerrazzanoManagedCluster
metadata:
  name: managed1
  namespace: verrazzano-mc
spec:
  description: &amp;#34;Managed Cluster 1&amp;#34;
  caSecret: ca-secret-managed1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;verrazzanomanagedcluster&#34;&gt;VerrazzanoManagedCluster&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;VerrazzanoManagedCluster&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanomanagedclusterspec&#34;&gt;VerrazzanoManagedClusterSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The managed cluster specification.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanomanagedclusterstatus&#34;&gt;VerrazzanoManagedClusterStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status this resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanomanagedclusterspec&#34;&gt;VerrazzanoManagedClusterSpec&lt;/h4&gt;
&lt;p&gt;VerrazzanoManagedClusterSpec specifies a managed cluster to associate with an admin cluster.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The description of the managed cluster.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;caSecret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of a Secret that contains the CA certificate of the managed cluster. This is used to configure the admin cluster to scrape metrics from the Prometheus endpoint on the managed cluster. See the pre-registration &lt;a href=&#34;../../../docs/setup/install/multicluster/#preregistration-setup&#34;&gt;instructions&lt;/a&gt; for how to create this Secret.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;serviceAccount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of the ServiceAccount that was generated for the managed cluster. This field is managed by a Verrazzano Kubernetes operator.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;managedClusterManifestSecret&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The name of the Secret containing generated YAML manifest file to be applied by the user to the managed cluster. This field is managed by a Verrazzano Kubernetes operator.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanomanagedclusterstatus&#34;&gt;VerrazzanoManagedClusterStatus&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;conditions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#condition&#34;&gt;Condition&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;The current state of this resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lastAgentConnectTime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The last time the agent from this managed cluster connected to the admin cluster.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiUrl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The Verrazzano API server URL for the managed cluster.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;condition&#34;&gt;Condition&lt;/h4&gt;
&lt;p&gt;Condition describes current state of this resource.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The condition of the multicluster resource which can be checked with a &lt;code&gt;kubectl wait&lt;/code&gt; command. Condition values are case-sensitive and formatted as follows: &lt;code&gt;Ready&lt;/code&gt;: the VerrazzanoManagedCluster is ready to be used and all resources needed have been generated.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ConditionStatus&lt;/td&gt;
&lt;td&gt;An instance of the type ConditionStatus that is defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lastTransitionTime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;The last time the condition transitioned from one status to another.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;message&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;A message with details about the last transition.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: VerrazzanoProject Custom Resource Definition</title>
      <link>/docs/reference/api/multicluster/verrazzanoproject/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/multicluster/verrazzanoproject/</guid>
      <description>
        
        
        &lt;p&gt;The VerrazzanoProject custom resource is used to create the application namespaces and their associated security settings on one or more clusters.  The namespaces are always created on the admin cluster.  Here is a sample VerrazzanoProject that specifies a namespace to create on the cluster named &lt;code&gt;managed1&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: clusters.verrazzano.io/v1alpha1
kind: VerrazzanoProject
metadata:
  name: hello-helidon
  namespace: verrazzano-mc
spec:
  template:
    namespaces:
      - metadata:
          name: hello-helidon
  placement:
    clusters:
      - name: managed1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;verrazzanoproject&#34;&gt;VerrazzanoProject&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;VerrazzanoProject&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#verrazzanoprojectspec&#34;&gt;VerrazzanoProjectSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The project specification.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../multiclusterresourcestatus&#34;&gt;MultiClusterResourceStatus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The runtime status of a multicluster resource.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;verrazzanoprojectspec&#34;&gt;VerrazzanoProjectSpec&lt;/h4&gt;
&lt;p&gt;VerrazzanoProjectSpec specifies the namespaces to create and on which clusters to create them.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#projecttemplate&#34;&gt;ProjectTemplate&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The project template.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;../placement&#34;&gt;Placement&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Clusters on which the namespaces are to be created.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;projecttemplate&#34;&gt;ProjectTemplate&lt;/h4&gt;
&lt;p&gt;ProjectTemplate contains the list of namespaces to create and the optional security configuration for each namespace.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;namespaces&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#namespacetemplate&#34;&gt;NamespaceTemplate&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;The list of application namespaces to create for this project.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;security&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#securityspec&#34;&gt;SecuritySpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The project security configuration.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;networkPolicies&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#networkpolicytemplate&#34;&gt;NetworkPolicyTemplate&lt;/a&gt; array&lt;/td&gt;
&lt;td&gt;The network policies applied to namespaces in the project.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;namespacetemplate&#34;&gt;NamespaceTemplate&lt;/h4&gt;
&lt;p&gt;NamespaceTemplate contains the metadata and specification of a Kubernetes namespace.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NamespaceSpec&lt;/td&gt;
&lt;td&gt;An instance of the &lt;code&gt;struct&lt;/code&gt; NamespaceSpec defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/core/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;securityspec&#34;&gt;SecuritySpec&lt;/h4&gt;
&lt;p&gt;SecuritySpec defines the security configuration for a project.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;projectAdminSubjects&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subject&lt;/td&gt;
&lt;td&gt;The subject to bind to the &lt;code&gt;verrazzano-project-admin&lt;/code&gt; role. Encoded as an instance of the &lt;code&gt;struct&lt;/code&gt; Subject defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/rbac/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;projectMonitorSubjects&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subject&lt;/td&gt;
&lt;td&gt;The subject to bind to the &lt;code&gt;verrazzano-project-monitoring&lt;/code&gt; role. Encoded as an instance of the &lt;code&gt;struct&lt;/code&gt; Subject defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/rbac/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;networkpolicytemplate&#34;&gt;NetworkPolicyTemplate&lt;/h4&gt;
&lt;p&gt;NetworkPolicyTemplate contains the metadata and specification of the underlying NetworkPolicy.


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;NOTE&lt;/h4&gt;

    To add an application NetworkPolicy, see &lt;a href=&#34;../../../docs/networking/security/net-security/#networkpolicies-for-applications&#34;&gt;NetworkPolicies for applications&lt;/a&gt;.

&lt;/div&gt;
&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ObjectMeta&lt;/td&gt;
&lt;td&gt;Refer to Kubernetes API documentation for fields of metadata.&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NetworkPolicySpec&lt;/td&gt;
&lt;td&gt;An instance of the &lt;code&gt;struct&lt;/code&gt; NetworkPolicySpec defined in &lt;a href=&#34;https://github.com/kubernetes/api/blob/master/networking/v1/types.go&#34;&gt;types.go&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
  </channel>
</rss>
