<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Verrazzano Enterprise Container Platform – Reference</title>
    <link>/docs/reference/</link>
    <description>Recent content in Reference on Verrazzano Enterprise Container Platform</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/docs/reference/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: API</title>
      <link>/docs/reference/api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/api/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Docs: Deprecated API Migration Guide</title>
      <link>/docs/reference/migration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/reference/migration/</guid>
      <description>
        
        
        &lt;p&gt;As the Verrazzano API evolves, APIs are periodically updated. When APIs evolve, the old API is deprecated and eventually removed.
This document contains information that you need to know when migrating from deprecated API versions to newer and more stable API versions.&lt;/p&gt;
&lt;h2 id=&#34;verrazzano&#34;&gt;Verrazzano&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;install.verrazzano.io/v1alpha1&lt;/code&gt; API version of Verrazzano resources is deprecated and will no longer be served in a future release.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Migrate manifests and API clients to use the &lt;code&gt;install.verrazzano.io/v1beta1&lt;/code&gt; API version, available since 1.4.0.&lt;/li&gt;
&lt;li&gt;All existing persisted objects are accessible using the new API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;notable-changes-in-installverrazzanoiov1beta1&#34;&gt;Notable Changes In install.verrazzano.io/v1beta1&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;spec.components.ingress&lt;/code&gt; is renamed to &lt;code&gt;spec.components.ingressNGINX&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spec.components.kibana&lt;/code&gt; is renamed to &lt;code&gt;spec.components.opensearchDashboards&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spec.components.elasticsearch&lt;/code&gt; is renamed to &lt;code&gt;spec.components.opensearch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spec.components.fluentd.elasticsearchSecret&lt;/code&gt; is renamed to &lt;code&gt;spec.components.fluentd.opensearchSecret&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spec.components.fluentd.elasticsearchURL&lt;/code&gt; is renamed to &lt;code&gt;spec.components.fluentd.opensearchURL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status.instance.kibanaUrl&lt;/code&gt; is renamed to &lt;code&gt;status.instance.opensearchDashboardsUrl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status.instance.elasticUrl&lt;/code&gt; is renamed to &lt;code&gt;status.instance.opensearchUrl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.opensearch.nodes&lt;/code&gt; instead of &lt;code&gt;spec.components.elasticsearch.installArgs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.ingressNGINX.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.ingress.nginxInstallArgs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.istio.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.istio.istioInstallArgs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.istio.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.istio.ingress&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.istio.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.istio.egress&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.keycloak.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.keycloak.keycloakInstallArgs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.verrazzano.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.verrazzano.installArgs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;spec.components.authProxy.overrides&lt;/code&gt; instead of &lt;code&gt;spec.components.authProxy.kubernetes&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;co-installing-previous-verrazzano-versions&#34;&gt;Co-installing previous Verrazzano versions&lt;/h4&gt;
&lt;p&gt;After installing Verrazzano version 1.4.0 or later, and not uninstalling it &lt;em&gt;before&lt;/em&gt; installing versions of Verrazzano prior to 1.4.0, will result in the following error:
&lt;style type=&#34;text/css&#34;&gt;
    code {
        margin: 0;
        padding: 0;
    }

    .copy-code-button {
        position: absolute;
        right: 0;
        top: -29px;
        font-size: 12px;
        line-height: 14px;
        width: 65px;
        color: white;
        background-color: #30638E;
        border: 1px solid #30638E;
        white-space: nowrap;
        padding: 6px 6px 7px 6px;
    }

    .copy-code-button:hover,
    .copy-code-button:focus{
        background-color: gray;
        opacity: 1;
    }

&lt;/style&gt;

