diff --git a/content/en/kanvas/concepts/helm-kanvas-snapshot.md b/content/en/kanvas/concepts/helm-kanvas-snapshot.md
new file mode 100644
index 0000000000..32814e308d
--- /dev/null
+++ b/content/en/kanvas/concepts/helm-kanvas-snapshot.md
@@ -0,0 +1,90 @@
+---
+title: Helm Kanvas Snapshot
+description: Helm CLI plugin to visually render a snapshot of your Helm charts.
+display_title: false
+categories: [kanvas]
+---
+
+# Helm Kanvas Snapshot
+
+## Extension Overview
+
+The **Kanvas Snapshot Helm Plugin** allows users to generate a visual snapshot of their Helm charts directly from the command line. It simplifies the process of creating Meshery Snapshots, providing a visual representation of packaged Helm charts. This plugin integrates with Meshery Cloud and GitHub Actions to automate the workflow of snapshot creation, which is especially useful for Helm users who need to quickly visualize their chart configurations.
+
+Helm charts can be complex, especially when custom configurations are applied via `values.yaml` files. This Meshery extension bridges the gap between Helm chart configurations and their visual representation by converting Helm charts into **Kanvas Snapshots**. These snapshots can be received either via email or as a URL displayed directly in the terminal.
+
+### Features
+
+1. **Snapshot Generation:** Create visual snapshots of Helm charts, complete with associated resources.
+2. **Synchronous/Asynchronous Delivery:** Choose between receiving snapshots via email or directly in the terminal.
+3. **Seamless Integration:** Leverages Meshery Cloud and GitHub Actions to handle snapshot rendering.
+4. **Support for Packaged Charts:** Works with both packaged `.tar.gz` charts and unpackaged Helm charts.
+
+## Installation and Use
+
+To install the Meshery Snapshot Helm Plugin, use the following steps:
+
+### Prerequisites
+
+- `helm` must be installed on your system.
+- (Optional) A free [Meshery Cloud](https://cloud.meshery.io) user account.
+
+**Plugin Installation**
+
+1. Run the following command to install the Helm Kanvas Snapshot plugin:
+
+
++ +3. Verify the installation by running: + + +++helm plugin install https://github.com/meshery/helm-kanvas-snapshot+
++ + You should see the Kanvas Snapshot listed as `helm-kanvas-snapshot`. + +4. Set up the required environment variables (see the [Environment Variables](#environment-variables) section). + +### Usage + +Once the plugin is installed, you can generate a snapshot using either a packaged or unpackaged Helm chart. + + +++helm plugin list+
++ +- **`-f`**, **`--file`**: (required) path or URL to the Helm chart (required). +- **`--name`**: (optional) name for the snapshot. If not provided, a name will be auto-generated based on the chart name. +- **`-e`**, **`--email`**: (optional) email address to notify when snapshot is ready. If not provided, a link to the snapshot will be displayed in the terminal. + +**Example** + +To generate a snapshot for a Helm chart located at `https://meshery.io/charts/v0.8.0-meshery.tar.gz`, you can use: + +++helm snapshot --f <chart-URI> [--name <snapshot-name>] [--email <email>]+
++ +++helm snapshot -f https://meshery.io/charts/v0.8.0-meshery.tar.gz --name meshery-chart+
++ +This command outputs the following credentials: + +* `appId`: Application ID (Client ID) +* `displayName`: Service Principal Name +* `name`: Azure Service Principal URL +* `password`: Client Secret +* `tenant`: Tenant ID + +To export them, manually enter: + ++az ad sp create-for-rbac -n azure-service-operator --role contributor --scopes /subscriptions/<AZURE_SUBSCRIPTION_ID> ++
+ + +### 2. Connect Meshery to Your Cluster + +If you haven’t already connected your cluster to Meshery, run: + ++export AZURE_CLIENT_ID=<appId> +export AZURE_CLIENT_SECRET=<password> +export AZURE_TENANT_ID=<tenant> +export AZURE_SUBSCRIPTION_ID=<subscriptionId> ++
+ + +Then open the Meshery UI (default: [`http://localhost:9081`](http://localhost:9081)) and ensure your cluster appears under **Lifecycle → Connections**. + + + +### 3. Install Azure Service Operator (Operator Only) + +#### Prerequisite + +Create a cert-manager that is necessary for deployment of Azure Service operator + ++mesheryctl system start ++
+ + +#### 3.1 Deploy ASO Operator + +Apply the official ASO operator manifest (Meshery will manage CRDs): + ++kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.14.1/cert-manager.yaml ++
+ +#### 3.2 Create Azure Credentials Secret + +Azure Service Operator requires a Kubernetes secret with your Azure identity: + ++kubectl apply -f https://github.com/Azure/azure-service-operator/releases/download/v2.13.0/azureserviceoperator_v2.13.0.yaml ++
+ + +### 4. Deploy Azure Service Operator using Kanvas + +1. In the Meshery UI, navigate to **Kanvas**. +2. Click **Catalog**, filter by **Azure**, and select the **Azure Operator** design. +3. Click **Clone** to add it to your canvas. +4. Update the secret **aso-controller-settings** in the design template. The details are also mentioned in the catalog +5. Click **Actions → Deploy**. + + + +### 5. Start deployment of Azure resources using Kanvas + +* Go to Kanvas and start by picking up Azure components and putting it to design area. +* Click **Actions → Deploy**. +* **Azure Portal**: Confirm the new Storage Account appears in your specified resource group. + + + +### 6. Conclusion + +You have successfully: + +* Created an Azure Service Principal for Meshery +* Connected your Kubernetes cluster to Meshery +* Installed the Azure Service Operator (Meshery managed CRDs) +* Created a Kubernetes secret for Azure credentials +* Designed and deployed Azure resources using Meshery’s Kanvas + +--- + +If you want to learn more about Azure Service Operator, visit the [official ASO documentation](https://azure.github.io/azure-service-operator/). diff --git a/content/en/kanvas/tutorials/azure/deploy-azure-storage-account-with-meshery.md b/content/en/kanvas/tutorials/azure/deploy-azure-storage-account-with-meshery.md new file mode 100644 index 0000000000..6277f8dbef --- /dev/null +++ b/content/en/kanvas/tutorials/azure/deploy-azure-storage-account-with-meshery.md @@ -0,0 +1,141 @@ +--- +title: Deploy Azure Storage Account with Meshery +description: Learn how to deploy and manage Azure Storage account through Kubernetes with Meshery, utilizing ASO operator to enhance cloud resource management +model: azure +params: + kind: StorageAccount +categories: [tutorials] +aliases: +- /kanvas/tutorials/deploy-azure-storage-account-with-meshery +--- + +### Introduction + +Meshery enables you to manage Azure Storage Accounts declaratively through Kubernetes by leveraging the Azure Service Operator (ASO). In this tutorial, you'll install the ASO operator (without CRD pattern configurations, which Meshery will manage), create a Service Principal and a Kubernetes secret with your Azure credentials, and use Meshery's UI to visually design and deploy a Storage Account resource to your Azure subscription. + + +### Prerequisites + +Before you begin, ensure you have the following: + +1. **Meshery Installed** + A self-hosted Meshery instance running on your Kubernetes cluster (in-cluster or out-of-cluster). +2. **Kubernetes Cluster** + A running Kubernetes cluster (v1.16+) with `kubectl` configured. +3. **Azure Subscription** + An active Azure subscription where Storage Accounts will be provisioned. +4. **Azure CLI** + Installed and authenticated (`az login`) in your local shell. +5. **cert-manager** + Installed in your Kubernetes cluster (required by Azure Service Operator). + + +### Table of Contents + +1. [Create Azure Service Principal](#1-create-azure-service-principal) +2. [Connect Meshery to Your Cluster](#2-connect-meshery-to-your-cluster) +3. [Install Azure Service Operator (Operator Only)](#3-install-azure-service-operator-operator-only) + + * 3.1 [Deploy ASO Operator](#31-deploy-aso-operator) + * 3.2 [Create Azure Credentials Secret](#32-create-azure-credentials-secret) +4. [Design and Deploy an Azure Storage Account](#4-design-and-deploy-an-azure-storage-account) +5. [Verify Deployment](#5-verify-deployment) +6. [Conclusion](#6-conclusion) + +### 1. Create Azure Service Principal + +If you do not already have a Service Principal (SP) for Meshery, create one using the Azure CLI: + ++kubectl create secret generic azure-credentials --namespace azureserviceoperator-system --from-literal=AZURE_CLIENT_ID=$AZURE_CLIENT_ID --from-literal=AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET --from-literal=AZURE_TENANT_ID=$AZURE_TENANT_ID --from-literal=AZURE_SUBSCRIPTION_ID=$AZURE_SUBSCRIPTION_ID ++
+ +This command outputs the following credentials: + +* `appId`: Application ID (Client ID) +* `displayName`: Service Principal Name +* `name`: Azure Service Principal URL +* `password`: Client Secret +* `tenant`: Tenant ID + +To export them, manually enter: + ++az ad sp create-for-rbac -n azure-service-operator --role contributor --scopes /subscriptions/<AZURE_SUBSCRIPTION_ID> ++
+ + +### 2. Connect Meshery to Your Cluster + +If you haven’t already connected your cluster to Meshery, run: + ++export AZURE_CLIENT_ID=<appId> +export AZURE_CLIENT_SECRET=<password> +export AZURE_TENANT_ID=<tenant> +export AZURE_SUBSCRIPTION_ID=<subscriptionId> ++
+ + +Then open the Meshery UI (default: [`http://localhost:9081`](http://localhost:9081)) and ensure your cluster appears under **Lifecycle → Connections**. + + + +### 3. Install Azure Service Operator (Operator Only) + +#### 3.1 Deploy ASO Operator + +Apply the official ASO operator manifest (Meshery will manage CRDs): + ++mesheryctl system start ++
+ +#### 3.2 Create Azure Credentials Secret + +Azure Service Operator requires a Kubernetes secret with your Azure identity: + ++kubectl apply -f https://github.com/Azure/azure-service-operator/releases/download/v2.13.0/azureserviceoperator_v2.13.0.yaml ++
+ + +### 4. Design and Deploy an Azure Storage Account + +1. In the Meshery UI, navigate to **Kanvas**. +2. Click **Catalog**, filter by **Azure**, and select the **StorageAccount** design. +3. Click **Clone** to add it to your canvas. +4. Configure the following properties: + + * `resourceGroupName` + * `location` (e.g., `eastus`) + * `accountName` + * `accessTier` (`Hot` or `Cool`) +5. Click **Actions → Deploy**. + + + +### 5. Verify Deployment + +* **Azure Portal**: Confirm the new Storage Account appears in your specified resource group. + + + +### 6. Conclusion + +You have successfully: + +* Created an Azure Service Principal for Meshery +* Connected your Kubernetes cluster to Meshery +* Installed the Azure Service Operator (Meshery managed CRDs) +* Created a Kubernetes secret for Azure credentials +* Designed and deployed an Azure Storage Account using Meshery’s Kanvas + +--- + +If you want to learn more about Azure Service Operator, visit the [official ASO documentation](https://azure.github.io/azure-service-operator/). diff --git a/content/en/kanvas/tutorials/images/app-deploy.png b/content/en/kanvas/tutorials/images/app-deploy.png new file mode 100644 index 0000000000..25c515e1b2 Binary files /dev/null and b/content/en/kanvas/tutorials/images/app-deploy.png differ diff --git a/content/en/kanvas/tutorials/images/aws-controllers/aws-connection.png b/content/en/kanvas/tutorials/images/aws-controllers/aws-connection.png new file mode 100644 index 0000000000..5168f5ea98 Binary files /dev/null and b/content/en/kanvas/tutorials/images/aws-controllers/aws-connection.png differ diff --git a/content/en/kanvas/tutorials/images/aws-controllers/configure-secret.png b/content/en/kanvas/tutorials/images/aws-controllers/configure-secret.png new file mode 100644 index 0000000000..c7ee3c95a6 Binary files /dev/null and b/content/en/kanvas/tutorials/images/aws-controllers/configure-secret.png differ diff --git a/content/en/kanvas/tutorials/images/aws-controllers/configure.png b/content/en/kanvas/tutorials/images/aws-controllers/configure.png new file mode 100644 index 0000000000..7532dc3671 Binary files /dev/null and b/content/en/kanvas/tutorials/images/aws-controllers/configure.png differ diff --git a/content/en/kanvas/tutorials/images/aws-controllers/controller-chart.png b/content/en/kanvas/tutorials/images/aws-controllers/controller-chart.png new file mode 100644 index 0000000000..77a8b097ee Binary files /dev/null and b/content/en/kanvas/tutorials/images/aws-controllers/controller-chart.png differ diff --git a/content/en/kanvas/tutorials/images/aws-controllers/controller-operator-mode.png b/content/en/kanvas/tutorials/images/aws-controllers/controller-operator-mode.png new file mode 100644 index 0000000000..dcfe6d51ae Binary files /dev/null and b/content/en/kanvas/tutorials/images/aws-controllers/controller-operator-mode.png differ diff --git a/content/en/kanvas/tutorials/images/click-deploy.png b/content/en/kanvas/tutorials/images/click-deploy.png new file mode 100644 index 0000000000..c54f043bb0 Binary files /dev/null and b/content/en/kanvas/tutorials/images/click-deploy.png differ diff --git a/content/en/kanvas/tutorials/images/click-import.png b/content/en/kanvas/tutorials/images/click-import.png new file mode 100644 index 0000000000..121f200f8a Binary files /dev/null and b/content/en/kanvas/tutorials/images/click-import.png differ diff --git a/content/en/kanvas/tutorials/images/configuration-menu-design-import.png b/content/en/kanvas/tutorials/images/configuration-menu-design-import.png new file mode 100644 index 0000000000..f4b1562797 Binary files /dev/null and b/content/en/kanvas/tutorials/images/configuration-menu-design-import.png differ diff --git a/content/en/kanvas/tutorials/images/delete.png b/content/en/kanvas/tutorials/images/delete.png new file mode 100644 index 0000000000..78d4218785 Binary files /dev/null and b/content/en/kanvas/tutorials/images/delete.png differ diff --git a/content/en/kanvas/tutorials/images/deploy-app.png b/content/en/kanvas/tutorials/images/deploy-app.png new file mode 100644 index 0000000000..627b524a3b Binary files /dev/null and b/content/en/kanvas/tutorials/images/deploy-app.png differ diff --git a/content/en/kanvas/tutorials/images/deploy-success.png b/content/en/kanvas/tutorials/images/deploy-success.png new file mode 100644 index 0000000000..83d0b4da04 Binary files /dev/null and b/content/en/kanvas/tutorials/images/deploy-success.png differ diff --git a/content/en/kanvas/tutorials/images/deploy.png b/content/en/kanvas/tutorials/images/deploy.png new file mode 100644 index 0000000000..19864a7b40 Binary files /dev/null and b/content/en/kanvas/tutorials/images/deploy.png differ diff --git a/content/en/kanvas/tutorials/images/design-auto-save.png b/content/en/kanvas/tutorials/images/design-auto-save.png new file mode 100644 index 0000000000..dad2532cc0 Binary files /dev/null and b/content/en/kanvas/tutorials/images/design-auto-save.png differ diff --git a/content/en/kanvas/tutorials/images/design-cronjob.png b/content/en/kanvas/tutorials/images/design-cronjob.png new file mode 100644 index 0000000000..418f0380ed Binary files /dev/null and b/content/en/kanvas/tutorials/images/design-cronjob.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/add-custom-html.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/add-custom-html.png new file mode 100644 index 0000000000..6fc987f8cb Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/add-custom-html.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/copy-url.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/copy-url.png new file mode 100644 index 0000000000..4465fb6e12 Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/copy-url.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embedded-design-preview.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embedded-design-preview.png new file mode 100644 index 0000000000..57ea904316 Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embedded-design-preview.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign-HTML.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign-HTML.png new file mode 100644 index 0000000000..93ec48f6e2 Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign-HTML.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign.png new file mode 100644 index 0000000000..2d23daaaa5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/embeddesign.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/expand-designs-kanvas.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/expand-designs-kanvas.png new file mode 100644 index 0000000000..63053f5ebd Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/expand-designs-kanvas.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/meshery-design-custom-html.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/meshery-design-custom-html.png new file mode 100644 index 0000000000..674b422899 Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/meshery-design-custom-html.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/quickaction-exportdesign.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/quickaction-exportdesign.png new file mode 100644 index 0000000000..367f33590d Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/quickaction-exportdesign.png differ diff --git a/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/upload-js-wordpress.png b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/upload-js-wordpress.png new file mode 100644 index 0000000000..f45d3126df Binary files /dev/null and b/content/en/kanvas/tutorials/images/embedding-design-in-wordpress/upload-js-wordpress.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-13.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-13.png new file mode 100644 index 0000000000..7533f4d2b7 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-13.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-18.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-18.png new file mode 100644 index 0000000000..970827c5cb Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-18.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-42.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-42.png new file mode 100644 index 0000000000..597fc3d425 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-42.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-56.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-56.png new file mode 100644 index 0000000000..63a93bf106 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-56.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-57.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-57.png new file mode 100644 index 0000000000..33b9dcabdb Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_00-57.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-00.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-00.png new file mode 100644 index 0000000000..ece33875f0 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-00.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-19.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-19.png new file mode 100644 index 0000000000..3510a2b591 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-19.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-25.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-25.png new file mode 100644 index 0000000000..057b94230c Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-25.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-27.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-27.png new file mode 100644 index 0000000000..7ae0a8fa60 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-27.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-29.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-29.png new file mode 100644 index 0000000000..a62396b541 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_01-29.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-03.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-03.png new file mode 100644 index 0000000000..abed6e82df Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-03.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-19.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-19.png new file mode 100644 index 0000000000..f4655fe70c Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-19.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-25.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-25.png new file mode 100644 index 0000000000..9a08d2721d Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-25.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-26.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-26.png new file mode 100644 index 0000000000..2aa43e649e Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-16_18-26.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-17_20-01.png b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-17_20-01.png new file mode 100644 index 0000000000..f0ba2b0c9c Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-configmaps-secrets/2024-04-17_20-01.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_16-59.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_16-59.png new file mode 100644 index 0000000000..89a5440a48 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_16-59.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-03.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-03.png new file mode 100644 index 0000000000..9268845d3b Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-03.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-16.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-16.png new file mode 100644 index 0000000000..18131bc659 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-16.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-20.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-20.png new file mode 100644 index 0000000000..48b8130be8 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-20.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-51.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-51.png new file mode 100644 index 0000000000..04df81f35e Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-51.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-55.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-55.png new file mode 100644 index 0000000000..5e0f4f8d29 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_17-55.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-00.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-00.png new file mode 100644 index 0000000000..957cb46e79 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-00.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-03.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-03.png new file mode 100644 index 0000000000..a2584e54a2 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-03.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-08.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-08.png new file mode 100644 index 0000000000..58fbe46e6a Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-08.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-09.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-09.png new file mode 100644 index 0000000000..d2b64cacc7 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-09.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-21.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-21.png new file mode 100644 index 0000000000..f8aec9c047 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-21.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-23.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-23.png new file mode 100644 index 0000000000..d9641e41ff Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-23.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-26.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-26.png new file mode 100644 index 0000000000..5f5fab8a8f Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-26.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-27.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-27.png new file mode 100644 index 0000000000..ca103e4b8a Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-27.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-32.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-32.png new file mode 100644 index 0000000000..3ff1e85a19 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_18-32.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-20.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-20.png new file mode 100644 index 0000000000..fe90508bf5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-20.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-22.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-22.png new file mode 100644 index 0000000000..8c475d279d Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_22-22.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-03.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-03.png new file mode 100644 index 0000000000..27bb14eb11 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-03.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-10.png b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-10.png new file mode 100644 index 0000000000..128b8d6f55 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-deployments/2025-02-28_15-10.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-20.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-20.png new file mode 100644 index 0000000000..d2c1e8b6f4 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-20.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-32.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-32.png new file mode 100644 index 0000000000..1d8f5dfe37 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-32.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-35.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-35.png new file mode 100644 index 0000000000..a2275fcdfb Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-22_18-35.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54.png new file mode 100644 index 0000000000..a924a078a3 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54_1.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54_1.png new file mode 100644 index 0000000000..fee9438ccd Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-54_1.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-57.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-57.png new file mode 100644 index 0000000000..7ab0c941e9 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_11-57.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-52.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-52.png new file mode 100644 index 0000000000..51abb0a723 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-52.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-54.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-54.png new file mode 100644 index 0000000000..feb3d6803d Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-54.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-56.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-56.png new file mode 100644 index 0000000000..7a681c60d5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-23_19-56.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_17-38.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_17-38.png new file mode 100644 index 0000000000..c450bd819a Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_17-38.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-18.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-18.png new file mode 100644 index 0000000000..dfb265856b Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-18.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-22.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-22.png new file mode 100644 index 0000000000..37e930b430 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-22.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-25.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-25.png new file mode 100644 index 0000000000..34cdb0c5dd Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-25_18-25.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-05.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-05.png new file mode 100644 index 0000000000..b2e5c1edfa Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-05.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-10.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-10.png new file mode 100644 index 0000000000..b8eb2be5d3 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-10.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-11.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-11.png new file mode 100644 index 0000000000..b50e80df33 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-11.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-33.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-33.png new file mode 100644 index 0000000000..3c5a3da391 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-33.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-35.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-35.png new file mode 100644 index 0000000000..8bd5be9b45 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-35.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-37.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-37.png new file mode 100644 index 0000000000..8a49f061f2 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-37.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-45.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-45.png new file mode 100644 index 0000000000..1871a90d66 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-45.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-48.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-48.png new file mode 100644 index 0000000000..a2882ca4dc Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-48.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-53.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-53.png new file mode 100644 index 0000000000..ca582491bf Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-28_11-53.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-29_20-37.png b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-29_20-37.png new file mode 100644 index 0000000000..7c5b94b9f8 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-pods/2024-02-29_20-37.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-request-flow/k8s-request-flow.png b/content/en/kanvas/tutorials/images/kubernetes-request-flow/k8s-request-flow.png new file mode 100644 index 0000000000..e7044e16b9 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-request-flow/k8s-request-flow.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_01.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_01.png new file mode 100644 index 0000000000..6594a5bbeb Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_01.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_02.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_02.png new file mode 100644 index 0000000000..04ef4d19a3 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_02.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_03.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_03.png new file mode 100644 index 0000000000..df7c99ceab Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_03.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_04.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_04.png new file mode 100644 index 0000000000..340eb56735 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_04.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_05.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_05.png new file mode 100644 index 0000000000..830dc000e5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_05.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_06.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_06.png new file mode 100644 index 0000000000..ec6feeb2fd Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_06.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_07.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_07.png new file mode 100644 index 0000000000..a6bc699a64 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_07.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_08.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_08.png new file mode 100644 index 0000000000..b779375d7b Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-04_08.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_11.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_11.png new file mode 100644 index 0000000000..3c71dc6d64 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_11.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_12.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_12.png new file mode 100644 index 0000000000..0d85675b2a Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-05_12.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_13.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_13.png new file mode 100644 index 0000000000..18e12b9510 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_13.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_14.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_14.png new file mode 100644 index 0000000000..e2a5a20455 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_14.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_15.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_15.png new file mode 100644 index 0000000000..c6d82c3236 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_15.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_17.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_17.png new file mode 100644 index 0000000000..dc4dae17da Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_17.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_18.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_18.png new file mode 100644 index 0000000000..0995a0eafb Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-09-06_18.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_1.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_1.png new file mode 100644 index 0000000000..fab878fbad Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_1.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_2.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_2.png new file mode 100644 index 0000000000..b5d2838174 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_2.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_3.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_3.png new file mode 100644 index 0000000000..22d0eb186f Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_3.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_4.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_4.png new file mode 100644 index 0000000000..bb6387e3af Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_4.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_5.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_5.png new file mode 100644 index 0000000000..f7457e2da5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_5.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_6.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_6.png new file mode 100644 index 0000000000..7d0d7a2d11 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_6.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_7.png b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_7.png new file mode 100644 index 0000000000..43b90280bc Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/2025-12-13_7.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/edit-01.png b/content/en/kanvas/tutorials/images/kubernetes-services/edit-01.png new file mode 100644 index 0000000000..d5e4312ed3 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/edit-01.png differ diff --git a/content/en/kanvas/tutorials/images/kubernetes-services/metadata.png b/content/en/kanvas/tutorials/images/kubernetes-services/metadata.png new file mode 100644 index 0000000000..468fdb22b6 Binary files /dev/null and b/content/en/kanvas/tutorials/images/kubernetes-services/metadata.png differ diff --git a/content/en/kanvas/tutorials/images/navigate-kanvas.png b/content/en/kanvas/tutorials/images/navigate-kanvas.png new file mode 100644 index 0000000000..83f9da2937 Binary files /dev/null and b/content/en/kanvas/tutorials/images/navigate-kanvas.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_1.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_1.png new file mode 100644 index 0000000000..accd8faa80 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_1.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_2.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_2.png new file mode 100644 index 0000000000..274df675f3 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_2.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_3.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_3.png new file mode 100644 index 0000000000..aaa1660f00 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_3.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_4.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_4.png new file mode 100644 index 0000000000..579a7f9220 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/2024-07-30_4.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/add_repo.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/add_repo.png new file mode 100644 index 0000000000..c95c385c05 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/add_repo.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/artifacthub_control_panel.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/artifacthub_control_panel.png new file mode 100644 index 0000000000..2b00a2bdca Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/artifacthub_control_panel.png differ diff --git a/content/en/kanvas/tutorials/images/publish-to-artifacthub/kind_design_repo.png b/content/en/kanvas/tutorials/images/publish-to-artifacthub/kind_design_repo.png new file mode 100644 index 0000000000..45e2d72336 Binary files /dev/null and b/content/en/kanvas/tutorials/images/publish-to-artifacthub/kind_design_repo.png differ diff --git a/content/en/kanvas/tutorials/images/save-app.png b/content/en/kanvas/tutorials/images/save-app.png new file mode 100644 index 0000000000..1ff90dd85c Binary files /dev/null and b/content/en/kanvas/tutorials/images/save-app.png differ diff --git a/content/en/kanvas/tutorials/images/save.png b/content/en/kanvas/tutorials/images/save.png new file mode 100644 index 0000000000..271eecc144 Binary files /dev/null and b/content/en/kanvas/tutorials/images/save.png differ diff --git a/content/en/kanvas/tutorials/images/scale.png b/content/en/kanvas/tutorials/images/scale.png new file mode 100644 index 0000000000..b0e52e1e99 Binary files /dev/null and b/content/en/kanvas/tutorials/images/scale.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/app-canvas.png b/content/en/kanvas/tutorials/images/screenshots/app-canvas.png new file mode 100644 index 0000000000..058d58868c Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/app-canvas.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-1.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-1.png new file mode 100644 index 0000000000..29d63f0ecc Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-1.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-2.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-2.png new file mode 100644 index 0000000000..d24be44b86 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-2.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-3.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-3.png new file mode 100644 index 0000000000..d7c354f37c Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-3.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-4.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-4.png new file mode 100644 index 0000000000..f890346823 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-4.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-5.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-5.png new file mode 100644 index 0000000000..2ccd077e6d Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-5.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-6.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-6.png new file mode 100644 index 0000000000..d8cdbc24af Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-6.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-7.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-7.png new file mode 100644 index 0000000000..58013387f7 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-7.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-8.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-8.png new file mode 100644 index 0000000000..1e3d289f48 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-8.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/cassandra-9.png b/content/en/kanvas/tutorials/images/screenshots/cassandra-9.png new file mode 100644 index 0000000000..50e420d69c Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/cassandra-9.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/operate-layers-expand.png b/content/en/kanvas/tutorials/images/screenshots/operate-layers-expand.png new file mode 100644 index 0000000000..03d3b6cbc1 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/operate-layers-expand.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/operate-layers.png b/content/en/kanvas/tutorials/images/screenshots/operate-layers.png new file mode 100644 index 0000000000..6845066963 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/operate-layers.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/operate-logs-menu.png b/content/en/kanvas/tutorials/images/screenshots/operate-logs-menu.png new file mode 100644 index 0000000000..b3830a0db0 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/operate-logs-menu.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/operate-logs.png b/content/en/kanvas/tutorials/images/screenshots/operate-logs.png new file mode 100644 index 0000000000..09a31fa2d1 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/operate-logs.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/operate.png b/content/en/kanvas/tutorials/images/screenshots/operate.png new file mode 100644 index 0000000000..057215e416 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/operate.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-leader-deployment.png b/content/en/kanvas/tutorials/images/screenshots/redis-leader-deployment.png new file mode 100644 index 0000000000..29f23efec8 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-leader-deployment.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deploy.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deploy.png new file mode 100644 index 0000000000..4d1cbbaaf8 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deploy.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deployment.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deployment.png new file mode 100644 index 0000000000..be41f150a5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-deployment.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-dryrun.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-dryrun.png new file mode 100644 index 0000000000..5a3e579494 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-dryrun.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-finalize.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-finalize.png new file mode 100644 index 0000000000..bd0da6ffee Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-finalize.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-identify.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-identify.png new file mode 100644 index 0000000000..cb8f0a4a56 Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-identify.png differ diff --git a/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-validate.png b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-validate.png new file mode 100644 index 0000000000..5491d928ed Binary files /dev/null and b/content/en/kanvas/tutorials/images/screenshots/redis-php-guestbook-validate.png differ diff --git a/content/en/kanvas/tutorials/images/select-cronjob.png b/content/en/kanvas/tutorials/images/select-cronjob.png new file mode 100644 index 0000000000..04525a5647 Binary files /dev/null and b/content/en/kanvas/tutorials/images/select-cronjob.png differ diff --git a/content/en/kanvas/tutorials/images/tool-bar.png b/content/en/kanvas/tutorials/images/tool-bar.png new file mode 100644 index 0000000000..f0ab3704fb Binary files /dev/null and b/content/en/kanvas/tutorials/images/tool-bar.png differ diff --git a/content/en/kanvas/tutorials/images/toolbar-cronjob.png b/content/en/kanvas/tutorials/images/toolbar-cronjob.png new file mode 100644 index 0000000000..c5fbbc2aad Binary files /dev/null and b/content/en/kanvas/tutorials/images/toolbar-cronjob.png differ diff --git a/content/en/kanvas/tutorials/images/view.png b/content/en/kanvas/tutorials/images/view.png new file mode 100644 index 0000000000..a103230d9f Binary files /dev/null and b/content/en/kanvas/tutorials/images/view.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp1.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp1.png new file mode 100644 index 0000000000..5c7e72a918 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp1.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp10.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp10.png new file mode 100644 index 0000000000..014e970973 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp10.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp11.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp11.png new file mode 100644 index 0000000000..6f95af0279 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp11.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp12.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp12.png new file mode 100644 index 0000000000..818b604b90 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp12.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp13.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp13.png new file mode 100644 index 0000000000..196f096374 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp13.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp14.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp14.png new file mode 100644 index 0000000000..e5e0b3aa02 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp14.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp15.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp15.png new file mode 100644 index 0000000000..e7c84c1a03 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp15.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp16.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp16.png new file mode 100644 index 0000000000..ab52709370 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp16.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp17.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp17.png new file mode 100644 index 0000000000..d458e0b368 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp17.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp18.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp18.png new file mode 100644 index 0000000000..884730bb76 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp18.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp19.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp19.png new file mode 100644 index 0000000000..b524a68453 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp19.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp2.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp2.png new file mode 100644 index 0000000000..00b4d95f67 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp2.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp20.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp20.png new file mode 100644 index 0000000000..b21b9f0d37 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp20.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp21.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp21.png new file mode 100644 index 0000000000..29baf884e5 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp21.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp22.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp22.png new file mode 100644 index 0000000000..4fd801c215 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp22.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp23.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp23.png new file mode 100644 index 0000000000..3d5ab1c5cb Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp23.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp3.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp3.png new file mode 100644 index 0000000000..fe5b1b2b72 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp3.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp4.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp4.png new file mode 100644 index 0000000000..4cffd3454d Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp4.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp5.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp5.png new file mode 100644 index 0000000000..ac84840697 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp5.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp6.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp6.png new file mode 100644 index 0000000000..df785b83a9 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp6.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp7.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp7.png new file mode 100644 index 0000000000..f2585d3764 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp7.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp8.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp8.png new file mode 100644 index 0000000000..9ccca20c25 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp8.png differ diff --git a/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp9.png b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp9.png new file mode 100644 index 0000000000..e9db705062 Binary files /dev/null and b/content/en/kanvas/tutorials/images/wordpress-mysql-persistentvolume/wp9.png differ diff --git a/content/en/kanvas/tutorials/kubernetes/_index.md b/content/en/kanvas/tutorials/kubernetes/_index.md new file mode 100644 index 0000000000..933a0fa614 --- /dev/null +++ b/content/en/kanvas/tutorials/kubernetes/_index.md @@ -0,0 +1,3 @@ +--- +title: Kubernetes +--- \ No newline at end of file diff --git a/content/en/kanvas/tutorials/kubernetes/deploy-apache-cassandra-with-statefulset.md b/content/en/kanvas/tutorials/kubernetes/deploy-apache-cassandra-with-statefulset.md new file mode 100644 index 0000000000..c8c4d86796 --- /dev/null +++ b/content/en/kanvas/tutorials/kubernetes/deploy-apache-cassandra-with-statefulset.md @@ -0,0 +1,126 @@ +--- +title: Deploying Apache Cassandra with a StatefulSet in Meshery Playground +model: kubernetes +params: + kind: deployments +categories: [tutorials] +description: Deploy Apache Cassandra with a StatefulSet using Meshery Playground in an interactive live cluster environment. +aliases: +- /kanvas/tutorials/deploy-apache-cassandra-with-statefulset +--- + +### Introduction + +In this tutorial, we will learn how to deploy a **Apache Cassandra with a StatefulSet** using Meshery Playground. Meshery Playground is an interactive and collaborative live cluster environment that simplifies the deployment process and enhances user experience by providing visual tools for managing Kubernetes resources. + +> **NOTE:** If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](/kanvas/tutorials/kubernetes-pods) tutorial first. + +### Prerequisites + +- Basic understanding of Kubernetes concepts. +- Access to the _Meshery Playground_. If you don't have an account, sign up at [Meshery Playground](https://play.meshery.io/). + +### Lab Scenario + +- Import the Apache Service and Apache StatefulSet manifest files into Meshery Playground. + +- Create a Cassandra ring using the visual tools provided by Meshery. + +- Deploy these resources on the playground. + +In this lab, you will import the Service and StatefulSet manifest files into Meshery Playground. You will visualize these Kubernetes resources and Cassandra Ring using the visual tools provided by Meshery. Finally, you will deploy these resources on the Playground. + +### Objective + +Learn how to import manifest files, visualize Kubernetes resources, create new resource components, and deploy the application using Meshery Playground. + +### Steps + +#### Download the Kubernetes Configuration Files + +Go ahead and download these yaml files [cassandra-service.yaml](https://kubernetes.io/examples/application/cassandra/cassandra-service.yaml) and [cassandra-statefulset.yaml](https://kubernetes.io/examples/application/cassandra/cassandra-statefulset.yaml) + +These YAML files contain the Cassandra Service and Cassandra StatefulSet manifests + +#### Access Meshery Playground + +1. Log in to the [Meshery Playground](https://play.meshery.io/) using your credentials. On successful login, you should be at the dashboard. Press the **X** on the _Where do you want to start?_ popup to close it (if required). + +2. Click **Explore** in the Cloud Native Playground tile to navigate to _MeshMap_ + +#### Import the Files to Meshery Playground + +1. In the left sidebar, click on the upward arrow symbol(import icon) to import the designs into Meshery. + +2. In the modal that appears: + - Enter a name for your design in the "Design File Name" field (e.g.`cassandra-service`). + + - Select `Kubernetes Manifest` from the "Design Type" dropdown menu. + +  + + - Choose `File Upload` for the upload method, and select the file you just downloaded. + + - Then, click on `Import` + +  + +3. Under the "Designs" tab, you will see that we have successfully imported the `cassandra-service` design. + + When you click on the names of the designs on the `Designs` tab, you can see the visual representations of the various Kubernetes resources and their relationships on the canvas. + +  + +4. Now, follow the same steps to import the `cassandra-statefulset` file. + +  + +#### Merging the Designs + +Next, we will combine the Service and StatefulSet designs into a single design file. By merging these designs, we can manage and deploy both resources together. + +To merge the Service deployment design with the StatefulSet deployment design: + +1. Click and drag the `cassandra-service` design from the left panel and drop it onto the design canvas of the `cassandra-statefulset`. + +  + +2. This action will open a merge modal asking if you want to merge the design, Click on `Merge`. + +  + +3. Click on `Save As` and enter `cassandra-service-statefulset` as the new file name. + +  + +#### Visualizing the Deployed Resources + +To view the resources deployed we will use the Visualize section of the _MeshMap_. In this section, you can apply filters to display the specific resources you want to see. + +1. Move to the Visualize tab. +2. Click the filter icon and choose the appropriate filters + + - For "Kinds" select `StatefulSet`, `Service` and `StorageClass` + - For the "label" select `dev=tutorial` + +3. You can also use the icons on the right sidebar to filter the resources. + + After selecting your filters, you should see a view displaying only your relevant resources, as shown in the image below. + +  + +#### Resource Details + +You can click on any resource to view more details about it in the "Details" section on the right sidebar. + +**Deployment** + + + +#### Deleting Resources + +To delete the resources, use the `Undeploy` option from the Action dropdown in the _Design_ tab. + +#### Conclusion + +Congratulations! You’ve successfully completed the tutorial on deploying Apache Cassandra on Kubernetes using StatefulSets in Meshery Playground. This hands-on experience should have given you valuable insights into managing Cassandra instances with persistent storage, automatic discovery, and seamless scalability. You also explored how Kubernetes' StatefulSet feature ensures robust application state management and high availability in Meshery Playground. \ No newline at end of file diff --git a/content/en/kanvas/tutorials/kubernetes/deploy-php-redis.md b/content/en/kanvas/tutorials/kubernetes/deploy-php-redis.md new file mode 100644 index 0000000000..310d2973f6 --- /dev/null +++ b/content/en/kanvas/tutorials/kubernetes/deploy-php-redis.md @@ -0,0 +1,133 @@ +--- +title: Deploying PHP Guestbook application with Redis in Meshery +model: kubernetes +params: + kind: deployments +categories: [tutorials] +description: In this tutorial, we will deploy guest book built with PHP and Redis in Kubernetes. We will make use of Meshery Playground in an interactive live cluster environment. +aliases: +- /kanvas/tutorials/deploy-php-redis +--- + +### Introduction + +In this tutorial, we will learn how to deploy a **PHP Guestbook application with Redis** using Meshery Playground. Meshery Playground is an interactive and collaborative live cluster environment that simplifies the deployment process and enhances user experience by providing visual tools for managing Kubernetes resources. + +> **NOTE:** If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](/kanvas/tutorials/kubernetes-pods) tutorial first. + +### Prerequisites +- Basic understanding of Kubernetes concepts. +- Meshery Playground access. If you don't have an account, sign up at [Meshery Playground](https://play.meshery.io). + +### Lab Scenario +- Import the PHP and Redis manifest files into Meshery Playground. +- Deploy these resources on the playground. + - Start up a Redis leader. + - Start up two Redis followers. + - Start up the guestbook frontend. +- Expose and view the Frontend Service. + + +### Objective +Learn how to import manifest files, visualize Kubernetes resources, create new resource components, and deploy the application using Meshery Playground. + + +### Steps + +#### Download the Kubernetes Configuration Files + +To get started we will need some yaml files that will contain the configurations for the pods and services that will run on Meshery. You can download them to see what the look like. +1. [redis-leader-deployment.yaml](https://k8s.io/examples/application/guestbook/redis-leader-deployment.yaml) +2. [redis-leader-service.yaml](https://k8s.io/examples/application/guestbook/redis-leader-service.yaml) +3. [redis-follower-deployment.yaml](https://k8s.io/examples/application/guestbook/redis-follower-deployment.yaml) +4. [redis-follower-service.yaml](https://k8s.io/examples/application/guestbook/redis-follower-service.yaml) +5. [frontend-deployment.yaml](https://k8s.io/examples/application/guestbook/frontend-deployment.yaml) +6. [frontend-service.yaml](https://k8s.io/examples/application/guestbook/frontend-service.yaml) + +These YAML files contain the Service definitions and Deployment configurations for the PHP app with Redis. + +#### Accessing Meshery Playground + +1. Log in to the [Meshery Playground](https://play.meshery.io) using your credentials. On successful login, you should be at the dashboard. Press the **X** on the _Where do you want to start?_ popup to close it (if required). + +2. Click **Explore** in the Cloud Native Playground tile to navigate to _MeshMap_ + + +#### Import the Files to Meshery Playground + +1. In the left sidebar, click on the upward arrow symbol(import icon) to import the designs into Meshery. + +2. On doing so, a modal appears.In the modal that appears, enter a name for your design in the "Design File Name" field (e.g.`redis-leader-deployment`). + +3. Now select `Kubernetes Manifest` from the "Design Type" dropdown menu. + +4. Then choose `URL Import` for the upload method. + +5. Now input the URL. + +6. Then, click on `Import` + + + + +Now, follow the same steps (1-6) to import the rest of the files. + +Under the “Designs” tab, you will see that we have successfully imported the manifest as designs, then you can drag and drop them in the canvas. This will "Merge" all the designs since it's all just one application + + + +#### 4. **Deploy the files:** + +1. Click Actions in the top right corner and click on Deploy. + + +1. The design will be validated to make sure there are no errors. + +1. Choose the Kubernetes cluster you want to deploy to. + +1. A Dry-Run will be triggered. + +1. Finally your deployment and click Deploy to deploy the application to the cluster. + +1. On successful deployment you will see the following modal asking you to open you deployment in visualizer + + + +#### 5. **Updating the Deployments:** + +```bash +kubectl set image deployment/+kubectl create secret generic azure-credentials --namespace azureserviceoperator-system --from-literal=AZURE_CLIENT_ID=$AZURE_CLIENT_ID --from-literal=AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET --from-literal=AZURE_TENANT_ID=$AZURE_TENANT_ID --from-literal=AZURE_SUBSCRIPTION_ID=$AZURE_SUBSCRIPTION_ID ++