Skip to content

Commit 0dbce54

Browse files
authored
Merge pull request #644 from zihanKuang/import-design
Docs: Consolidate "Importing Designs" Guide and Adjust Tab Styling
2 parents 19debfb + c98b04b commit 0dbce54

File tree

10 files changed

+128
-46
lines changed

10 files changed

+128
-46
lines changed

assets/scss/_styles_project.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ a:not([href]):not([class]):hover {
708708
overflow-x: scroll;
709709
background: transparent;
710710
flex-direction: column;
711-
gap: 3rem;
711+
gap: 1rem;
712712
}
713713

714714
.tab-content>.active {
Binary file not shown.
Binary file not shown.
Loading
Loading
Loading
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: Importing a Design
3+
description: >
4+
Learn how to import designs from various sources and formats, including Kubernetes manifests, Helm charts, Docker Compose files, and more.
5+
weight: 3
6+
categories: [Designer]
7+
tags: [designs]
8+
aliases:
9+
- /meshmap/getting-started/starting-helm
10+
- /kanvas/getting-started/starting-helm
11+
---
12+
13+
[Kanvas](https://kanvas.new) acts as a powerful bridge, enabling you to import your existing application and infrastructure configurations from a wide variety of standard formats. It transforms these configurations into visual, editable, deployable, and shareable designs. This guide covers how to import designs, the supported formats, and important considerations.
14+
15+
## Accessing the Import Functionality
16+
17+
There are multiple ways to import a design.
18+
19+
**1. From [Kanvas](https://kanvas.new):**
20+
21+
The most direct method is to click the **hamburger menu** (☰) in the top-left corner, then select the "Import" button in the Kanvas toolbar.
22+
![File Import Process](/kanvas/getting-started/images/importing-designs/file-import.gif)
23+
24+
**2. From Layer5 Cloud:**
25+
26+
Navigate to the [My Designs](https://cloud.layer5.io/catalog/content/my-designs) page and click the "Import" button.
27+
![Cloud Import Process](/kanvas/getting-started/images/importing-designs/cloud-url.gif)
28+
29+
**3. Using Drag and Drop:**
30+
31+
You can drag a file from your local computer directly onto the Kanvas canvas to import a design.
32+
![Drag and Drop Import](/kanvas/getting-started/images/importing-designs/drag-drop.gif)
33+
34+
**4. Via GitHub Integration:**
35+
36+
For a more advanced, repository-based workflow, you can establish a persistent connection between your GitHub account and Meshery. This allows you to browse your repositories and import multiple designs directly.
37+
> Learn more about [GitHub integration](/cloud/getting-started/github-integration/).
38+
39+
{{< alert type="info" title="Recommendation: Use Kanvas Import" >}}
40+
For the most flexibility, we recommend initiating the import from within Kanvas. This interface gives you the option to either import the configuration as a brand-new design or merge it into a design you currently have open.
41+
{{< /alert >}}
42+
43+
## Importing by Infrastructure Type
44+
45+
Kanvas supports a diverse set of infrastructure types and packaging formats. The following sections provide detailed requirements and instructions for each.
46+
47+
{{< tabpane text=true >}}
48+
49+
{{% tab header="From Kubernetes Manifests" lang="en" active="true" %}}
50+
51+
Importing from a Kubernetes manifest is the most direct way to bring your existing configurations into Kanvas. This method is suitable for any standard `.yaml` or `.yml` file that conforms to the Kubernetes API specification, as well as for projects managed by Kustomize.
52+
53+
**1. Importing Plain Kubernetes Manifests:** If you have Kubernetes configurations available as standard manifest files, you can import them directly.
54+
55+
- **Supported Packaging Formats:** A standard `.yaml` or `.yml` file containing one or more Kubernetes resource definitions.
56+
57+
**2. Importing a Kustomize Project:** If you manage your Kubernetes configurations with Kustomize, a popular template-free tool for customization, you can import your entire project.
58+
59+
A key requirement when importing a Kustomize project is that you **must provide the entire project directory**, not just the `kustomization.yaml` file. This is because the `kustomization.yaml` file only contains instructions and references to other base manifest files. To correctly render the final configuration, Kanvas needs access to all of these related files.
60+
61+
- **Supported Packaging Formats:** A `.zip` archive containing the complete Kustomize project directory, including the `kustomization.yaml` file and all of its referenced resources.
62+
63+
{{< /tab >}}
64+
65+
{{% tab header="From a Helm Chart" lang="en" %}}
66+
67+
Helm is the standard package manager for Kubernetes. Importing a Helm chart into Kanvas allows you to visualize, manage, and customize complex applications. To ensure a successful import, you must provide the complete packaged chart. Importing individual chart files like `Chart.yaml` or `values.yaml` is not supported.
68+
69+
- **Supported Packaging Formats:**
70+
- **Chart Archive (`.tgz`, `.tar`, or `.tar.gz`):** The standard gzipped tarball format for distributing Helm charts.
71+
- **OCI Artifact:** A modern packaging standard. When exported as a file for upload, this can be imported via an `oci://` URI from a container registry.
72+
73+
{{< /tab >}}
74+
75+
{{% tab header="From Docker Compose" lang="en" %}}
76+
77+
This import method provides a convenient bridge for developers looking to migrate their applications from a local Docker-based environment to Kubernetes. Kanvas will parse your `docker-compose.yaml` file and automatically translate your services into their equivalent Kubernetes resources.
78+
79+
- **Supported Packaging Formats:** A standard `.yaml` or `.yml` file. For best compatibility, ensure your Compose file includes a `version` key (e.g., `version: '3.8'`) at the top level.
80+
81+
{{< /tab >}}
82+
83+
{{% tab header="From a Meshery Design" lang="en" %}}
84+
85+
This is Meshery's native format and provides a lossless way to save and import your designs. It preserves all of an application's component configurations as well as the visual layout, annotations, and metadata from the Kanvas designer.
86+
87+
- **Supported Packaging Formats:**
88+
- **YAML File (`.yml`):** The standard, human-readable file generated when you export a design.
89+
- **OCI Artifact:** Meshery Designs can also be packaged as OCI artifacts, allowing them to be versioned and distributed via container registries.
90+
91+
{{< /tab >}}
92+
93+
{{< /tabpane >}}
94+
95+
## Frequently Asked Questions
96+
97+
### What happens if I drag and drop multiple files onto Kanvas at once?
98+
99+
Each supported file will be imported as a separate, new design. For example, if you drag three different Kubernetes manifest files onto Kanvas, three distinct designs will be created.
100+
101+
### What happens if I select multiple files in the File Upload dialog?
102+
103+
The "File Upload" dialog is designed to process one file or package at a time. If you select multiple files in your operating system's file browser, only the last file in the selection will be processed for import. To import from multiple files, please import them individually.
104+
105+
### After importing a file, can I download my original, unaltered file?
106+
107+
No. When a file is imported, it is converted into a native Meshery Design. The original source file is not stored and cannot be downloaded later. The export function will generate a new file based on the **current** state of your design.
108+
109+
> For more details, see the [Exporting Designs](/kanvas/designer/export-designs/) guide.
110+
111+
### When I import from a Kubernetes manifest, Helm chart, or other type, and choose to merge this file into an existing design, can I download my original file?
112+
113+
When you choose to **merge** a new design into an existing one, Meshery first creates a separate design from your imported file before performing the merge. You can find this newly created design on your [My Designs](https://cloud.layer5.io/catalog/content/my-designs) page.
114+
115+
### Are there any differences, limitations, or special requirements for importing via File Upload, URL, or the GitHub Integration?
116+
117+
Yes. File Upload and URL Import are simple, one-time actions for importing a single design. In contrast, the **GitHub Integration** creates a deep, persistent connection to your GitHub account.
118+
119+
It requires you to authorize the Meshery GitHub App, which then allows you to browse your repositories and select designs directly from the Meshery UI. Most importantly, this integration can enable a GitOps workflow by adding a GitHub Action to your repository that provides visual snapshots of design changes in your pull requests.
120+
121+
### Is there a file size limit for imported designs?
122+
123+
There is no strict limit on the file size itself (e.g., in MB). However, there are limits on the number of **components** a design can contain, which is determined by your current subscription plan. Free accounts are limited to 100 components.
124+
125+
If you attempt to import a design that contains more components than your plan allows, the import will fail with a message stating that the component limit has been exceeded.
126+
127+
> Learn more about [plans](https://layer5.io/pricing).

content/en/kanvas/getting-started/starting-helm.md

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)