&lt;div class=&#34;clipboard&#34;&gt;
    &lt;div class=&#34;highlight&#34;&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;The CustomResourceDefinition &amp;#34;verrazzanos.install.verrazzano.io&amp;#34; is invalid: status.storedVersions[0]: Invalid value: &amp;#34;v1beta1&amp;#34;: must appear in spec.versions
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;script&gt;
    function createCopyButton(highlightDiv) {
        const button = document.createElement(&#34;button&#34;);
        button.innerText = &#34;Copy&#34;;
        button.className = &#34;copy-code-button&#34;;
        button.addEventListener(&#34;click&#34;, () =&gt;
            copyCodeToClipboard(button, highlightDiv)
        );
        addCopyButton(button, highlightDiv);
    }

    function addCopyButton(button, highlightDiv) {
        highlightDiv.insertBefore(button, highlightDiv.firstChild);
        const wrapper = document.createElement(&#34;div&#34;);
        highlightDiv.parentNode.insertBefore(wrapper, highlightDiv);
        wrapper.appendChild(highlightDiv);
    }

    async function copyCodeToClipboard(button, highlightDiv) {
        let codeToCopy = highlightDiv.querySelector(&#34;:last-child &gt; code, pre&#34;).innerText;
        
        let codeBlock = codeToCopy.split(&#34;\n&#34;);
        let expectedLine = codeBlock.findIndex(line =&gt; line.toLowerCase().startsWith(&#34;# expected response&#34;) || line.toLowerCase().startsWith(&#34;# sample output&#34;));
        if (expectedLine !== -1) {
            codeBlock.splice(expectedLine);
        }
        codeToCopy = codeBlock.join(&#34;\n&#34;);
        
        codeToCopy = codeToCopy.replace(/^#(.*)$/gm, &#39;&#39;).trim();
        
        codeToCopy = codeToCopy.replace(/\$\s+/gm, &#39;&#39;).trim();
        codeToCopy = codeToCopy.replace(/\n{2,}/g,&#39;\n&#39;);
        console.log(codeToCopy);
        try {
            await navigator.clipboard.writeText(codeToCopy);
        } catch (err) {
            
            const textarea = document.createElement(&#39;textarea&#39;);
            textarea.value = codeToCopy;
            document.body.appendChild(textarea);
            textarea.select();
            document.execCommand(&#39;copy&#39;);
            textarea.remove();
        }
        button.blur();
        button.innerText = &#34;Copied&#34;;
        setTimeout(function () {
            button.innerText = &#34;Copy&#34;;
        }, 2000);
    }


    document
        .querySelectorAll(&#34;.highlight&#34;)
        .forEach((highlightDiv) =&gt; createCopyButton(highlightDiv));
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;To resolve this error, delete the &lt;code&gt;verrazzanos.install.verrazzano.io&lt;/code&gt; Custom Resource Definition:
&lt;style type=&#34;text/css&#34;&gt;
    code {
        margin: 0;
        padding: 0;
    }

    .copy-code-button {
        position: absolute;
        right: 0;
        top: -29px;
        font-size: 12px;
        line-height: 14px;
        width: 65px;
        color: white;
        background-color: #30638E;
        border: 1px solid #30638E;
        white-space: nowrap;
        padding: 6px 6px 7px 6px;
    }

    .copy-code-button:hover,
    .copy-code-button:focus{
        background-color: gray;
        opacity: 1;
    }

&lt;/style&gt;

&lt;div class=&#34;clipboard&#34;&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-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl delete customresourcedefinition verrazzanos.install.verrazzano.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function createCopyButton(highlightDiv) {
        const button = document.createElement(&#34;button&#34;);
        button.innerText = &#34;Copy&#34;;
        button.className = &#34;copy-code-button&#34;;
        button.addEventListener(&#34;click&#34;, () =&gt;
            copyCodeToClipboard(button, highlightDiv)
        );
        addCopyButton(button, highlightDiv);
    }

    function addCopyButton(button, highlightDiv) {
        highlightDiv.insertBefore(button, highlightDiv.firstChild);
        const wrapper = document.createElement(&#34;div&#34;);
        highlightDiv.parentNode.insertBefore(wrapper, highlightDiv);
        wrapper.appendChild(highlightDiv);
    }

    async function copyCodeToClipboard(button, highlightDiv) {
        let codeToCopy = highlightDiv.querySelector(&#34;:last-child &gt; code, pre&#34;).innerText;
        
        let codeBlock = codeToCopy.split(&#34;\n&#34;);
        let expectedLine = codeBlock.findIndex(line =&gt; line.toLowerCase().startsWith(&#34;# expected response&#34;) || line.toLowerCase().startsWith(&#34;# sample output&#34;));
        if (expectedLine !== -1) {
            codeBlock.splice(expectedLine);
        }
        codeToCopy = codeBlock.join(&#34;\n&#34;);
        
        codeToCopy = codeToCopy.replace(/^#(.*)$/gm, &#39;&#39;).trim();
        
        codeToCopy = codeToCopy.replace(/\$\s+/gm, &#39;&#39;).trim();
        codeToCopy = codeToCopy.replace(/\n{2,}/g,&#39;\n&#39;);
        console.log(codeToCopy);
        try {
            await navigator.clipboard.writeText(codeToCopy);
        } catch (err) {
            
            const textarea = document.createElement(&#39;textarea&#39;);
            textarea.value = codeToCopy;
            document.body.appendChild(textarea);
            textarea.select();
            document.execCommand(&#39;copy&#39;);
            textarea.remove();
        }
        button.blur();
        button.innerText = &#34;Copied&#34;;
        setTimeout(function () {
            button.innerText = &#34;Copy&#34;;
        }, 2000);
    }


    document
        .querySelectorAll(&#34;.highlight&#34;)
        .forEach((highlightDiv) =&gt; createCopyButton(highlightDiv));
&lt;/script&gt;&lt;/p&gt;
&lt;h2 id=&#34;multicluster&#34;&gt;Multicluster&lt;/h2&gt;
&lt;p&gt;Some of the multicluster wrappers APIs, which are part of &lt;code&gt;clusters.verrazzano.io/v1alpha1&lt;/code&gt;, are deprecated and will be removed in Verrazzano v2.0.0.
The APIs that will be removed are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MultiClusterComponent - Should be replaced with a &lt;code&gt;core.oam/dev/v1alpha2&lt;/code&gt; Component resource.&lt;/li&gt;
&lt;li&gt;MultiClusterConfigMap - Should be replaced with a &lt;code&gt;core.oam/dev/v1alpha2&lt;/code&gt; Component resource.&lt;/li&gt;
&lt;li&gt;MultiClusterSecret - Should be replaced with a Kubernetes Secret and referenced in the &lt;code&gt;spec.secrets&lt;/code&gt; of a MultiClusterApplicationConfiguration resource.&lt;/li&gt;
&lt;/ul&gt;

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