diff --git a/.github/workflows/build-and-preview-docs.yml b/.github/workflows/build-and-preview-docs.yml index 3ea042c285d..ddf08ce9223 100644 --- a/.github/workflows/build-and-preview-docs.yml +++ b/.github/workflows/build-and-preview-docs.yml @@ -71,6 +71,7 @@ jobs: - name: Build PR preview if: github.event.action != 'closed' env: + BASE_URL: /pr-preview/pr-${{ github.event.pull_request.number }}/ HUGO_PREVIEW: 'true' run: | npm run build:preview @@ -145,7 +146,7 @@ jobs: with: header: pr-preview message: | - 🚀 Preview deployment: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/pr-preview/pr-${{ github.event.pull_request.number }}/ + 🚀 Preview deployment: https://docs.layer5.io/pr-preview/pr-${{ github.event.pull_request.number }}/ > *Note: Preview may take a moment (GitHub Pages deployment in progress). Please wait and refresh. Track deployment [here](https://github.com/${{ github.repository }}/actions/workflows/pages/pages-build-deployment)* - name: Comment on pruned previews diff --git a/Makefile b/Makefile index 1b3f5fdd2e3..05a333703ef 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,9 @@ site: check-go build: hugo +docs-build-production: + npm run build:production + ## Empty build cache and run docs.layer5.io on your local machine. clean: hugo --cleanDestinationDir @@ -45,4 +48,4 @@ docker: ## Format code using Prettier format: - npm run format \ No newline at end of file + npm run format diff --git a/assets/js/offline-search.js b/assets/js/offline-search.js index 5016dd78052..c6e2e4f8399 100644 --- a/assets/js/offline-search.js +++ b/assets/js/offline-search.js @@ -123,9 +123,10 @@ } else { results.forEach((r) => { const doc = resultDetails.get(r.ref); - const href = - $searchInput.data('offline-search-base-href') + - r.ref.replace(/^\//, ''); + const href = resolveSearchResultHref( + $targetSearchInput.data('offline-search-base-href'), + r.ref + ); const $entry = $('
Get help. Find your answer on the forum. Share your knowledge with others.
+
The source for this chart is located in the layer5io/meshery-cloud repository under install/kubernetes/.
+
{{< alert type="info" title="Understanding Design Metrics" >}}
-To better understand what these Metrics represent, you can learn more about [design metrics](/cloud/concepts/catalog/metrics/).
+To better understand what these Metrics represent, you can learn more about [design metrics]({{< ref "cloud/concepts/catalog/metrics/index.md" >}}).
{{< /alert >}}
### Table View
@@ -51,7 +51,7 @@ Table view provides a dense, list-based format that's ideal for sorting and comp
To customize the information displayed in this view, click the **View Columns icon** and select the attributes you want to see, such as Author, Created At, or Downloads.
-
+
## Filtering and Sorting Catalog Items
@@ -84,7 +84,7 @@ These filters correspond to the metadata authors provide when they publish desig
When you click on any design, you'll see its detail page. This page provides a complete overview of the design's purpose, technical details, and how you can use it.
-
+
### Key Information
@@ -117,7 +117,7 @@ When you clone a design:
The **Download** button allows you to save the design as a `Design (YAML)` file. This is useful for offline backups or sharing the file directly.
-> For more advanced use cases, Meshery also supports exporting designs into other formats. To learn more, see the guide on [Exporting Designs](/kanvas/designer/export-designs/).
+> For more advanced use cases, Meshery also supports exporting designs into other formats. To learn more, see the guide on [Exporting Designs]({{< ref "kanvas/designer/export-designs/index.md" >}}).
{{< alert type="warning" title="Metadata Not Included in Download" >}}
Design downloads include only the core YAML definition, excluding associated catalog metadata such as descriptions, technology, or class.
@@ -127,7 +127,7 @@ Design downloads include only the core YAML definition, excluding associated cat
After you've published a design, you might need to update its metadata or description. Clicking the **Edit** button opens a dialog where you can make your changes.
-
+
You can modify the following fields:
@@ -148,5 +148,5 @@ Some properties of a published design are immutable and cannot be changed:
If you no longer want a design to be published in the catalog, you can use the **Unpublish** button. This action will remove the design from Meshery Catalog but does **not delete** it. The design will remain as a private design in your account.
{{< alert type="info" title="Permissions Required" >}}
-Editing/Unpublish published designs requires specific user roles and permissions. Learn more: [Default Permissions documentation](/cloud/reference/default-permissions/).
+Editing/Unpublish published designs requires specific user roles and permissions. Learn more: [Default Permissions documentation]({{< ref "cloud/reference/default-permissions.md" >}}).
{{< /alert >}}
diff --git a/content/en/cloud/concepts/catalog/images/leaderboard-action.png b/content/en/cloud/concepts/catalog/leaderboard/images/leaderboard-action.png
similarity index 100%
rename from content/en/cloud/concepts/catalog/images/leaderboard-action.png
rename to content/en/cloud/concepts/catalog/leaderboard/images/leaderboard-action.png
diff --git a/content/en/cloud/concepts/catalog/images/leaderboard-page.gif b/content/en/cloud/concepts/catalog/leaderboard/images/leaderboard-page.gif
similarity index 100%
rename from content/en/cloud/concepts/catalog/images/leaderboard-page.gif
rename to content/en/cloud/concepts/catalog/leaderboard/images/leaderboard-page.gif
diff --git a/content/en/cloud/concepts/catalog/images/leaderboard_button.png b/content/en/cloud/concepts/catalog/leaderboard/images/leaderboard_button.png
similarity index 100%
rename from content/en/cloud/concepts/catalog/images/leaderboard_button.png
rename to content/en/cloud/concepts/catalog/leaderboard/images/leaderboard_button.png
diff --git a/content/en/cloud/concepts/catalog/leaderboard.md b/content/en/cloud/concepts/catalog/leaderboard/index.md
similarity index 82%
rename from content/en/cloud/concepts/catalog/leaderboard.md
rename to content/en/cloud/concepts/catalog/leaderboard/index.md
index 1c216d61c4a..a183c0b3968 100644
--- a/content/en/cloud/concepts/catalog/leaderboard.md
+++ b/content/en/cloud/concepts/catalog/leaderboard/index.md
@@ -12,10 +12,10 @@ aliases:
Leaderboard provides a clear and engaging way to view and compare the performance of different Designs, highlighting the most popular and actively used ones within the Cloud.
-
+
{{< alert type="info" title="Understanding Metrics" >}}
-Metrics are quantifiable measures used to track and assess the status, progress, and performance of various activities and user interactions with Designs. Learn more about [Metrics](/cloud/concepts/catalog/metrics/)
+Metrics are quantifiable measures used to track and assess the status, progress, and performance of various activities and user interactions with Designs. Learn more about [Metrics]({{< ref "cloud/concepts/catalog/metrics/index.md" >}})
{{< /alert >}}
### How to Access the Leaderboard
@@ -25,7 +25,7 @@ You can reach the Leaderboard page in two ways:
1. **Global Navigation Bar:** Click the Leaderboard icon in the main navigation bar for quick access.
2. **From the Catalog Page:** While Browse the Catalog, you can click the 'Open Leaderboard' button in the **Top Performers** section
-
+
### Using the Leaderboard Page
@@ -36,4 +36,4 @@ The Leaderboard page offers several ways to explore and interact with:
- **Customize Your View:** Click the **View Columns** icon to show or hide specific metric columns.
- **Take Actions:** Click the **Actions** icon to download, share, or perform other actions.
-
+
diff --git a/content/en/cloud/concepts/catalog/images/cards.png b/content/en/cloud/concepts/catalog/metrics/images/cards.png
similarity index 100%
rename from content/en/cloud/concepts/catalog/images/cards.png
rename to content/en/cloud/concepts/catalog/metrics/images/cards.png
diff --git a/content/en/cloud/concepts/catalog/metrics.md b/content/en/cloud/concepts/catalog/metrics/index.md
similarity index 89%
rename from content/en/cloud/concepts/catalog/metrics.md
rename to content/en/cloud/concepts/catalog/metrics/index.md
index c6cf83d9bd0..405d92afa1a 100644
--- a/content/en/cloud/concepts/catalog/metrics.md
+++ b/content/en/cloud/concepts/catalog/metrics/index.md
@@ -16,16 +16,16 @@ The design catalog can be accessed from the _Layer5 Cloud_ catalog page at [Laye
{{< alert type="info" title="Design Capabilities" >}}
-Designs can be imported, exported, versioned, forked, merged, snapshotted, published, shared, embedded, templatized, and more. Learn more about [Designs](/kanvas/getting-started/)
+Designs can be imported, exported, versioned, forked, merged, snapshotted, published, shared, embedded, templatized, and more. Learn more about [Designs]({{< ref "kanvas/getting-started/_index.md" >}})
{{< /alert >}}
You can view the metrics of a Design in two ways:
1. Below each Design's catalog card, you can see its metrics.
-
+
2. By clicking on the catalog card, a modal will pop up displaying all the information about the Design, including its metrics.
-
+
Here’s a detailed explanation of each metric we track:
diff --git a/content/en/cloud/concepts/identity-and-security/_index.md b/content/en/cloud/concepts/identity-and-security/_index.md
index cf408989bfe..45b1cc480f6 100755
--- a/content/en/cloud/concepts/identity-and-security/_index.md
+++ b/content/en/cloud/concepts/identity-and-security/_index.md
@@ -55,8 +55,8 @@ Access is granted through Role-Based Access Control (RBAC). Roles are assigned a
It is tempting to assume that organization membership alone decides what a user can see and do. It does not. Identity, access, and authorization in Layer5 Cloud are decided by a *combination* of three independent mechanisms that compose on top of the organization:
-* **Authentication — the organization's connected identity provider (IdP).** Each organization is connected to an identity provider that establishes *who* a user is. More than one organization can — and commonly does — share the same identity provider. An organization may instead **bring its own** identity provider (BYOC), in which case it authenticates against its own dedicated provider. See [Identity Services](/cloud/guides/self-hosted/planning/identity-services/).
-* **Generic authorization — keys → keychains → roles.** Permission [keys](/cloud/concepts/identity-and-security/keys/) roll up into [keychains](/cloud/concepts/identity-and-security/keychains/), which are assigned to [roles](/cloud/concepts/identity-and-security/roles/), which are assigned to users. This decides *what operations* a user may perform — and it is evaluated per organization. The same person can hold different roles, and therefore a different effective set of capabilities, in each organization they belong to.
+* **Authentication — the organization's connected identity provider (IdP).** Each organization is connected to an identity provider that establishes *who* a user is. More than one organization can — and commonly does — share the same identity provider. An organization may instead **bring its own** identity provider (BYOC), in which case it authenticates against its own dedicated provider. See [Identity Services]({{< ref "cloud/guides/self-hosted/planning/identity-services/index.md" >}}).
+* **Generic authorization — keys → keychains → roles.** Permission [keys]({{< ref "cloud/concepts/identity-and-security/keys.md" >}}) roll up into [keychains]({{< ref "cloud/concepts/identity-and-security/keychains.md" >}}), which are assigned to [roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}), which are assigned to users. This decides *what operations* a user may perform — and it is evaluated per organization. The same person can hold different roles, and therefore a different effective set of capabilities, in each organization they belong to.
* **Granular access — resource-access mappings.** A specific resource (for example, a single design) can be shared with an individual user. These mappings grant access to that one resource and **deliberately cross organizational boundaries**: a user does not need to be a member of an organization to open a resource in it when a mapping grants that access. This is by design — it is what makes cross-organization collaboration possible.
The practical consequence is that the same human can be a member of several organizations and have a *different* set of capabilities in each, while also being able to reach individual shared resources in organizations they do not belong to at all.
@@ -73,7 +73,7 @@ Because identity and authorization are layered, "where is the boundary?" has two
> **Same identity provider source means the same security boundary.**
-Organizations that share an identity provider — typical for the canonical host and for custom subdomains that use the shared, central provider — sit within the *same* authentication boundary. An organization that brings its own identity provider (BYOC) is a *distinct* authentication boundary, regardless of how its host is named. The DNS shape of the host is not the boundary; the identity provider behind it is. See [Identity Services](/cloud/guides/self-hosted/planning/identity-services/) and [Social sign-in on a custom domain](/cloud/guides/self-hosted/white-labeling/#social-sign-in-on-a-custom-domain) for how this plays out across host types.
+Organizations that share an identity provider — typical for the canonical host and for custom subdomains that use the shared, central provider — sit within the *same* authentication boundary. An organization that brings its own identity provider (BYOC) is a *distinct* authentication boundary, regardless of how its host is named. The DNS shape of the host is not the boundary; the identity provider behind it is. See [Identity Services]({{< ref "cloud/guides/self-hosted/planning/identity-services/index.md" >}}) and [Social sign-in on a custom domain]({{< ref "cloud/guides/self-hosted/white-labeling/_index.md#social-sign-in-on-a-custom-domain" >}}) for how this plays out across host types.
## Key Management and Tokens
@@ -96,4 +96,4 @@ Tokens provide temporary, secure access to the platform.
### Need more detail?
-Check out the [Roles Reference](/cloud/concepts/identity-and-security/roles/) for a complete matrix of permissions for each role.
+Check out the [Roles Reference]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}) for a complete matrix of permissions for each role.
diff --git a/content/en/cloud/concepts/identity-and-security/keychains.md b/content/en/cloud/concepts/identity-and-security/keychains.md
index d5998790286..fbe71e8bdb0 100644
--- a/content/en/cloud/concepts/identity-and-security/keychains.md
+++ b/content/en/cloud/concepts/identity-and-security/keychains.md
@@ -9,7 +9,7 @@ aliases:
---
-In Layer5 Cloud, a collection of permissions is represented as a keychain. One or more keychains can are grouped together and assigned to a [role](/cloud/concepts/identity-and-security/roles). Later, a role can be assigned to a user. This is the general flow of how keychains are assigned to a user.
+In Layer5 Cloud, a collection of permissions is represented as a keychain. One or more keychains can are grouped together and assigned to a [role]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}). Later, a role can be assigned to a user. This is the general flow of how keychains are assigned to a user.
For instance, consider a system shipped default keychain `Team Management`, which is a collection of eight keys: `View All Teams`, `Add User to Team`, `Invite User to Team`, `Remove User from Team`, `Create Team`, `Delete Team`, `Remove User Role from Team`, and `Assign User Role in a Team`. This implies that you can perform all these operations only if your user account possesses a role to which `Team Management` keychain is assigned in a given organization.
@@ -67,9 +67,9 @@ If you don't have permission to view keychains for your selected organization, y
1. Select the organization for which you wish to assign keychains to users. You can do this by selecting the organization from the organization context switcher in the top navigation bar.
2. Navigate to the [Roles](https://cloud.layer5.io/security/roles) page.
-3. Choose from the existing set of roles or create a new role to which you want to assign the keychain. For more information, see [Roles](/cloud/concepts/identity-and-security/roles).
+3. Choose from the existing set of roles or create a new role to which you want to assign the keychain. For more information, see [Roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
4. Navigate to [Users](https://cloud.layer5.io/identity/users) page.
-5. Select the user to whom you want to assign the role with a new set of permissions. Alternatively, you can invite a new user and assign the role with the new set of permissions separately. For more information, see [Users](/cloud/concepts/identity-and-security/users).
+5. Select the user to whom you want to assign the role with a new set of permissions. Alternatively, you can invite a new user and assign the role with the new set of permissions separately. For more information, see [Users]({{< ref "cloud/concepts/identity-and-security/users/_index.md" >}}).
{{< alert title="Note" >}}
diff --git a/content/en/cloud/concepts/identity-and-security/keys.md b/content/en/cloud/concepts/identity-and-security/keys.md
index ea26d890a5d..e50aacf4537 100644
--- a/content/en/cloud/concepts/identity-and-security/keys.md
+++ b/content/en/cloud/concepts/identity-and-security/keys.md
@@ -9,7 +9,7 @@ aliases:
---
-In Layer5 Cloud, permissions are represented as keys, each serving as a unique identifier for a specific permission. One or more keys can be grouped together and assigned to a [keychain](/cloud/concepts/identity-and-security/keychains). Then this keychain can be assigned to a [role](/cloud/concepts/identity-and-security/roles) and that role can be assigned to a user. This is the general flow of how keys are assigned to a user.
+In Layer5 Cloud, permissions are represented as keys, each serving as a unique identifier for a specific permission. One or more keys can be grouped together and assigned to a [keychain]({{< ref "cloud/concepts/identity-and-security/keychains.md" >}}). Then this keychain can be assigned to a [role]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}) and that role can be assigned to a user. This is the general flow of how keys are assigned to a user.
For instance, consider a system shipped default key `Create Organization`, which corresponds to the permission to create an organization in the Cloud. This implies that to create an organization, you need to have `Create Organization` key assigned to a keychain, which, in turn, is assigned to a role that's associated with your user account for a given organization.
@@ -21,7 +21,7 @@ For instance, consider a system shipped default key `Create Organization`, which
{{< /alert >}}
-Because every key is evaluated in the context of an organization, a user's *effective* set of keys can — and will — differ from one organization to another. The same person holds whatever capabilities their role(s) grant them **within each specific organization**, so being able to perform an action in one organization implies nothing about the same action in another. This is why an organization context is itself an authorization boundary. For how this fits with authentication and cross-organization resource sharing, see [Identity and Security → Security Boundaries](/cloud/concepts/identity-and-security/#security-boundaries).
+Because every key is evaluated in the context of an organization, a user's *effective* set of keys can — and will — differ from one organization to another. The same person holds whatever capabilities their role(s) grant them **within each specific organization**, so being able to perform an action in one organization implies nothing about the same action in another. This is why an organization context is itself an authorization boundary. For how this fits with authentication and cross-organization resource sharing, see [Identity and Security → Security Boundaries]({{< ref "cloud/concepts/identity-and-security/_index.md#security-boundaries" >}}).
### Keys Types
@@ -32,13 +32,13 @@ Generally, there are four types of keys:
3. **Update** - Update keys permit you to update resources. For instance, `Update Organization` key allows you to update an organization details.
4. **Delete** - Delete keys permit you to delete resources. For instance, `Delete Organization` key allows you to delete an organization.
-There are also some special types of keys which don't fall into the standard CRUD (CREATE, READ, UPDATE, DELETE) category. For example, the `Approve Catalog Request` key allows you to approve a catalog request to publish a cloud native design to [Cloud Catalog](/cloud/concepts/catalog) or `Connect Github Account to Workspace` key enables you to connect your GitHub Account to your [workspace](/cloud/concepts/spaces/workspaces) in context of any organization.
+There are also some special types of keys which don't fall into the standard CRUD (CREATE, READ, UPDATE, DELETE) category. For example, the `Approve Catalog Request` key allows you to approve a catalog request to publish a cloud native design to [Cloud Catalog]({{< ref "cloud/concepts/catalog/_index.md" >}}) or `Connect Github Account to Workspace` key enables you to connect your GitHub Account to your [workspace]({{< ref "cloud/concepts/spaces/workspaces.md" >}}) in context of any organization.
### Keys Enforcement
The primary purpose of key enforcement is to ensure that you can only perform actions for which you have the necessary permissions within the context of your selected/available organization. This is achieved by disabling or hiding the UI elements associated with actions for which you lack the required permissions. This approach not only provides clarity regarding what actions you are authorized to perform but also prevents you from attempting actions that you do not have authorization to execute.
-For more information on managing permissions within an organization and use of organization context switcher, see [Organizations](/cloud/concepts/identity-and-security/organizations).
+For more information on managing permissions within an organization and use of organization context switcher, see [Organizations]({{< ref "cloud/concepts/identity-and-security/organizations/_index.md" >}}).
Each key is enforced at specific UI elements. For instance, the `Create Organization` key is enforced at the **Create Organization** button in the **Organizations** page. This implies that the button is disabled if you don't have the `Create Organization` assigned to a keychain, which, in turn, is assigned to a role that's associated with your user account for a given organization.
@@ -59,12 +59,12 @@ If you don't have permission to view keys for your selected organization, you wi
1. Select the organization for which you wish to assign keys to users. You can do this by selecting the organization from the organization context switcher in the top navigation bar.
2. Navigate to [Keychains](https://cloud.layer5.io/security/keychains) page.
-3. Choose from the existing set of keychains or create a new keychain to which you want to assign keys. For more information, see [Keychains](/cloud/concepts/identity-and-security/keychains).
+3. Choose from the existing set of keychains or create a new keychain to which you want to assign keys. For more information, see [Keychains]({{< ref "cloud/concepts/identity-and-security/keychains.md" >}}).
4. Choose one more of your desired keys from the list of available keys.
5. Navigate to the [Roles](https://cloud.layer5.io/security/roles) page.
-6. Choose from the existing set of roles or create a new role to which you want to assign the keychain. For more information, see [Roles](/cloud/concepts/identity-and-security/roles).
+6. Choose from the existing set of roles or create a new role to which you want to assign the keychain. For more information, see [Roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
7. Navigate to [Users](https://cloud.layer5.io/identity/users) page.
-8. Select the user to whom you want to assign the role with a new set of permissions. Alternatively, you can invite a new user and assign the role with the new set of permissions separately. For more information, see [Users](/cloud/concepts/identity-and-security/users).
+8. Select the user to whom you want to assign the role with a new set of permissions. Alternatively, you can invite a new user and assign the role with the new set of permissions separately. For more information, see [Users]({{< ref "cloud/concepts/identity-and-security/users/_index.md" >}}).
{{< alert title="Note" >}}
diff --git a/content/en/cloud/concepts/identity-and-security/organizations/_index.md b/content/en/cloud/concepts/identity-and-security/organizations/_index.md
index 8c5b2f28dfa..116757c2273 100755
--- a/content/en/cloud/concepts/identity-and-security/organizations/_index.md
+++ b/content/en/cloud/concepts/identity-and-security/organizations/_index.md
@@ -14,11 +14,11 @@ Organizations are the basic unit of multi-tenancy — and the core security boun
Outside of grouping users together, teams offer control access to workspaces and to workspace resources such as environments and managed and unmanaged connections
-
+
## To change the notification preferences
diff --git a/content/en/cloud/concepts/identity-and-security/users/user-invitations/index.md b/content/en/cloud/concepts/identity-and-security/users/user-invitations/index.md
index eb35d9c2eb2..d78594a0103 100644
--- a/content/en/cloud/concepts/identity-and-security/users/user-invitations/index.md
+++ b/content/en/cloud/concepts/identity-and-security/users/user-invitations/index.md
@@ -102,7 +102,7 @@ From the table you can perform the following management actions on each invitati
The **Quota** column in the invitations table always shows the number of users who have accepted an invitation alongside the configured limit — for example, `2 / 5` if a quota is set, or `2 / Unlimited` if no quota is configured. This lets you monitor uptake at a glance.
-To see the individual users who are now members of the organization, navigate to the [User Management](/cloud/concepts/identity-and-security/users/user-management/) page. Members who joined via invitation appear there alongside their assigned roles.
+To see the individual users who are now members of the organization, navigate to the [User Management]({{< ref "cloud/concepts/identity-and-security/users/user-management/index.md" >}}) page. Members who joined via invitation appear there alongside their assigned roles.
### What happens when a user accepts an invitation
diff --git a/content/en/cloud/concepts/identity-and-security/users/add-user.gif b/content/en/cloud/concepts/identity-and-security/users/user-management/images/add-user.gif
similarity index 100%
rename from content/en/cloud/concepts/identity-and-security/users/add-user.gif
rename to content/en/cloud/concepts/identity-and-security/users/user-management/images/add-user.gif
diff --git a/content/en/cloud/concepts/identity-and-security/users/create-user.gif b/content/en/cloud/concepts/identity-and-security/users/user-management/images/create-user.gif
similarity index 100%
rename from content/en/cloud/concepts/identity-and-security/users/create-user.gif
rename to content/en/cloud/concepts/identity-and-security/users/user-management/images/create-user.gif
diff --git a/content/en/cloud/concepts/identity-and-security/users/org_invite.png b/content/en/cloud/concepts/identity-and-security/users/user-management/images/org_invite.png
similarity index 100%
rename from content/en/cloud/concepts/identity-and-security/users/org_invite.png
rename to content/en/cloud/concepts/identity-and-security/users/user-management/images/org_invite.png
diff --git a/content/en/cloud/concepts/identity-and-security/users/remove_user.png b/content/en/cloud/concepts/identity-and-security/users/user-management/images/remove_user.png
similarity index 100%
rename from content/en/cloud/concepts/identity-and-security/users/remove_user.png
rename to content/en/cloud/concepts/identity-and-security/users/user-management/images/remove_user.png
diff --git a/content/en/cloud/concepts/identity-and-security/users/user-management.md b/content/en/cloud/concepts/identity-and-security/users/user-management/index.md
similarity index 83%
rename from content/en/cloud/concepts/identity-and-security/users/user-management.md
rename to content/en/cloud/concepts/identity-and-security/users/user-management/index.md
index 18ec8c03169..662742525c3 100644
--- a/content/en/cloud/concepts/identity-and-security/users/user-management.md
+++ b/content/en/cloud/concepts/identity-and-security/users/user-management/index.md
@@ -12,23 +12,23 @@ aliases:
This guide outlines methods for creating user accounts, adding users to organizations, inviting new members, and managing user access within Layer5 Cloud to maintain a secure and organized environment.
-
+
## Create User Account
Seamlessly initiate new user accounts, ensuring a smooth onboarding process. Specify user details, such as email, and tailor their access by adding them to one or more organizations. Optionally assign roles, defining their scope within the platform. Complete the process by sending a personalized account setup email, streamlining the user's introduction to Layer5 Cloud.
-
+
{{< alert type="info" title="Permission Required for User Creation" >}}
-Only Provider Admins and Organization Admins can create users. For more information, see [Roles](/cloud/concepts/identity-and-security/roles).
+Only Provider Admins and Organization Admins can create users. For more information, see [Roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
{{< /alert >}}
## Add / Remove Existing User
This section explains how to add existing Layer5 Cloud users to one of your organizations or remove them.
-{{< meshery-design-embed src="/export-designs/embedded-design-page-open-source.js" id="embedded-design-066b0ef3-7956-4c3b-a5cc-1d276ac13ec6" >}}
+{{< meshery-design-embed src="export-designs/embedded-design-page-open-source.js" id="embedded-design-066b0ef3-7956-4c3b-a5cc-1d276ac13ec6" >}}
### Adding a User to an Organization
@@ -40,7 +40,7 @@ If someone already has a Layer5 Cloud account but isn't part of your organizatio
4. Select the user from the list of available users.
5. Assign appropriate roles within the organization.
-
+
### Removing Users from an Organization
@@ -56,7 +56,7 @@ You can remove users from an organization one by one or several at once. This ac
* **Use Bulk Action:** Click the "Delete" button.
* **Confirm:** When prompted, confirm that you want to remove all the selected users from the organization.
-
+
## Invite User via Email
@@ -70,5 +70,5 @@ You can invite new or existing users to join one of your organizations by sendin
* **What the User Does:** The person you invited will click a link in the email to accept. If they're new to Layer5 Cloud, they'll need to create an account first before they can join your organization.
{{< alert type="info" title="Permissions for Role Assignment" >}}
-An Organization Admin can assign organization roles to users, but provider roles can only be assigned by Provider Admins. For more information, see [Roles](/cloud/concepts/identity-and-security/roles).
+An Organization Admin can assign organization roles to users, but provider roles can only be assigned by Provider Admins. For more information, see [Roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
{{< /alert >}}
diff --git a/content/en/cloud/concepts/spaces/environments.md b/content/en/cloud/concepts/spaces/environments.md
index d6480565c48..255d71f2659 100644
--- a/content/en/cloud/concepts/spaces/environments.md
+++ b/content/en/cloud/concepts/spaces/environments.md
@@ -12,7 +12,7 @@ Environments allow you to logically group related [Connections](#connections) an
### Assigning Resources to Environments
-Assign any number of Connections to an environment whether that Connection is managed or unmanaged (see [MeshSync](https://docs.meshery.io/concepts/architecture/meshsync) to learn more about managed and unmanaged Connections). In-turn, assign any number of Environments to one or more [Workspaces](../workspaces). Connections (and any associated Credentials) that are assigned to an Environment become immediately available for use in any associated Workspace.
+Assign any number of Connections to an environment whether that Connection is managed or unmanaged (see [MeshSync](https://docs.meshery.io/concepts/architecture/meshsync) to learn more about managed and unmanaged Connections). In-turn, assign any number of Environments to one or more [Workspaces]({{< ref "cloud/concepts/spaces/workspaces.md" >}}). Connections (and any associated Credentials) that are assigned to an Environment become immediately available for use in any associated Workspace.
### Sharing Resources between Environments
@@ -30,7 +30,7 @@ Environments represent a collection of resources in the form of Connections - bo
- **Logical Grouping** Environments allow you to logically group related connections and their associated credentials. This makes it easier to manage, share, and work with a subset of resources instead of dealing with all your connections individually.
-- **Resource Sharing** Environments can be seamlessly assigned to [Workspaces](../workspaces), another essential concept in Meshery. When you assign an Environment to a Workspace, you enable resource sharing among team members. This collaborative approach simplifies the sharing of connections and resources, making it easier to work together in cloud native environments.
+- **Resource Sharing** Environments can be seamlessly assigned to [Workspaces]({{< ref "cloud/concepts/spaces/workspaces.md" >}}), another essential concept in Meshery. When you assign an Environment to a Workspace, you enable resource sharing among team members. This collaborative approach simplifies the sharing of connections and resources, making it easier to work together in cloud native environments.
## Key Components
@@ -48,7 +48,7 @@ Credentials in an Environment are the keys to securely authenticate and access m
## Example: Orbital Labs Environment Setup
-The following illustrates how Five and Zara set up multi-cloud environments at Orbital Labs, spanning AWS, GCP, and Azure. See [Meet Five and the Cast](/cloud/getting-started/meet-five) for the full seed inventory.
+The following illustrates how Five and Zara set up multi-cloud environments at Orbital Labs, spanning AWS, GCP, and Azure. See [Meet Five and the Cast]({{< ref "cloud/getting-started/meet-five/_index.md" >}}) for the full seed inventory.
### Environment Inventory
diff --git a/content/en/cloud/concepts/spaces/workspaces.md b/content/en/cloud/concepts/spaces/workspaces.md
index 4fd62210d3b..6c6c63de292 100644
--- a/content/en/cloud/concepts/spaces/workspaces.md
+++ b/content/en/cloud/concepts/spaces/workspaces.md
@@ -41,7 +41,7 @@ Like a shared drive (or shared collection of files), Workspaces are your Google
- Same environment can be assigned to multiple workspaces.
{{< alert type="info" title="Assigning Environments to Workspaces" >}}
-Assign any number of Environments to one or more Workspaces. See [Environments](/cloud/concepts/spaces/environments) section for more information.
+Assign any number of Environments to one or more Workspaces. See [Environments]({{< ref "cloud/concepts/spaces/environments.md" >}}) section for more information.
{{< /alert >}}
### Designs
@@ -61,7 +61,7 @@ Designs belong to only one Workspace at any given time. See [Designs](https://do
- Same team can be assigned to multiple workspaces.
{{< alert type="info" title="Team Access Control in Workspaces" >}}
-Teams offer control access to workspaces and to workspace resources such as environments and managed and unmanaged connections. See [Teams](/cloud/concepts/identity-and-security/teams).
+Teams offer control access to workspaces and to workspace resources such as environments and managed and unmanaged connections. See [Teams]({{< ref "cloud/concepts/identity-and-security/teams/_index.md" >}}).
{{< /alert >}}
### Connections
@@ -85,12 +85,12 @@ To make the most of Workspaces, here are some best practices:
Workspaces enhance collaboration within your teams, providing a structured environment for sharing and managing resources. By following best practices and understanding the core components of Workspaces, you can maximize the benefits of this feature.
{{< alert type="info" title="Looking for Practical Workspace Management?" >}}
-For a step-by-step guide on how to create, edit, and manage your workspaces, see the [Managing Workspaces](/cloud/guides/workspaces/managing-workspaces/) documentation.
+For a step-by-step guide on how to create, edit, and manage your workspaces, see the [Managing Workspaces]({{< ref "cloud/guides/workspaces/managing-workspaces/index.md" >}}) documentation.
{{< /alert >}}
## Example: Orbital Labs Workspace Setup
-The following illustrates how Five and Maya set up workspaces at Orbital Labs to segment access across infrastructure and development workflows. See [Meet Five and the Cast](/cloud/getting-started/meet-five) for the full seed inventory.
+The following illustrates how Five and Maya set up workspaces at Orbital Labs to segment access across infrastructure and development workflows. See [Meet Five and the Cast]({{< ref "cloud/getting-started/meet-five/_index.md" >}}) for the full seed inventory.
### Workspace Inventory
diff --git a/content/en/cloud/getting-started/_index.md b/content/en/cloud/getting-started/_index.md
index 6e06c229c69..cec3e131bb7 100644
--- a/content/en/cloud/getting-started/_index.md
+++ b/content/en/cloud/getting-started/_index.md
@@ -41,8 +41,8 @@ To verify your setup, try deploying a sample design:
---
### Need Help?
-If you run into issues during setup, join our [Slack Community](http://slack.layer5.io) or check the [Troubleshooting Guide](/docs/troubleshooting).
+If you run into issues during setup, join our [Slack Community](http://slack.layer5.io)
{{< alert type="info" title="Follow Along with Five" >}}
-Throughout these docs you'll follow Five — a Platform Engineer at Orbital Labs — and his colleagues as they set up organizations, configure workspaces, deploy designs, and navigate the occasional Friday-afternoon incident. [Meet Five and the full cast →]({{< relref "/cloud/getting-started/meet-five/_index.md" >}})
+Throughout these docs you'll follow Five — a Platform Engineer at Orbital Labs — and his colleagues as they set up organizations, configure workspaces, deploy designs, and navigate the occasional Friday-afternoon incident. [Meet Five and the full cast →]({{< relref "cloud/getting-started/meet-five/_index.md" >}})
{{< /alert >}}
diff --git a/content/en/cloud/getting-started/getting-started-with-layer5-account.md b/content/en/cloud/getting-started/getting-started-with-layer5-account.md
index 31140efbb26..a7cea0a3251 100644
--- a/content/en/cloud/getting-started/getting-started-with-layer5-account.md
+++ b/content/en/cloud/getting-started/getting-started-with-layer5-account.md
@@ -17,7 +17,7 @@ The first steps in starting with Layer5 are to create an account, verify your em
To sign up for an account on Layer5 Cloud, navigate to
+
{{< alert type="info" title="Unable to Create More Organizations?" >}}
If the "Add Organization" button is disabled, it means your current role does not permit creating additional Organizations. Only users with roles like Organization Administrator or Provider Administrator can create new Organizations.
@@ -51,7 +51,7 @@ You can update your Organization's name, location, associated teams, branding, a
- Logos: Upload specific logo versions for various display contexts by clicking the respective **"Upload"** buttons.
- Invitations: Access a shareable link to invite users to your Organization.
-
+
## Using the Open Organization Invitation Link
@@ -62,7 +62,7 @@ To invite multiple users to your organization at once, or to allow open sign-ups
* Public Sign-ups: To let people sign up openly, for instance, by posting the link on a community page or another public resource.
* Cross-Organizational Collaboration: To make it easy for collaborators from other organizations or external partners to join.
-
+
{{< alert title="Inviting Users to Specific Teams" type="info" >}}
If you want to invite users directly to a specific team within your organization, please refer to the documentation on [Open Team Invites](https://docs.layer5.io/cloud/concepts/identity-and-security/teams/)
@@ -115,6 +115,6 @@ Avoid deleting an Organization if:
2. A confirmation modal will appear, requiring you to verify this action.
3. Click the "Delete" button to permanently remove the Organization. To abort the deletion, click "Cancel".
-
+
[^1]: Existing users who click this invitation link might encounter a "Page not found" error. This is a temporary bug and is being addressed.
diff --git a/content/en/cloud/guides/organizations/org-management/create_org.png b/content/en/cloud/guides/organizations/org-management/images/create_org.png
similarity index 100%
rename from content/en/cloud/guides/organizations/org-management/create_org.png
rename to content/en/cloud/guides/organizations/org-management/images/create_org.png
diff --git a/content/en/cloud/guides/organizations/org-management/delete_org.png b/content/en/cloud/guides/organizations/org-management/images/delete_org.png
similarity index 100%
rename from content/en/cloud/guides/organizations/org-management/delete_org.png
rename to content/en/cloud/guides/organizations/org-management/images/delete_org.png
diff --git a/content/en/cloud/guides/organizations/org-management/edit_org.png b/content/en/cloud/guides/organizations/org-management/images/edit_org.png
similarity index 100%
rename from content/en/cloud/guides/organizations/org-management/edit_org.png
rename to content/en/cloud/guides/organizations/org-management/images/edit_org.png
diff --git a/content/en/cloud/guides/organizations/org-management/org_open_invite.gif b/content/en/cloud/guides/organizations/org-management/images/org_open_invite.gif
similarity index 100%
rename from content/en/cloud/guides/organizations/org-management/org_open_invite.gif
rename to content/en/cloud/guides/organizations/org-management/images/org_open_invite.gif
diff --git a/content/en/cloud/guides/organizations/org-management/org_overview.png b/content/en/cloud/guides/organizations/org-management/images/org_overview.png
similarity index 100%
rename from content/en/cloud/guides/organizations/org-management/org_overview.png
rename to content/en/cloud/guides/organizations/org-management/images/org_overview.png
diff --git a/content/en/cloud/guides/organizations/org-management/navigating-organizations/index.md b/content/en/cloud/guides/organizations/org-management/navigating-organizations.md
similarity index 98%
rename from content/en/cloud/guides/organizations/org-management/navigating-organizations/index.md
rename to content/en/cloud/guides/organizations/org-management/navigating-organizations.md
index 33c15660b45..0234964d545 100644
--- a/content/en/cloud/guides/organizations/org-management/navigating-organizations/index.md
+++ b/content/en/cloud/guides/organizations/org-management/navigating-organizations.md
@@ -90,4 +90,4 @@ Your roles and permissions are organization-scoped. This means:
- Administrative capabilities in one organization do not automatically grant administrative access in another.
- Team memberships and their associated permissions are specific to each organization.
-For more details about roles and permissions, see the [Roles documentation](/cloud/concepts/identity-and-security/roles/).
+For more details about roles and permissions, see the [Roles documentation]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
diff --git a/content/en/cloud/guides/self-hosted/planning/_index.md b/content/en/cloud/guides/self-hosted/planning/_index.md
index d0045f41e19..3b8643473e5 100644
--- a/content/en/cloud/guides/self-hosted/planning/_index.md
+++ b/content/en/cloud/guides/self-hosted/planning/_index.md
@@ -148,4 +148,4 @@ Layer5 acknowledges the importance of air-gapped deployments and ensures content
Plan for comprehensive observability across your Layer5 Cloud deployment, including metrics, logs, tracing, dashboards, and alerting. Establish SLOs for latency, availability, and saturation; size telemetry storage appropriately; and ensure privacy and access controls for operational data.
-See: [Monitoring](/cloud/guides/self-hosted/planning/monitoring/)
+See: [Monitoring]({{< ref "cloud/guides/self-hosted/planning/monitoring.md" >}})
diff --git a/content/en/cloud/guides/self-hosted/planning/images/self-hosted-deployment.svg b/content/en/cloud/guides/self-hosted/planning/identity-services/images/self-hosted-deployment.svg
similarity index 100%
rename from content/en/cloud/guides/self-hosted/planning/images/self-hosted-deployment.svg
rename to content/en/cloud/guides/self-hosted/planning/identity-services/images/self-hosted-deployment.svg
diff --git a/content/en/cloud/guides/self-hosted/planning/identity-services.md b/content/en/cloud/guides/self-hosted/planning/identity-services/index.md
similarity index 79%
rename from content/en/cloud/guides/self-hosted/planning/identity-services.md
rename to content/en/cloud/guides/self-hosted/planning/identity-services/index.md
index d85ac0ce602..47b8822117f 100644
--- a/content/en/cloud/guides/self-hosted/planning/identity-services.md
+++ b/content/en/cloud/guides/self-hosted/planning/identity-services/index.md
@@ -9,19 +9,19 @@ aliases:
---
-Layer5 Cloud offers a built-in identity provider (IDP), supporting OIDC for normal users and token-based authentication (access, ID, refresh tokens) for API clients with JSON Web Signature (JWS) for token signing. Layer5 Cloud users can sign-up via email and password in addition to social identity providers (Google and GitHub) via OAuth2. See [Getting Started with a Layer5 Account](/cloud/getting-started/getting-started-with-layer5-account/) for details.
+Layer5 Cloud offers a built-in identity provider (IDP), supporting OIDC for normal users and token-based authentication (access, ID, refresh tokens) for API clients with JSON Web Signature (JWS) for token signing. Layer5 Cloud users can sign-up via email and password in addition to social identity providers (Google and GitHub) via OAuth2. See [Getting Started with a Layer5 Account]({{< ref "cloud/getting-started/getting-started-with-layer5-account.md" >}}) for details.
Layer5 Cloud identity services include features such as account recovery, email verification, automatica social sign-in account linking, and multi-factor authentication (coming soon).
{{< alert type="info" >}}
-For more information, see [User Account Linking](/cloud/concepts/identity-and-security/users).
+For more information, see [User Account Linking]({{< ref "cloud/concepts/identity-and-security/users/_index.md" >}}).
{{< /alert >}}
Layer5 Cloud is also working toward being the IDP for Layer5 by supporting OIDC. It will leverage social authentication with Google, GitHub, Twitter, and LinkedIn based on OIDC to authenticate normal users. After authentication, Layer5 Cloud will be able to generate the access token, ID token, and refresh token for normal users. Applications, on the other hand, will use client credential OAUTH2 to get an access token.
The following diagram illustrates the architecture of Layer5 Cloud.
-
+
## Identity providers and custom domains
@@ -29,11 +29,11 @@ By default, every organization signs users in through your deployment's **shared
### Bring Your Own Credentials (BYOC)
-An organization can optionally **bring its own credentials (BYOC)**: its own Google OAuth client and GitHub OAuth App. With BYOC, the upstream consent screen, the registered redirect URL, and the entire OAuth round trip carry the organization's own branding and stay on the organization's own domain. BYOC is enabled per organization by a [Provider Administrator](/cloud/concepts/identity-and-security/roles/#provider-admin-role); an organization owner then registers the OAuth client ID and secret.
+An organization can optionally **bring its own credentials (BYOC)**: its own Google OAuth client and GitHub OAuth App. With BYOC, the upstream consent screen, the registered redirect URL, and the entire OAuth round trip carry the organization's own branding and stay on the organization's own domain. BYOC is enabled per organization by a [Provider Administrator]({{< ref "cloud/concepts/identity-and-security/roles/_index.md#provider-admin-role" >}}); an organization owner then registers the OAuth client ID and secret.
### When BYOC is optional vs. required
-Whether BYOC is *optional* or *required* depends on your organization's [custom domain](/cloud/guides/self-hosted/white-labeling/#social-sign-in-on-a-custom-domain) and how it relates to the **base domain** (the registrable domain, or eTLD+1) of your deployment:
+Whether BYOC is *optional* or *required* depends on your organization's [custom domain]({{< ref "cloud/guides/self-hosted/white-labeling/_index.md#social-sign-in-on-a-custom-domain" >}}) and how it relates to the **base domain** (the registrable domain, or eTLD+1) of your deployment:
| Organization's domain | Default identity providers | BYOC |
| --- | --- | --- |
@@ -59,8 +59,8 @@ Organizations that share an identity provider sit within the same authentication
The canonical host and on-eTLD custom hosts typically draw on the shared, central identity provider, so organizations reached through them are within one shared authentication boundary. An organization with its own (BYOC) identity provider is its own boundary, no matter how its host is named. The DNS shape of the host is not the boundary — the identity provider behind it is.
-This is the authentication (host-class) view of the boundary. It composes with the **authorization** view — where each organization context independently scopes what a user is permitted to do via [keys](/cloud/concepts/identity-and-security/keys/), [keychains](/cloud/concepts/identity-and-security/keychains/), and [roles](/cloud/concepts/identity-and-security/roles/) — and with **granular** resource-access sharing that can cross organizations. For the complete picture of how these layers fit together, see [Identity and Security → Security Boundaries](/cloud/concepts/identity-and-security/#security-boundaries).
+This is the authentication (host-class) view of the boundary. It composes with the **authorization** view — where each organization context independently scopes what a user is permitted to do via [keys]({{< ref "cloud/concepts/identity-and-security/keys.md" >}}), [keychains]({{< ref "cloud/concepts/identity-and-security/keychains.md" >}}), and [roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}) — and with **granular** resource-access sharing that can cross organizations. For the complete picture of how these layers fit together, see [Identity and Security → Security Boundaries]({{< ref "cloud/concepts/identity-and-security/_index.md#security-boundaries" >}}).
{{< alert type="info" >}}
-For the custom-domain setup walkthrough and the on-eTLD vs. off-eTLD distinction, see [White-labeling → Social sign-in on a custom domain](/cloud/guides/self-hosted/white-labeling/#social-sign-in-on-a-custom-domain).
+For the custom-domain setup walkthrough and the on-eTLD vs. off-eTLD distinction, see [White-labeling → Social sign-in on a custom domain]({{< ref "cloud/guides/self-hosted/white-labeling/_index.md#social-sign-in-on-a-custom-domain" >}}).
{{< /alert >}}
diff --git a/content/en/cloud/guides/self-hosted/planning/images/kanvas-collaboration-networking.svg b/content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication/images/kanvas-collaboration-networking.svg
similarity index 100%
rename from content/en/cloud/guides/self-hosted/planning/images/kanvas-collaboration-networking.svg
rename to content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication/images/kanvas-collaboration-networking.svg
diff --git a/content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication.md b/content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication/index.md
similarity index 94%
rename from content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication.md
rename to content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication/index.md
index 7a51d9ca368..442983689e0 100644
--- a/content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication.md
+++ b/content/en/cloud/guides/self-hosted/planning/peer-to-peer-communication/index.md
@@ -20,7 +20,7 @@ Characteristics of the peer-to-peer communication include:
- Very little server load
- Not suited for a large amount of collaborators on a single document (each peer is connected to each other)
-
+
### Default Configuration
diff --git a/content/en/cloud/guides/self-hosted/white-labeling/_index.md b/content/en/cloud/guides/self-hosted/white-labeling/_index.md
index 42e33b126b4..aca35b2e36c 100644
--- a/content/en/cloud/guides/self-hosted/white-labeling/_index.md
+++ b/content/en/cloud/guides/self-hosted/white-labeling/_index.md
@@ -38,7 +38,7 @@ This example includes a custom branding with colors and full-sized logo.
Layer5 Cloud supports customizing themes on a per organization basis. This includes the ability to upload your own logo and define your own color scheme. Your logo will be displayed in the top left corner of the dashboard. Both a full-sized logo and a logo mark are supported.
-As an [Organization Administrator](/cloud/concepts/identity-and-security/roles/organization-roles/), you can add your organization's logo to the global navigation bar, which supports a large, horizontal logo for desktop users and a small, square logo for mobile users. The logo appears at the top of each user's window for all Layer5 Cloud pages within your organization.
+As an [Organization Administrator]({{< ref "cloud/concepts/identity-and-security/roles/organization-roles.md" >}}), you can add your organization's logo to the global navigation bar, which supports a large, horizontal logo for desktop users and a small, square logo for mobile users. The logo appears at the top of each user's window for all Layer5 Cloud pages within your organization.
{{% card header="Preference Example" footer="Example: Selection of theme" %}}
This example shows how to customize through different themes
@@ -141,7 +141,7 @@ To set up a www or custom subdomain, such as `www.example.com` or `meshery.examp
In Layer5 Cloud, navigate to your Provider Organization.
-Under your Organization name, click Edit. If you cannot click the "Edit" action, verify that you are a [Provider Administrator](/cloud/concepts/identity-and-security/roles).
+Under your Organization name, click Edit. If you cannot click the "Edit" action, verify that you are a [Provider Administrator]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).
Under "Custom domain", type your custom domain, then click Save. This will create a server configuration that will require a reboot in order to take effect.
@@ -191,10 +191,10 @@ Whether social sign-in (Google and GitHub) works on a custom domain depends on h
- **Different base domain (fully-custom).** If the custom domain sits on a different base domain — for example you CNAME `meshery.yourcompany.com` to the hosted `cloud.layer5.io`, where `yourcompany.com` and `layer5.io` are different base domains — the secure social sign-in handshake cannot hand off between the two unrelated domains using the shared default identity providers. **Social sign-in on a fully-custom domain therefore requires your organization to bring its own identity provider credentials (BYOC)**: your own Google OAuth client and GitHub OAuth App, registered against your domain.
{{< alert title="Social buttons are hidden until your own identity providers are configured" color="info" >}}
-On a fully-custom domain **without** its own identity providers, the Google and GitHub buttons are **hidden** on the login and sign-up screens — they would otherwise lead to a sign-in that cannot complete. **Email-and-password sign-in and sign-up both remain fully available** — the **Log In / Sign Up** toggle stays visible, so new users can still register and existing users can still sign in. Only the social buttons are hidden. They reappear automatically once your organization configures its own identity providers. See [Identity Services](/cloud/guides/self-hosted/planning/identity-services/) for what BYOC is and when it is required.
+On a fully-custom domain **without** its own identity providers, the Google and GitHub buttons are **hidden** on the login and sign-up screens — they would otherwise lead to a sign-in that cannot complete. **Email-and-password sign-in and sign-up both remain fully available** — the **Log In / Sign Up** toggle stays visible, so new users can still register and existing users can still sign in. Only the social buttons are hidden. They reappear automatically once your organization configures its own identity providers. See [Identity Services]({{< ref "cloud/guides/self-hosted/planning/identity-services/index.md" >}}) for what BYOC is and when it is required.
{{< /alert >}}
-The same base domain / different base domain split above is not only about whether social buttons appear — it also marks an **authentication boundary**. Organizations that share an identity provider (the canonical host and on-eTLD custom subdomains that use the shared, central provider) sit within the same authentication boundary, while an organization that brings its own (BYOC) provider is a distinct authentication boundary: **same identity provider source means the same security boundary**, regardless of how the host is named. See [Identity Services → The identity provider is the security boundary](/cloud/guides/self-hosted/planning/identity-services/#the-identity-provider-is-the-security-boundary) and [Identity and Security → Security Boundaries](/cloud/concepts/identity-and-security/#security-boundaries).
+The same base domain / different base domain split above is not only about whether social buttons appear — it also marks an **authentication boundary**. Organizations that share an identity provider (the canonical host and on-eTLD custom subdomains that use the shared, central provider) sit within the same authentication boundary, while an organization that brings its own (BYOC) provider is a distinct authentication boundary: **same identity provider source means the same security boundary**, regardless of how the host is named. See [Identity Services → The identity provider is the security boundary]({{< ref "cloud/guides/self-hosted/planning/identity-services/index.md#the-identity-provider-is-the-security-boundary" >}}) and [Identity and Security → Security Boundaries]({{< ref "cloud/concepts/identity-and-security/_index.md#security-boundaries" >}}).
## Frequently asked questions about white labeling
diff --git a/content/en/cloud/guides/tutorials/images/embedding-badges-modal.svg b/content/en/cloud/guides/tutorials/assigning-user-badges/images/embedding-badges-modal.svg
similarity index 100%
rename from content/en/cloud/guides/tutorials/images/embedding-badges-modal.svg
rename to content/en/cloud/guides/tutorials/assigning-user-badges/images/embedding-badges-modal.svg
diff --git a/content/en/cloud/guides/tutorials/assigning-user-badges.md b/content/en/cloud/guides/tutorials/assigning-user-badges/index.md
similarity index 97%
rename from content/en/cloud/guides/tutorials/assigning-user-badges.md
rename to content/en/cloud/guides/tutorials/assigning-user-badges/index.md
index f8d642677cc..956cccdbd0d 100755
--- a/content/en/cloud/guides/tutorials/assigning-user-badges.md
+++ b/content/en/cloud/guides/tutorials/assigning-user-badges/index.md
@@ -44,7 +44,7 @@ To share your badges on other social profiles, utilize the provided embedded cod
3. Copy the html or the markdown code by clicking the Embed Code icon
4. Paste the code in your site
-{{< figure src="/cloud/guides/tutorials/images/embedding-badges-modal.svg" alt="Embedding-badges-modal">}}
+{{< figure src="images/embedding-badges-modal.svg" alt="Embedding-badges-modal">}}
### FAQ
- **Is there a limit to the number of badges that I can earn?**
diff --git a/content/en/cloud/guides/tutorials/promoting-a-design.md b/content/en/cloud/guides/tutorials/promoting-a-design.md
index e1cafe370cf..6d919d089b1 100644
--- a/content/en/cloud/guides/tutorials/promoting-a-design.md
+++ b/content/en/cloud/guides/tutorials/promoting-a-design.md
@@ -13,7 +13,7 @@ aliases:
This guide walks through how Five promotes the `prod-deployment-v2` design from the `orbital-staging` workspace to `orbital-production`, with Zara Osei (Infrastructure Team Admin) approving the environment assignment.
-See [Meet Five and the Cast](/cloud/getting-started/meet-five) for the full Orbital Labs narrative reference.
+See [Meet Five and the Cast]({{< ref "cloud/getting-started/meet-five/_index.md" >}}) for the full Orbital Labs narrative reference.
## Overview
@@ -69,7 +69,7 @@ If your organization requires Team Admin approval before production deployments,
3. She clicks **Approve** — the deployment proceeds to `prod-aws`.
{{< alert type="info" title="Why does Zara need to approve?" >}}
-The Infrastructure team's keychain grants `orbital-production` workspace access and `prod-aws` environment deployment rights only to members who have been explicitly granted those keys. Zara, as Team Admin, holds the approval authority for production environment assignments. See [Keychains](/cloud/concepts/identity-and-security/keychains/) for how this is configured.
+The Infrastructure team's keychain grants `orbital-production` workspace access and `prod-aws` environment deployment rights only to members who have been explicitly granted those keys. Zara, as Team Admin, holds the approval authority for production environment assignments. See [Keychains]({{< ref "cloud/concepts/identity-and-security/keychains.md" >}}) for how this is configured.
{{< /alert >}}
### Step 5 — Verify the deployment
@@ -82,6 +82,6 @@ After approval:
## What's Next
-- To give the Development team visibility into the production design (read-only), Five can share the design individually with Rex and Jordan. See [Sharing a Workspace](/cloud/guides/tutorials/sharing-a-workspace/).
+- To give the Development team visibility into the production design (read-only), Five can share the design individually with Rex and Jordan. See [Sharing a Workspace]({{< ref "cloud/guides/tutorials/sharing-a-workspace.md" >}}).
- To set up a parallel deployment to `prod-gcp`, Five repeats Steps 3–5 selecting `prod-gcp` as the environment.
- To roll back, Five transfers `prod-deployment-v2` back to `orbital-staging` and deploys the previous version from there.
diff --git a/content/en/cloud/guides/tutorials/sharing-a-workspace.md b/content/en/cloud/guides/tutorials/sharing-a-workspace.md
index 1eebdc90b91..b0503f90f18 100644
--- a/content/en/cloud/guides/tutorials/sharing-a-workspace.md
+++ b/content/en/cloud/guides/tutorials/sharing-a-workspace.md
@@ -25,7 +25,7 @@ In your browser, go to [Layer5 Cloud](https://cloud.layer5.io).
4. Set the permission level — Five gives Rex **edit** access so he can deploy and modify the design.
5. Click **Send**.
-
+
Rex receives an invitation and can now open `microservices-baseline` in the `orbital-dev` workspace.
@@ -92,5 +92,5 @@ Someone you don't know might be viewing your design because:
- Someone who can edit your design shared it further.
{{< alert type="info" >}}
-See [Meet Five and the Cast](/cloud/getting-started/meet-five) for the full Orbital Labs workspace and character reference.
+See [Meet Five and the Cast]({{< ref "cloud/getting-started/meet-five/_index.md" >}}) for the full Orbital Labs workspace and character reference.
{{< /alert >}}
diff --git a/content/en/cloud/guides/workspaces/images/assign-designs-views.gif b/content/en/cloud/guides/workspaces/managing-workspaces/images/assign-designs-views.gif
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/assign-designs-views.gif
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/assign-designs-views.gif
diff --git a/content/en/cloud/guides/workspaces/images/assign-teams.gif b/content/en/cloud/guides/workspaces/managing-workspaces/images/assign-teams.gif
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/assign-teams.gif
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/assign-teams.gif
diff --git a/content/en/cloud/guides/workspaces/images/assign_environment.png b/content/en/cloud/guides/workspaces/managing-workspaces/images/assign_environment.png
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/assign_environment.png
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/assign_environment.png
diff --git a/content/en/cloud/guides/workspaces/images/create-workspace.gif b/content/en/cloud/guides/workspaces/managing-workspaces/images/create-workspace.gif
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/create-workspace.gif
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/create-workspace.gif
diff --git a/content/en/cloud/guides/workspaces/images/delete-workspace.gif b/content/en/cloud/guides/workspaces/managing-workspaces/images/delete-workspace.gif
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/delete-workspace.gif
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/delete-workspace.gif
diff --git a/content/en/cloud/guides/workspaces/images/edit-workspace.gif b/content/en/cloud/guides/workspaces/managing-workspaces/images/edit-workspace.gif
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/edit-workspace.gif
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/edit-workspace.gif
diff --git a/content/en/cloud/guides/workspaces/images/grid-view.png b/content/en/cloud/guides/workspaces/managing-workspaces/images/grid-view.png
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/grid-view.png
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/grid-view.png
diff --git a/content/en/cloud/guides/workspaces/images/security-audit.png b/content/en/cloud/guides/workspaces/managing-workspaces/images/security-audit.png
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/security-audit.png
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/security-audit.png
diff --git a/content/en/cloud/guides/workspaces/images/table-view.png b/content/en/cloud/guides/workspaces/managing-workspaces/images/table-view.png
similarity index 100%
rename from content/en/cloud/guides/workspaces/images/table-view.png
rename to content/en/cloud/guides/workspaces/managing-workspaces/images/table-view.png
diff --git a/content/en/cloud/guides/workspaces/managing-workspaces.md b/content/en/cloud/guides/workspaces/managing-workspaces/index.md
similarity index 83%
rename from content/en/cloud/guides/workspaces/managing-workspaces.md
rename to content/en/cloud/guides/workspaces/managing-workspaces/index.md
index 1c4f9623194..06a18632f79 100644
--- a/content/en/cloud/guides/workspaces/managing-workspaces.md
+++ b/content/en/cloud/guides/workspaces/managing-workspaces/index.md
@@ -11,10 +11,10 @@ aliases:
This guide walks you through the practical steps of managing your Workspaces. Here, you'll learn how to create, edit, and delete Workspaces, as well as how to manage access by assigning teams and resources like Environments, Designs, and Views to them.
-If you're new to the concept of Workspaces, we recommend starting with the [Workspaces Overview](/cloud/concepts/spaces/workspaces/) to understand what a Workspace is and how it relates to key components like Environments, Designs, and Teams.
+If you're new to the concept of Workspaces, we recommend starting with the [Workspaces Overview]({{< ref "cloud/concepts/spaces/workspaces.md" >}}) to understand what a Workspace is and how it relates to key components like Environments, Designs, and Teams.
{{< alert type="info" title="A Note on Permissions" >}}
-Every action described in this guide is governed by roles and permissions. To see a detailed breakdown of what your assigned role allows you to do, please refer to the [Default Permissions](/cloud/reference/default-permissions/) documentation.
+Every action described in this guide is governed by roles and permissions. To see a detailed breakdown of what your assigned role allows you to do, please refer to the [Default Permissions]({{< ref "cloud/reference/default-permissions.md" >}}) documentation.
{{< /alert >}}
### View Workspaces
@@ -25,14 +25,14 @@ The [Workspaces page](https://cloud.layer5.io/spaces/workspaces) is where you ca
#### Grid View
The grid view offers a card-based layout, perfect for quickly identifying workspaces at a glance. Each card displays essential information, and you can flip it to reveal management options like editing or deleting and get audit history.
-
+
#### Table View
The table view provides a dense, list-based format that is ideal for managing a large number of workspaces. This view allows for sorting and gives you more control over the specific details you see.
To customize the information displayed, click the **View Columns** icon and select the attributes you want to see, such as Owner ID or Created Date.
-
+
{{< alert type="info" title="Consistent Actions Across Views" >}}
Both the grid and table views provide the same set of management capabilities. You can choose the layout that best fits your needs without losing any functionality.
@@ -53,7 +53,7 @@ To create a workspace:
3. Enter a descriptive **Name** and an optional **Description**, then click **Save**.
4. Your new workspace will now appear on the page.
-
+
### Edit a Workspace
@@ -62,7 +62,7 @@ You can modify a workspace's name and description at any time after it has been
- **From the Grid View:** Flip the workspace card, then click the **pencil icon**.
- **From the Table View:** Click the **pencil icon** in the row of the workspace you wish to modify.
-
+
### Delete a Workspace
@@ -78,7 +78,7 @@ You can delete a single workspace or multiple workspaces at once.
1. Select the checkboxes on the cards of the workspaces you want to delete.
2. Click the **Delete** button that appears at the top of the page.
-
+
{{< alert type="info" title="Deletion Restrictions" >}}
Meshery requires at least one workspace to exist within an organization at all times, so you cannot delete the last remaining workspace.
@@ -100,7 +100,7 @@ When a Workspace is deleted:
### Assign Teams to a Workspace
Assigning teams is the way you grant users access to a workspace. Once a team is assigned, its members can access all of the Designs, Views, and Environments linked to that workspace.
-
+
You can open the team management Dialog from either the grid or table view.
@@ -118,14 +118,14 @@ Inside the assignment Dialog, you will see two lists: **Available Teams** on the
3. Click **Save** to apply your changes.
{{< alert type="info" title="Team and Workspace Relationships" >}}
-You can assign multiple teams to a single workspace, and a single team can also be a member of multiple workspaces. This provides flexible access control across your projects. For more restrictions, see [Workspaces documentation](/cloud/concepts/spaces/workspaces/).
+You can assign multiple teams to a single workspace, and a single team can also be a member of multiple workspaces. This provides flexible access control across your projects. For more restrictions, see [Workspaces documentation]({{< ref "cloud/concepts/spaces/workspaces.md" >}}).
{{< /alert >}}
### Link Environments to a Workspace
-When you link an [Environment](/cloud/concepts/spaces/environments/) to a Workspace, you make all the connections (like those to Kubernetes clusters or databases) grouped within that Environment available. This means any team members with access to that Workspace can then deploy their applications or configurations to the resources.
+When you link an [Environment]({{< ref "cloud/concepts/spaces/environments.md" >}}) to a Workspace, you make all the connections (like those to Kubernetes clusters or databases) grouped within that Environment available. This means any team members with access to that Workspace can then deploy their applications or configurations to the resources.
The process of linking environments is almost the same as assigning teams.
-
+
{{< alert type="info" title="Many-to-Many Relationship" >}}
An Environment can be linked to multiple Workspaces, and a Workspace can have multiple Environments. This allows you to share common environments across different projects.
@@ -144,17 +144,17 @@ When you create a new Design, it is automatically added to your current Workspac
3. Use the arrow buttons to move the selected Design(s) or View(s) to the target workspace.
4. Click **Save**.
-
+
{{< alert type="info" title="Exclusive Ownership" >}}
-A Design or View can only exist in one Workspace at a time. Moving it to a new Workspace will automatically remove it from its original location. For more detailed information, see [Workspaces documentation](/cloud/concepts/spaces/workspaces/).
+A Design or View can only exist in one Workspace at a time. Moving it to a new Workspace will automatically remove it from its original location. For more detailed information, see [Workspaces documentation]({{< ref "cloud/concepts/spaces/workspaces.md" >}}).
{{< /alert >}}
### View Recent Activity
Meshery keeps a detailed audit log for each workspace, allowing you to track all significant events. This is useful for maintaining security and troubleshooting issues.
-
+
The activity log captures a variety of events, including:
- The creation or deletion of the workspace.
@@ -184,7 +184,7 @@ Think of a private workspace as your personal Google "My Drive." You can use it
**3. Template Library**
Create a separate, access-controlled Workspace to serve as your organization's internal, private template library. This is for storing non-public, organization-specific, or sensitive patterns.
-> This practice complements the [public Catalog](/cloud/concepts/catalog/exploring-the-catalog/), which is used for sharing generic, non-sensitive designs with the community. A dedicated Organization Catalog feature is also planned for the future.
+> This practice complements the [public Catalog]({{< ref "cloud/concepts/catalog/exploring-the-catalog/index.md" >}}), which is used for sharing generic, non-sensitive designs with the community. A dedicated Organization Catalog feature is also planned for the future.
**4. The Team Space**
@@ -202,7 +202,7 @@ For teams requiring strict separation between environments, this pattern is esse
- **Access**: Access to the Design is determined by the Teams assigned to its new Workspace.
- **Cross-Organization Transfers**: You can move a Design you own into a Workspace in a different Organization, provided you have the necessary permissions in the target Organization.
-> A key restriction is that a user, even with a [Workspace Admin](/cloud/concepts/identity-and-security/roles/workspace-roles/) role, cannot manage a Design they **do not own**. This action requires [Organization Admin](/cloud/concepts/identity-and-security/roles/organization-roles/) or Organization Owner permissions.
+> A key restriction is that a user, even with a [Workspace Admin]({{< ref "cloud/concepts/identity-and-security/roles/workspace-roles.md" >}}) role, cannot manage a Design they **do not own**. This action requires [Organization Admin]({{< ref "cloud/concepts/identity-and-security/roles/organization-roles.md" >}}) or Organization Owner permissions.
#### 2. What can other users of a Workspace do with my design? Can they delete my design?
@@ -220,7 +220,7 @@ Currently, it is **not possible** to receive direct notifications or see a colla
No. A user with whom you share a private Design cannot re-share it with others.
-> [learn more about sharing designs](/kanvas/designer/sharing/).
+> [learn more about sharing designs]({{< ref "kanvas/designer/sharing/index.md" >}}).
#### 6. Does a workspace have space limitations or file count limitations?
@@ -228,7 +228,7 @@ Currently, there are no specific space or file count limitations for Workspaces.
#### 7. How can I make my design publicly available, but read-only to other users?
-To make a Design available to everyone but in a read-only state, you should **[Publish](/kanvas/designer/publishing-designs/)** it. A **Published** design can be viewed and cloned by any user, but the original cannot be edited by others.
+To make a Design available to everyone but in a read-only state, you should **[Publish]({{< ref "kanvas/designer/publishing-designs/index.md" >}})** it. A **Published** design can be viewed and cloned by any user, but the original cannot be edited by others.
#### 8. How do I share a private design with a specific team for collaboration?
diff --git a/content/en/cloud/concepts/catalog/images/Slide51.svg b/content/en/cloud/images/Slide51.svg
similarity index 100%
rename from content/en/cloud/concepts/catalog/images/Slide51.svg
rename to content/en/cloud/images/Slide51.svg
diff --git a/static/images/five/1.svg b/content/en/cloud/images/five/1.svg
similarity index 100%
rename from static/images/five/1.svg
rename to content/en/cloud/images/five/1.svg
diff --git a/static/images/five/2.svg b/content/en/cloud/images/five/2.svg
similarity index 100%
rename from static/images/five/2.svg
rename to content/en/cloud/images/five/2.svg
diff --git a/static/images/five/layer5-five-mascot-means-business.svg b/content/en/cloud/images/five/layer5-five-mascot-means-business.svg
similarity index 100%
rename from static/images/five/layer5-five-mascot-means-business.svg
rename to content/en/cloud/images/five/layer5-five-mascot-means-business.svg
diff --git a/content/en/cloud/reference/api-reference/_index.md b/content/en/cloud/reference/api-reference/_index.md
index 9810e1ca31c..bce8373ca5c 100644
--- a/content/en/cloud/reference/api-reference/_index.md
+++ b/content/en/cloud/reference/api-reference/_index.md
@@ -10,7 +10,7 @@ To create integrations, retrieve data, and automate your cloud native infrastruc
## Authenticating with the API
-In order to authenticate to Layer5 Cloud's REST API, you need to generate and use a [security token](/cloud/concepts/identity-and-security/tokens/). Visit your [user account's security tokens](https://cloud.layer5.io/security/tokens) and generate a long-lived token. Security tokens remain valid until you revoke them, and you can issue as many as you need.
+In order to authenticate to Layer5 Cloud's REST API, you need to generate and use a [security token]({{< ref "cloud/concepts/identity-and-security/tokens.md" >}}). Visit your [user account's security tokens](https://cloud.layer5.io/security/tokens) and generate a long-lived token. Security tokens remain valid until you revoke them, and you can issue as many as you need.
To authenticate with the API, pass the token as a bearer token in the `Authorization` header. For example, in cURL:
@@ -153,7 +153,7 @@ The following example demonstrate how to retrieve information from the Academy R
### Get the total number of registered learners in Academy
-Use the Layer5 Cloud API to retrieve the *total* number of registered learners. Pass your [Security Token](https://docs.layer5.io/cloud/concepts/identity-and-security/tokens/) as a Bearer token in the `Authorization` header (as shown in [Authenticating with API](/cloud/reference/api-reference/#authenticating-with-the-api)). The response JSON includes an array of user objects.
+Use the Layer5 Cloud API to retrieve the *total* number of registered learners. Pass your [Security Token](https://docs.layer5.io/cloud/concepts/identity-and-security/tokens/) as a Bearer token in the `Authorization` header (as shown in [Authenticating with API]({{< ref "cloud/reference/api-reference/_index.md#authenticating-with-the-api" >}})). The response JSON includes an array of user objects.
{{< tabpane >}}
diff --git a/content/en/cloud/reference/default-permissions.md b/content/en/cloud/reference/default-permissions.md
index 2ca694b6101..26463c9edba 100644
--- a/content/en/cloud/reference/default-permissions.md
+++ b/content/en/cloud/reference/default-permissions.md
@@ -6,7 +6,7 @@ categories: [Identity]
tags: [perms]
---
-{{< alert title="Customizable Permissions" type="info" >}}Default permissions can be easily customized by simply creating your own [keychains](/cloud/concepts/identity-and-security/keychains/#keychains-management) and [roles](/cloud/concepts/identity-and-security/roles).{{< /alert >}}
+{{< alert title="Customizable Permissions" type="info" >}}Default permissions can be easily customized by simply creating your own [keychains]({{< ref "cloud/concepts/identity-and-security/keychains.md#keychains-management" >}}) and [roles]({{< ref "cloud/concepts/identity-and-security/roles/_index.md" >}}).{{< /alert >}}
**Legend:**
diff --git a/content/en/contributing/contributing-to-docs.md b/content/en/contributing/contributing-to-docs.md
index a6358edaaa7..83ea22ca220 100644
--- a/content/en/contributing/contributing-to-docs.md
+++ b/content/en/contributing/contributing-to-docs.md
@@ -167,13 +167,36 @@ You can override the default styles and add new ones:
### Image styling
-By default, Markdown images are written like this:
+### Link and asset paths
+
+Use Hugo `ref` when linking from one documentation page to another documentation page:
+
+```markdown
+[About]({{* ref "about.md" */>}})
+```
+
+For images and other assets that live next to `index.md` or `_index.md`, or inside that page bundle, use a normal relative path:
```markdown
-
+
```
-These are rendered with:
+If you need HTML for custom sizing, keep the same relative path:
+
+```html
+
+```
+
+For global shared assets that physically live under `static/`, use the `static` shortcode:
+
+```markdown
+
+```
+
+Do not use the `static` shortcode for assets under `content/`.
+
+By default, Markdown images are rendered with:
+
* `max-width: 70%` of the viewport
* `max-height: 80vh` of the viewport height
* centered block layout
@@ -181,14 +204,14 @@ These are rendered with:
This default styling works well for most landscape (horizontal) images. However, if an image is very tall, narrow, or otherwise looks awkward, you can override the default by embedding raw HTML and specifying a custom size:
```html
-
+
```
If you want your image to include a caption for explanation or accessibility, you can use the `
+
Drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components.
Use context-aware relationships configure your infrastructure intuitively.
{{< /card >}} - + }}"> {{< card header="Operator" >}} - Operator mode is for operating your Kubernetes clusters and cloud native infrastructure. + }}">Operator mode is for operating your Kubernetes clusters and cloud native infrastructure.Bring all your Kubernetes clusters under a common management. Deploy designs, apply patterns, manage and operate your deployments and services in real-time.
Interactively connect to pods and containers to debug and troubleshoot.
{{< /card >}} diff --git a/content/en/kanvas/advanced/autopan/index.md b/content/en/kanvas/advanced/autopan.md similarity index 88% rename from content/en/kanvas/advanced/autopan/index.md rename to content/en/kanvas/advanced/autopan.md index f84da1b84e0..e16d92d4b5f 100644 --- a/content/en/kanvas/advanced/autopan/index.md +++ b/content/en/kanvas/advanced/autopan.md @@ -97,19 +97,19 @@ Autopan is not a static decision taken when you load a design. Kanvas re-evaluat This is driven by the shared `useReactiveFeatureGate` hook in Kanvas's source, which any future feature gated by (user preference × render mode × graph size) can reuse. {{< alert type="note" title="When autopan is disabled automatically" >}} -If you are working on a large design and autopan seems to not kick in at the edge, check the [Render Modes](/kanvas/advanced/render-modes/) page. Your graph has probably exceeded the threshold for the current render mode and Kanvas has disabled autopan for performance. You can either switch to a lower-fidelity render mode — which raises the threshold — or pan manually for the remaining operations. +If you are working on a large design and autopan seems to not kick in at the edge, check the [Render Modes]({{< ref "kanvas/advanced/render-modes.md" >}}) page. Your graph has probably exceeded the threshold for the current render mode and Kanvas has disabled autopan for performance. You can either switch to a lower-fidelity render mode — which raises the threshold — or pan manually for the remaining operations. {{< /alert >}} ### Tuning autopan for your design If autopan is disabled on a design where you would like it to be active, you have three levers: -1. **Switch to a lower-fidelity render mode.** Wireframe and View-Only raise the threshold to 1,000 nodes. See the [Render Modes](/kanvas/advanced/render-modes/) page for what each mode costs and what it hides. -2. **Reduce the live listener count.** The [Layers Panel](/kanvas/advanced/performance/) lets you disable layers of visual information (badges, tags, feasibility indicators) that contribute to the pan fan-out. Turning off a layer effectively moves the threshold upward because there are fewer listeners to amplify each pan. +1. **Switch to a lower-fidelity render mode.** Wireframe and View-Only raise the threshold to 1,000 nodes. See the [Render Modes]({{< ref "kanvas/advanced/render-modes.md" >}}) page for what each mode costs and what it hides. +2. **Reduce the live listener count.** The [Layers Panel]({{< ref "kanvas/advanced/performance/index.md" >}}) lets you disable layers of visual information (badges, tags, feasibility indicators) that contribute to the pan fan-out. Turning off a layer effectively moves the threshold upward because there are fewer listeners to amplify each pan. 3. **Break the design into smaller designs.** If you are consistently bumping the threshold in your preferred render mode, the design might be past the scale Kanvas targets for interactive editing. Splitting it into referenced sub-designs keeps each one within the sweet spot. ### Related pages -- [Render Modes](/kanvas/advanced/render-modes/) — what each mode renders, what it hides, and how Adaptive Render Mode flips between them automatically. -- [Performance Limits and Tuning](/kanvas/advanced/performance/) — overall Kanvas performance envelope and the Layers Panel. -- [Design Render Quality](/kanvas/advanced/url-parameters/) — overriding the render mode via URL parameters (useful for snapshots and embeds). +- [Render Modes]({{< ref "kanvas/advanced/render-modes.md" >}}) — what each mode renders, what it hides, and how Adaptive Render Mode flips between them automatically. +- [Performance Limits and Tuning]({{< ref "kanvas/advanced/performance/index.md" >}}) — overall Kanvas performance envelope and the Layers Panel. +- [Design Render Quality]({{< ref "kanvas/advanced/url-parameters/index.md" >}}) — overriding the render mode via URL parameters (useful for snapshots and embeds). diff --git a/content/en/kanvas/advanced/performance/layers-panel.png b/content/en/kanvas/advanced/performance/images/layers-panel.png similarity index 100% rename from content/en/kanvas/advanced/performance/layers-panel.png rename to content/en/kanvas/advanced/performance/images/layers-panel.png diff --git a/content/en/kanvas/advanced/performance/index.md b/content/en/kanvas/advanced/performance/index.md index 2a0e3ef1fda..a868d395935 100644 --- a/content/en/kanvas/advanced/performance/index.md +++ b/content/en/kanvas/advanced/performance/index.md @@ -43,11 +43,11 @@ Kanvas supports up to 1,000 relationships per design. Exceeding this limit can i #### Maximum Number of TagSet Relationships - + Tags are indexed and searchable. However, the performance of design operations may degrade as the number of tags increases. To ensure an optimal user experience, we recommend using tags judiciously and limiting the number of tags used in a design. -Upon loading a design exceeds that exceeds 20 tags within a single design, Kanvas will automatically disable grouping by tags. You can manually enable grouping by tags by clicking the "Group Components" button in the Designer dock. For more information, see [Working with Tags](/kanvas/designer/tagsets/). +Upon loading a design exceeds that exceeds 20 tags within a single design, Kanvas will automatically disable grouping by tags. You can manually enable grouping by tags by clicking the "Group Components" button in the Designer dock. For more information, see [Working with Tags]({{< ref "kanvas/designer/tagsets/index.md" >}}). @@ -102,14 +102,14 @@ To copy and paste: ### Use the Right-Click Menu 1. Right-click on the canvas and select Select All Components. -  +  2. Right-click again and choose Paste or press CMD+V (Mac) or CTRL+V (Windows) to paste the copied components. -  +  ### Use the Save As Option 1. Go to the design toolbar and select Save As. -  +  2. A copy of all components will be saved in your new design file, which you can then paste into another design. diff --git a/content/en/kanvas/designer/tagsets/group-components.png b/content/en/kanvas/images/group-components.png similarity index 100% rename from content/en/kanvas/designer/tagsets/group-components.png rename to content/en/kanvas/images/group-components.png diff --git a/content/en/kanvas/operator/_index.md b/content/en/kanvas/operator/_index.md index 4bb2a4ecba3..4d5c38730d0 100644 --- a/content/en/kanvas/operator/_index.md +++ b/content/en/kanvas/operator/_index.md @@ -24,5 +24,5 @@ Using the search bar, you can search for specific resources and select them. The Operator supports connecting to Kubernetes pods via the following methods. -- [Log Streaming](/kanvas/operator/log-streaming): Learn how to live-tail logs from your Kubernetes pods and containers directly within the visual topology. -- [Interactive Terminal](/kanvas/operator/interactive-terminal): Learn how to establish an interactive shell session with your containers. +- [Log Streaming]({{< ref "kanvas/operator/log-streaming/index.md" >}}): Learn how to live-tail logs from your Kubernetes pods and containers directly within the visual topology. +- [Interactive Terminal]({{< ref "kanvas/operator/interactive-terminal/index.md" >}}): Learn how to establish an interactive shell session with your containers. diff --git a/static/images/interactive-terminal-sequence-diagram.svg b/content/en/kanvas/operator/interactive-terminal/images/interactive-terminal-sequence-diagram.svg similarity index 100% rename from static/images/interactive-terminal-sequence-diagram.svg rename to content/en/kanvas/operator/interactive-terminal/images/interactive-terminal-sequence-diagram.svg diff --git a/content/en/kanvas/operator/interactive-terminal.md b/content/en/kanvas/operator/interactive-terminal/index.md similarity index 93% rename from content/en/kanvas/operator/interactive-terminal.md rename to content/en/kanvas/operator/interactive-terminal/index.md index 6a7a14e1e7c..1bad4d4f9c2 100644 --- a/content/en/kanvas/operator/interactive-terminal.md +++ b/content/en/kanvas/operator/interactive-terminal/index.md @@ -71,11 +71,11 @@ While using the interactive terminal, understand that you can only open one sess - + *** ### See Also -* **[Log Streaming](/kanvas/operator/log-streaming):** Learn how to live-tail logs for real-time application monitoring. - +* **[Log Streaming]({{< ref "kanvas/operator/log-streaming/index.md" >}}):** Learn how to live-tail logs for real-time application monitoring. + diff --git a/static/images/log-stream-sequence-diagram.svg b/content/en/kanvas/operator/log-streaming/images/log-stream-sequence-diagram.svg similarity index 100% rename from static/images/log-stream-sequence-diagram.svg rename to content/en/kanvas/operator/log-streaming/images/log-stream-sequence-diagram.svg diff --git a/content/en/kanvas/operator/log-streaming.md b/content/en/kanvas/operator/log-streaming/index.md similarity index 92% rename from content/en/kanvas/operator/log-streaming.md rename to content/en/kanvas/operator/log-streaming/index.md index 24df41294d7..a085d8e6470 100644 --- a/content/en/kanvas/operator/log-streaming.md +++ b/content/en/kanvas/operator/log-streaming/index.md @@ -60,11 +60,11 @@ Once the stream is active, the Log Streamer panel will display the output. The Log Streamer utilizes a robust architecture where the **Meshery Operator** signals the **MeshSync** controller to start the log flow. Data is streamed using **NATS** to the Meshery Broker, preprocessed, and then delivered to your browser via a **WebSocket** connection using GraphQL subscriptions. This ensures minimal latency and high performance, even when streaming data from multiple active containers. - + *** ### See Also -* **[Interactive Terminal](/kanvas/terminal):** Learn how to establish an interactive shell session with your containers. -* **[Performance Management](/kanvas/performance):** Run ad-hoc performance tests alongside your log monitoring. +* **[Interactive Terminal]({{< ref "kanvas/operator/interactive-terminal/index.md" >}}):** Learn how to establish an interactive shell session with your containers. +* **[Performance Management]({{< ref "kanvas/advanced/performance/index.md" >}}):** Run ad-hoc performance tests alongside your log monitoring. diff --git a/content/en/kanvas/operator/images/operator-container-details.png b/content/en/kanvas/operator/resource-details/images/operator-container-details.png similarity index 100% rename from content/en/kanvas/operator/images/operator-container-details.png rename to content/en/kanvas/operator/resource-details/images/operator-container-details.png diff --git a/content/en/kanvas/operator/images/operator-node-details.png b/content/en/kanvas/operator/resource-details/images/operator-node-details.png similarity index 100% rename from content/en/kanvas/operator/images/operator-node-details.png rename to content/en/kanvas/operator/resource-details/images/operator-node-details.png diff --git a/content/en/kanvas/operator/resource-details.md b/content/en/kanvas/operator/resource-details/index.md similarity index 86% rename from content/en/kanvas/operator/resource-details.md rename to content/en/kanvas/operator/resource-details/index.md index cc8d9c8ed03..d86f065be57 100644 --- a/content/en/kanvas/operator/resource-details.md +++ b/content/en/kanvas/operator/resource-details/index.md @@ -14,13 +14,13 @@ Depending on the type of resource selected, the Instance Details tab will displa
+
Example: Kubernetes Node details.
{{< /card >}} {{< card header="Container Details" >}} -
+
Example: Kubernetes Pod Container details.
{{< /card >}} diff --git a/content/en/kanvas/operator/images/ActionsIcon.png b/content/en/kanvas/operator/views/images/ActionsIcon.png similarity index 100% rename from content/en/kanvas/operator/images/ActionsIcon.png rename to content/en/kanvas/operator/views/images/ActionsIcon.png diff --git a/content/en/kanvas/operator/images/DeleteView.png b/content/en/kanvas/operator/views/images/DeleteView.png similarity index 100% rename from content/en/kanvas/operator/images/DeleteView.png rename to content/en/kanvas/operator/views/images/DeleteView.png diff --git a/content/en/kanvas/operator/images/ExportView2.png b/content/en/kanvas/operator/views/images/ExportView2.png similarity index 100% rename from content/en/kanvas/operator/images/ExportView2.png rename to content/en/kanvas/operator/views/images/ExportView2.png diff --git a/content/en/kanvas/operator/images/SaveView.png b/content/en/kanvas/operator/views/images/SaveView.png similarity index 100% rename from content/en/kanvas/operator/images/SaveView.png rename to content/en/kanvas/operator/views/images/SaveView.png diff --git a/content/en/kanvas/operator/images/ShareModal.PNG b/content/en/kanvas/operator/views/images/ShareModal.PNG similarity index 100% rename from content/en/kanvas/operator/images/ShareModal.PNG rename to content/en/kanvas/operator/views/images/ShareModal.PNG diff --git a/content/en/kanvas/operator/images/ShareView.png b/content/en/kanvas/operator/views/images/ShareView.png similarity index 100% rename from content/en/kanvas/operator/images/ShareView.png rename to content/en/kanvas/operator/views/images/ShareView.png diff --git a/content/en/kanvas/operator/images/ViewInfo.png b/content/en/kanvas/operator/views/images/ViewInfo.png similarity index 100% rename from content/en/kanvas/operator/images/ViewInfo.png rename to content/en/kanvas/operator/views/images/ViewInfo.png diff --git a/content/en/kanvas/operator/images/Views.svg b/content/en/kanvas/operator/views/images/Views.svg similarity index 100% rename from content/en/kanvas/operator/images/Views.svg rename to content/en/kanvas/operator/views/images/Views.svg diff --git a/content/en/kanvas/operator/images/Visibility.png b/content/en/kanvas/operator/views/images/Visibility.png similarity index 100% rename from content/en/kanvas/operator/images/Visibility.png rename to content/en/kanvas/operator/views/images/Visibility.png diff --git a/content/en/kanvas/operator/views.md b/content/en/kanvas/operator/views/index.md similarity index 82% rename from content/en/kanvas/operator/views.md rename to content/en/kanvas/operator/views/index.md index 58ac73d3157..d990630753b 100644 --- a/content/en/kanvas/operator/views.md +++ b/content/en/kanvas/operator/views/index.md @@ -8,7 +8,7 @@ categories: [Operator] The Views tab is located on the right side of the screen just beside the Details tab in Kanvas Operator. It allows you to see all containers the present in your Kubernetes cluster. Think of views for Operator mode as you would design for the Designer mode. - + ## Managing Views @@ -18,13 +18,13 @@ Here's what you can do with views in Operator: To save a view, simply give your view a title in the Name field at the top of the canvas. Any changes made to the view will be automatically saved. Alternatively, click on the "Save as" button at the top of the canvas. A modal will pop up for you to give your view a name and save it. - + ### 2. Set view visibility You can choose to set your views to be either public or private. When views are set as public, everyone within your workspace can access these views. Views set as private are visible only to the person who created the view, ie the owner. - + ### 3. Share a view @@ -33,15 +33,15 @@ Here's what you can do with views in Operator: 1. Click on the actions icon to the right of the view you want to share. -  +  2. You'll find a list of actions. Share is the third icon from the left -  +  3. Click on the share icon to open up the share modal. -  +  4. Enter the name of the user you want to share a view with and set the view access. @@ -49,16 +49,16 @@ Here's what you can do with views in Operator: You can delete a view when you no longer have use of it. You can only delete a view that you created. Views created by others and made public cannot be deleted, except by the owner of that view. - + ### 5. Export a view To export a view, click on the export icon in the actions list. The view will be downloaded to your device in json format. -  +  ### 6. View info View info shows you the owner of the design, the view visibility (whether it's set to public or private), the date the design was created and the date it was last modified. If you're the owner of the view, you'll also see an input field where you can add notes about the design. -  +  diff --git a/content/en/kanvas/reference/releases/v0.7.119-4.md b/content/en/kanvas/reference/releases/v0.7.119-4.md index a8d565143aa..c9e13236b58 100644 --- a/content/en/kanvas/reference/releases/v0.7.119-4.md +++ b/content/en/kanvas/reference/releases/v0.7.119-4.md @@ -6,12 +6,12 @@ prerelease: false toc_hide: true --- -## What's New -## 🔤 General -* Manually built and packaged graphql plugin. - -## 👨🏽💻 Contributors - -Thank you to our contributors for making this release possible: -@leecalcote +## What's New +## 🔤 General +* Manually built and packaged graphql plugin. + +## 👨🏽💻 Contributors + +Thank you to our contributors for making this release possible: +@leecalcote diff --git a/content/en/kanvas/reference/releases/v0.7.122-1.md b/content/en/kanvas/reference/releases/v0.7.122-1.md index aafc535a761..7b48d5c8885 100644 --- a/content/en/kanvas/reference/releases/v0.7.122-1.md +++ b/content/en/kanvas/reference/releases/v0.7.122-1.md @@ -6,31 +6,31 @@ prerelease: false toc_hide: true --- -## What's New -## 🔤 General -## 🖌️ Designer - -- [Modals] Enhance one of kanvas.new modals for self-hosting @leecalcote (#3003) -- fix height and width of the quick tip modal @amitamrutiya (#2997) -- update new empty kanvas svgs @amitamrutiya (#2996) -- build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.1 in /meshmap @dependabot (#2993) -- build(deps-dev): bump css-loader from 6.8.1 to 7.1.2 in /meshmap @dependabot (#2994) - -## 🐛 Bug Fixes - -- fix height and width of the quick tip modal @amitamrutiya (#2997) - -## 🧰 Maintenance - -- [CI] Add Checkout Repo @leecalcote (#3002) -- [CI] Enhance to use full base+extension versioning (Attempt #2) @leecalcote (#3001) -- [CI] Enhance to use full base+extension versioning @leecalcote (#3000) -- add extension version logic to release drafter w/singoff @Jougan-0 (#2999) -- uncomment go mod code w/singoff @Jougan-0 (#2998) -- build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.1 in /meshmap @dependabot (#2993) -- build(deps-dev): bump css-loader from 6.8.1 to 7.1.2 in /meshmap @dependabot (#2994) - -## 👨🏽💻 Contributors - -Thank you to our contributors for making this release possible: +## What's New +## 🔤 General +## 🖌️ Designer + +- [Modals] Enhance one of kanvas.new modals for self-hosting @leecalcote (#3003) +- fix height and width of the quick tip modal @amitamrutiya (#2997) +- update new empty kanvas svgs @amitamrutiya (#2996) +- build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.1 in /meshmap @dependabot (#2993) +- build(deps-dev): bump css-loader from 6.8.1 to 7.1.2 in /meshmap @dependabot (#2994) + +## 🐛 Bug Fixes + +- fix height and width of the quick tip modal @amitamrutiya (#2997) + +## 🧰 Maintenance + +- [CI] Add Checkout Repo @leecalcote (#3002) +- [CI] Enhance to use full base+extension versioning (Attempt #2) @leecalcote (#3001) +- [CI] Enhance to use full base+extension versioning @leecalcote (#3000) +- add extension version logic to release drafter w/singoff @Jougan-0 (#2999) +- uncomment go mod code w/singoff @Jougan-0 (#2998) +- build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.1 in /meshmap @dependabot (#2993) +- build(deps-dev): bump css-loader from 6.8.1 to 7.1.2 in /meshmap @dependabot (#2994) + +## 👨🏽💻 Contributors + +Thank you to our contributors for making this release possible: @Jougan-0, @aabidsofi19, @amitamrutiya, @dependabot, @dependabot[bot], @l5io and @leecalcote diff --git a/content/en/kanvas/getting-started/images/deploy-designs/clone-design.gif b/content/en/kanvas/tasks/designs/cloning-a-design/images/deploy-designs/clone-design.gif similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/clone-design.gif rename to content/en/kanvas/tasks/designs/cloning-a-design/images/deploy-designs/clone-design.gif diff --git a/content/en/kanvas/getting-started/images/deploy-designs/my-designs.gif b/content/en/kanvas/tasks/designs/cloning-a-design/images/deploy-designs/my-designs.gif similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/my-designs.gif rename to content/en/kanvas/tasks/designs/cloning-a-design/images/deploy-designs/my-designs.gif diff --git a/content/en/kanvas/tasks/designs/cloning-a-design.md b/content/en/kanvas/tasks/designs/cloning-a-design/index.md similarity index 98% rename from content/en/kanvas/tasks/designs/cloning-a-design.md rename to content/en/kanvas/tasks/designs/cloning-a-design/index.md index 4aab53cd9dc..bed62dfcc17 100644 --- a/content/en/kanvas/tasks/designs/cloning-a-design.md +++ b/content/en/kanvas/tasks/designs/cloning-a-design/index.md @@ -16,14 +16,14 @@ aliases: 3. Select a design from the list that appears in the panel. 4. A modal will pop up requesting you to clone (create a copy of) the design you’ve selected. - + This will create a copy of the catalog item to a new design, now owned by you. 1. Click “clone” and a copy of the design will appear on your Kanvas canvas. You can then configure the design to suit your purposes. 2. To access your newly cloned design, click the three-shapes icon, then click through: Workspaces → My Workspaces → Explore Workspaces → My Designs. - + You are now free to deploy it as it is or modify it further. diff --git a/content/en/kanvas/getting-started/images/deploy-designs/empty-ls.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/empty-ls.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/empty-ls.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/empty-ls.png diff --git a/content/en/kanvas/getting-started/images/deploy-designs/error-code.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/error-code.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/error-code.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/error-code.png diff --git a/content/en/kanvas/getting-started/images/deploy-designs/missing-ns.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/missing-ns.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/missing-ns.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/missing-ns.png diff --git a/content/en/kanvas/getting-started/images/deploy-designs/notification-center.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/notification-center.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/notification-center.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/notification-center.png diff --git a/content/en/kanvas/getting-started/images/deploy-designs/notification.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/notification.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/notification.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/notification.png diff --git a/content/en/kanvas/getting-started/images/deploy-designs/success-deploy.png b/content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/success-deploy.png similarity index 100% rename from content/en/kanvas/getting-started/images/deploy-designs/success-deploy.png rename to content/en/kanvas/tasks/designs/deploying-designs/images/deploy-designs/success-deploy.png diff --git a/content/en/kanvas/tasks/designs/deploying-designs.md b/content/en/kanvas/tasks/designs/deploying-designs/index.md similarity index 96% rename from content/en/kanvas/tasks/designs/deploying-designs.md rename to content/en/kanvas/tasks/designs/deploying-designs/index.md index cfffd3b5220..344e7a23db4 100644 --- a/content/en/kanvas/tasks/designs/deploying-designs.md +++ b/content/en/kanvas/tasks/designs/deploying-designs/index.md @@ -19,17 +19,17 @@ aliases: 5. Click **Finish** - + ### Deployment Errors 1. **Missing Namespace**: This error occurs when you attempt to create a Kubernetes resource without specifying a namespace. Kubernetes requires that all resources have an associated namespace. - + 2. **Empty Label Selector**: This error indicates an empty label selector. - + ### Troubleshooting Errors @@ -41,7 +41,7 @@ For the comprehensive list of error codes refer to [Error Code Reference](https: If you encounter persistent issues consider consulting the [Meshery Community forum](https://discuss.layer5.io/c/meshery/5) - + ### Using the Notification Center for Troubleshooting @@ -53,9 +53,9 @@ The Notification Center in Meshery helps manage events during the deployment pro 1. Offers links to detailed documentation and guides for resolving common problems. 1. Keeps a log of past notifications, allowing you to track and review previous errors and their resolutions. - + - + By actively monitoring the Notification Center, you can promptly address issues as they arise, ensuring a smoother deployment process. Learn more about [Managing Events with the Notification Center](https://docs.meshery.io/guides/events-management). diff --git a/content/en/kanvas/getting-started/images/dry-running-designs/invalid-field-value-1.png b/content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/invalid-field-value-1.png similarity index 100% rename from content/en/kanvas/getting-started/images/dry-running-designs/invalid-field-value-1.png rename to content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/invalid-field-value-1.png diff --git a/content/en/kanvas/getting-started/images/dry-running-designs/invalid-field-value-2.png b/content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/invalid-field-value-2.png similarity index 100% rename from content/en/kanvas/getting-started/images/dry-running-designs/invalid-field-value-2.png rename to content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/invalid-field-value-2.png diff --git a/content/en/kanvas/getting-started/images/dry-running-designs/missing-field.png b/content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/missing-field.png similarity index 100% rename from content/en/kanvas/getting-started/images/dry-running-designs/missing-field.png rename to content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/missing-field.png diff --git a/content/en/kanvas/getting-started/images/dry-running-designs/missing-resource.png b/content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/missing-resource.png similarity index 100% rename from content/en/kanvas/getting-started/images/dry-running-designs/missing-resource.png rename to content/en/kanvas/tasks/designs/dry-running-a-design/images/dry-running-designs/missing-resource.png diff --git a/content/en/kanvas/tasks/designs/dry-running-a-design.md b/content/en/kanvas/tasks/designs/dry-running-a-design/index.md similarity index 80% rename from content/en/kanvas/tasks/designs/dry-running-a-design.md rename to content/en/kanvas/tasks/designs/dry-running-a-design/index.md index c4b8631332c..1122f672404 100644 --- a/content/en/kanvas/tasks/designs/dry-running-a-design.md +++ b/content/en/kanvas/tasks/designs/dry-running-a-design/index.md @@ -29,15 +29,15 @@ A dry run in Meshery simulates the deployment of your design in the selected tar This error indicates that a field has an invalid value. For example, when configuring a Kubernetes Service, the fields `spec.ports[0].port` and `spec.ports[0].targetPort` may have invalid values of 0. These values must be between 1 and 65535, inclusive. - + - + ### Missing Required Field This error occurs when a required field in the configuration has not been provided. Ensure all required fields are properly configured before running the dry run. - + ### Missing Dependencies @@ -45,4 +45,4 @@ This error occurs because a Kubernetes Custom Resource Definition (CRD) should h To resolve this, ensure that all necessary dependencies, such as CRDs, are deployed before deploying the components that rely on them. - + diff --git a/content/en/kanvas/getting-started/images/undeploying-designs/undeploy.png b/content/en/kanvas/tasks/designs/undeploying-designs/images/undeploying-designs/undeploy.png similarity index 100% rename from content/en/kanvas/getting-started/images/undeploying-designs/undeploy.png rename to content/en/kanvas/tasks/designs/undeploying-designs/images/undeploying-designs/undeploy.png diff --git a/content/en/kanvas/tasks/designs/undeploying-designs.md b/content/en/kanvas/tasks/designs/undeploying-designs/index.md similarity index 99% rename from content/en/kanvas/tasks/designs/undeploying-designs.md rename to content/en/kanvas/tasks/designs/undeploying-designs/index.md index 9802faadefe..3b7be6ca135 100644 --- a/content/en/kanvas/tasks/designs/undeploying-designs.md +++ b/content/en/kanvas/tasks/designs/undeploying-designs/index.md @@ -15,7 +15,7 @@ To undeploy the resources 2. Click on the **Undeploy** icon. - +