<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Validate and Deploy on Layer5 Documentation</title><link>/kanvas/guides/deploying/</link><description>Recent content in Validate and Deploy on Layer5 Documentation</description><generator>Hugo</generator><language>en</language><atom:link href="/kanvas/guides/deploying/index.xml" rel="self" type="application/rss+xml"/><item><title>Validate a Design</title><link>/kanvas/guides/deploying/validating-designs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/kanvas/guides/deploying/validating-designs/</guid><description>&lt;p&gt;Validation checks the configuration of each component in a design against the schema of that component&amp;rsquo;s definition. It runs in your browser, needs no cluster, and changes nothing. Run it while you build to catch missing or malformed fields before a dry run or a deployment spends time on them.&lt;/p&gt;

&lt;h2 id="before-you-start" class="heading-link"&gt;
 Before you start
 &lt;a href="#before-you-start" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Environment.&lt;/strong&gt; Validation runs in a Meshery you run. The hosted kanvas.new site does not run it and shows a self-hosted-feature prompt instead.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A non-empty design.&lt;/strong&gt; The Actions menu is disabled while the design has no components. An unsaved design validates; Kanvas validates the design as it is on the canvas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Permission.&lt;/strong&gt; On mobile, the Validate Design permission gates the action. See &lt;a href="/kanvas/reference/permissions/"&gt;Permissions by Role&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="what-validation-checks" class="heading-link"&gt;
 What validation checks
 &lt;a href="#what-validation-checks" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Checked&lt;/th&gt;
 &lt;th&gt;Not checked&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Each component&amp;rsquo;s configuration against the JSON schema of its registered definition, with all errors collected per component&lt;/td&gt;
 &lt;td&gt;Relationships between components&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Required fields, types, and formats, including 32-bit and 64-bit integers and integer-or-string values&lt;/td&gt;
 &lt;td&gt;Dependencies, namespaces, and cross-references&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;Anything in the target cluster&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Annotation components (text, shapes, and other visual elements) carry no infrastructure and are skipped. They are counted separately in the summary.&lt;/p&gt;</description></item><item><title>Dry-run a Design</title><link>/kanvas/guides/deploying/dry-running-a-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/kanvas/guides/deploying/dry-running-a-design/</guid><description>&lt;p&gt;A dry run submits every component in the design to the Kubernetes API server of each target cluster as a server-side dry-run request. The API server validates the object exactly as it would on a real apply, including schema, field values, and admission, and then discards it. Nothing is created, updated, or persisted, so you can repeat a dry run as often as you like.&lt;/p&gt;

&lt;h2 id="before-you-start" class="heading-link"&gt;
 Before you start
 &lt;a href="#before-you-start" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A connected cluster.&lt;/strong&gt; Meshery must hold at least one connected Kubernetes context. With none, the request fails with error &lt;code&gt;meshery-server-1096&lt;/code&gt;, Kubernetes cluster is unavailable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A non-empty design.&lt;/strong&gt; The Actions menu is disabled for an empty design.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Permission.&lt;/strong&gt; Dry run is gated by the Validate Design permission. See &lt;a href="/kanvas/reference/permissions/"&gt;Permissions by Role&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Meshery you run.&lt;/strong&gt; The hosted kanvas.new site does not run dry runs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meshery Server performs the dry run with the kubeconfig it holds. Meshery Operator, MeshSync, and the broker are not required.&lt;/p&gt;</description></item><item><title>Deploy a Design</title><link>/kanvas/guides/deploying/deploying-designs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/kanvas/guides/deploying/deploying-designs/</guid><description>&lt;p&gt;Deploying applies the components in a design to the Kubernetes clusters in the environments you choose. Meshery Server does the work with the kubeconfig it holds: it creates each object, or updates it in place when it already exists. Deploying the same design again is safe and idempotent.&lt;/p&gt;

&lt;h2 id="before-you-start" class="heading-link"&gt;
 Before you start
 &lt;a href="#before-you-start" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A Meshery you run, with a connected cluster.&lt;/strong&gt; The hosted kanvas.new site does not deploy; it shows a self-hosted-feature prompt. Meshery needs at least one connected Kubernetes context that belongs to an environment in your organization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A non-empty design.&lt;/strong&gt; The Actions menu is disabled for an empty design. An unsaved design deploys as it stands on the canvas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Permission.&lt;/strong&gt; The Deploy Design permission gates the action. See &lt;a href="/kanvas/reference/permissions/"&gt;Permissions by Role&lt;/a&gt;. Selecting environments from the empty state also needs the Create Environment and Edit Environment permissions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A provider session.&lt;/strong&gt; Without a signed-in session the request fails before any event is raised.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deploying does not need Meshery Operator, MeshSync, or the broker. Those make the result visible in Operator mode.&lt;/p&gt;</description></item><item><title>Undeploy a Design</title><link>/kanvas/guides/deploying/undeploying-designs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/kanvas/guides/deploying/undeploying-designs/</guid><description>&lt;p&gt;Undeploying deletes the Kubernetes objects that each component in a design describes, from every cluster in the environments you select. It does not touch the design itself. The design record, its versions, and its Operator view are unchanged.&lt;/p&gt;

&lt;h2 id="before-you-start" class="heading-link"&gt;
 Before you start
 &lt;a href="#before-you-start" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The prerequisites match &lt;a href="/kanvas/guides/deploying/deploying-designs/"&gt;Deploy a Design&lt;/a&gt;: a Meshery you run with a connected cluster, a non-empty design, and the &lt;strong&gt;Undeploy Design&lt;/strong&gt; permission. The hosted kanvas.new site does not run undeploy. See &lt;a href="/kanvas/reference/permissions/"&gt;Permissions by Role&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>