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 00000000000..e7220698505
--- /dev/null
+++ b/content/en/kanvas/concepts/helm-kanvas-snapshot.md
@@ -0,0 +1,73 @@
+---
+title: Helm Kanvas Snapshot
+description: Helm CLI plugin to visually render a snapshot of your Helm charts.
+display_title: false
+categories: [kanvas]
+---
+ 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 Kanvas Snapshot Helm Plugin, use the following steps:
+
+### Prerequisites
+
+- `helm` must be installed on your system.
+- (Optional) A free [Layer5 Cloud](https://cloud.layer5.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.github.io/meshery.io/charts/meshery-v1.0.20.tgz`, you can use: + +++helm snapshot --f <chart-URI> [--name <snapshot-name>] [--email <email>]+
+\ No newline at end of file diff --git a/content/en/kanvas/concepts/images/helm-chart-color.svg b/content/en/kanvas/concepts/images/helm-chart-color.svg new file mode 100644 index 00000000000..bf5e4047517 --- /dev/null +++ b/content/en/kanvas/concepts/images/helm-chart-color.svg @@ -0,0 +1,8 @@ + diff --git a/content/en/kanvas/concepts/images/kanvas-icon-color.svg b/content/en/kanvas/concepts/images/kanvas-icon-color.svg new file mode 100644 index 00000000000..72b80c53898 --- /dev/null +++ b/content/en/kanvas/concepts/images/kanvas-icon-color.svg @@ -0,0 +1,27 @@ + diff --git a/content/en/kanvas/concepts/images/kanvas-snapshot.png b/content/en/kanvas/concepts/images/kanvas-snapshot.png new file mode 100644 index 00000000000..7347bfd39ad Binary files /dev/null and b/content/en/kanvas/concepts/images/kanvas-snapshot.png differ diff --git a/content/en/kanvas/concepts/images/meshsync.svg b/content/en/kanvas/concepts/images/meshsync.svg new file mode 100644 index 00000000000..0f0200a098e --- /dev/null +++ b/content/en/kanvas/concepts/images/meshsync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/en/kanvas/concepts/kanvas-snapshot.md b/content/en/kanvas/concepts/kanvas-snapshot.md new file mode 100644 index 00000000000..8b078ee6f2f --- /dev/null +++ b/content/en/kanvas/concepts/kanvas-snapshot.md @@ -0,0 +1,205 @@ +--- +title: Kanvas GitHub Snapshot +description: Capture a screenshot of your infrastructure as a comment in your GitHub pull request. +display_title: false +categories: [kanvas] +aliases: +- /kanvas/concepts/snapshot +--- + +++helm snapshot -f https://meshery.github.io/meshery.io/charts/meshery-v1.0.20.tgz --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 00000000000..6277f8dbef4 --- /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 00000000000..25c515e1b26 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 00000000000..5168f5ea986 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 00000000000..c7ee3c95a67 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 00000000000..7532dc36714 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 00000000000..77a8b097ee4 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 00000000000..dcfe6d51ae7 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 00000000000..c54f043bb07 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 00000000000..121f200f8af 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 00000000000..f4b1562797a 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 00000000000..78d4218785d 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 00000000000..627b524a3b3 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 00000000000..83d0b4da04f 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 00000000000..19864a7b402 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 00000000000..dad2532cc09 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 00000000000..418f0380ed5 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 00000000000..6fc987f8cb5 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 00000000000..4465fb6e12c 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 00000000000..57ea9043169 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 00000000000..93ec48f6e2d 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 00000000000..2d23daaaa54 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 00000000000..63053f5ebde 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 00000000000..674b4228998 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 00000000000..367f33590de 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 00000000000..f45d3126df2 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 00000000000..7533f4d2b70 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 00000000000..970827c5cbf 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 00000000000..597fc3d425b 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 00000000000..63a93bf1064 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 00000000000..33b9dcabdb6 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 00000000000..ece33875f0e 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 00000000000..3510a2b591e 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 00000000000..057b94230c4 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 00000000000..7ae0a8fa603 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 00000000000..a62396b5416 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 00000000000..abed6e82df9 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 00000000000..f4655fe70cc 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 00000000000..9a08d2721d3 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 00000000000..2aa43e649e9 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 00000000000..f0ba2b0c9c7 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 00000000000..89a5440a480 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 00000000000..9268845d3ba 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 00000000000..18131bc6591 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 00000000000..48b8130be8b 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 00000000000..04df81f35ec 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 00000000000..5e0f4f8d292 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 00000000000..957cb46e79b 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 00000000000..a2584e54a23 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 00000000000..58fbe46e6ae 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 00000000000..d2b64cacc7c 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 00000000000..f8aec9c0478 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 00000000000..d9641e41ff6 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 00000000000..5f5fab8a8f6 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 00000000000..ca103e4b8ad 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 00000000000..3ff1e85a192 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 00000000000..fe90508bf57 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 00000000000..8c475d279d5 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 00000000000..27bb14eb11e 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 00000000000..128b8d6f550 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 00000000000..d2c1e8b6f4e 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 00000000000..1d8f5dfe370 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 00000000000..a2275fcdfb4 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 00000000000..a924a078a36 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 00000000000..fee9438ccde 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 00000000000..7ab0c941e93 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 00000000000..51abb0a723d 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 00000000000..feb3d6803d7 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 00000000000..7a681c60d52 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 00000000000..c450bd819ab 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 00000000000..dfb265856b7 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 00000000000..37e930b4304 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 00000000000..34cdb0c5dd0 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 00000000000..b2e5c1edfa5 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 00000000000..b8eb2be5d34 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 00000000000..b50e80df331 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 00000000000..3c5a3da391d 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 00000000000..8bd5be9b45d 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 00000000000..8a49f061f2e 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 00000000000..1871a90d665 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 00000000000..a2882ca4dc2 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 00000000000..ca582491bf3 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 00000000000..7c5b94b9f89 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 00000000000..e7044e16b96 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 00000000000..6594a5bbeb6 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 00000000000..04ef4d19a30 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 00000000000..df7c99ceaba 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 00000000000..340eb567355 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 00000000000..830dc000e5a 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 00000000000..ec6feeb2fdc 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 00000000000..a6bc699a640 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 00000000000..b779375d7b5 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 00000000000..3c71dc6d645 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 00000000000..0d85675b2a4 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 00000000000..18e12b9510c 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 00000000000..e2a5a204556 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 00000000000..c6d82c32362 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 00000000000..dc4dae17da1 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 00000000000..0995a0eafb8 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 00000000000..fab878fbad3 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 00000000000..b5d28381746 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 00000000000..22d0eb186f9 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 00000000000..bb6387e3af1 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 00000000000..f7457e2da57 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 00000000000..7d0d7a2d112 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 00000000000..43b90280bcf 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 00000000000..d5e4312ed32 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 00000000000..468fdb22b6a 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 00000000000..83f9da2937c 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 00000000000..accd8faa801 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 00000000000..274df675f3f 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 00000000000..aaa1660f00c 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 00000000000..579a7f92207 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 00000000000..c95c385c057 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 00000000000..2b00a2bdca9 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 00000000000..45e2d723368 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 00000000000..1ff90dd85ce 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 00000000000..271eecc144e 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 00000000000..b0e52e1e997 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 00000000000..058d58868c4 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 00000000000..29d63f0ecca 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 00000000000..d24be44b862 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 00000000000..d7c354f37c5 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 00000000000..f890346823d 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 00000000000..2ccd077e6de 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 00000000000..d8cdbc24afe 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 00000000000..58013387f70 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 00000000000..1e3d289f488 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 00000000000..50e420d69c1 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 00000000000..03d3b6cbc10 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 00000000000..6845066963d 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 00000000000..b3830a0db0d 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 00000000000..09a31fa2d1d 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 00000000000..057215e416a 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 00000000000..29f23efec83 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 00000000000..4d1cbbaaf8b 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 00000000000..be41f150a56 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 00000000000..5a3e5794948 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 00000000000..bd0da6ffeec 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 00000000000..cb8f0a4a568 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 00000000000..5491d928ed9 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 00000000000..04525a56478 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 00000000000..f0ab3704fbf 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 00000000000..c5fbbc2aad2 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 00000000000..a103230d9f0 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 00000000000..5c7e72a918e 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 00000000000..014e9709731 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 00000000000..6f95af02797 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 00000000000..818b604b906 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 00000000000..196f096374a 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 00000000000..e5e0b3aa025 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 00000000000..e7c84c1a03a 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 00000000000..ab52709370a 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 00000000000..d458e0b3689 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 00000000000..884730bb76b 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 00000000000..b524a684535 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 00000000000..00b4d95f676 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 00000000000..b21b9f0d37f 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 00000000000..29baf884e56 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 00000000000..4fd801c215b 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 00000000000..3d5ab1c5cb8 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 00000000000..fe5b1b2b721 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 00000000000..4cffd3454d6 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 00000000000..ac848406970 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 00000000000..df785b83a91 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 00000000000..f2585d3764e 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 00000000000..9ccca20c25b 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 00000000000..e9db7050624 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 00000000000..933a0fa6140 --- /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 00000000000..c8c4d867964 --- /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 00000000000..310d2973f64 --- /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 ++