diff --git a/applications/liveness and readiness/labs/probing/images/1.png b/applications/liveness and readiness/labs/probing/images/1.png new file mode 100644 index 0000000..83629a1 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/1.png differ diff --git a/applications/liveness and readiness/labs/probing/images/10.png b/applications/liveness and readiness/labs/probing/images/10.png new file mode 100644 index 0000000..3d0adab Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/10.png differ diff --git a/applications/liveness and readiness/labs/probing/images/11.png b/applications/liveness and readiness/labs/probing/images/11.png new file mode 100644 index 0000000..c04f812 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/11.png differ diff --git a/applications/liveness and readiness/labs/probing/images/12.png b/applications/liveness and readiness/labs/probing/images/12.png new file mode 100644 index 0000000..a9dd7f2 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/12.png differ diff --git a/applications/liveness and readiness/labs/probing/images/13.png b/applications/liveness and readiness/labs/probing/images/13.png new file mode 100644 index 0000000..6262ced Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/13.png differ diff --git a/applications/liveness and readiness/labs/probing/images/14.png b/applications/liveness and readiness/labs/probing/images/14.png new file mode 100644 index 0000000..1a9cc08 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/14.png differ diff --git a/applications/liveness and readiness/labs/probing/images/15.png b/applications/liveness and readiness/labs/probing/images/15.png new file mode 100644 index 0000000..42cf97c Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/15.png differ diff --git a/applications/liveness and readiness/labs/probing/images/16.png b/applications/liveness and readiness/labs/probing/images/16.png new file mode 100644 index 0000000..1da9ba2 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/16.png differ diff --git a/applications/liveness and readiness/labs/probing/images/17.png b/applications/liveness and readiness/labs/probing/images/17.png new file mode 100644 index 0000000..9668c4f Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/17.png differ diff --git a/applications/liveness and readiness/labs/probing/images/18.png b/applications/liveness and readiness/labs/probing/images/18.png new file mode 100644 index 0000000..0aa9ebc Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/18.png differ diff --git a/applications/liveness and readiness/labs/probing/images/19.png b/applications/liveness and readiness/labs/probing/images/19.png new file mode 100644 index 0000000..de5dcb8 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/19.png differ diff --git a/applications/liveness and readiness/labs/probing/images/2.gif b/applications/liveness and readiness/labs/probing/images/2.gif new file mode 100644 index 0000000..8fc2a16 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/2.gif differ diff --git a/applications/liveness and readiness/labs/probing/images/20.png b/applications/liveness and readiness/labs/probing/images/20.png new file mode 100644 index 0000000..82de2b9 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/20.png differ diff --git a/applications/liveness and readiness/labs/probing/images/21.png b/applications/liveness and readiness/labs/probing/images/21.png new file mode 100644 index 0000000..08fe13b Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/21.png differ diff --git a/applications/liveness and readiness/labs/probing/images/3.png b/applications/liveness and readiness/labs/probing/images/3.png new file mode 100644 index 0000000..ce150c3 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/3.png differ diff --git a/applications/liveness and readiness/labs/probing/images/4.png b/applications/liveness and readiness/labs/probing/images/4.png new file mode 100644 index 0000000..5ec887c Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/4.png differ diff --git a/applications/liveness and readiness/labs/probing/images/5.png b/applications/liveness and readiness/labs/probing/images/5.png new file mode 100644 index 0000000..45f3619 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/5.png differ diff --git a/applications/liveness and readiness/labs/probing/images/6.gif b/applications/liveness and readiness/labs/probing/images/6.gif new file mode 100644 index 0000000..c0e6d1c Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/6.gif differ diff --git a/applications/liveness and readiness/labs/probing/images/7.gif b/applications/liveness and readiness/labs/probing/images/7.gif new file mode 100644 index 0000000..8a58323 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/7.gif differ diff --git a/applications/liveness and readiness/labs/probing/images/8.png b/applications/liveness and readiness/labs/probing/images/8.png new file mode 100644 index 0000000..a25f1c1 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/8.png differ diff --git a/applications/liveness and readiness/labs/probing/images/9.png b/applications/liveness and readiness/labs/probing/images/9.png new file mode 100644 index 0000000..868bf35 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/9.png differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/app-info.png b/applications/liveness and readiness/labs/probing/images/app-info.png similarity index 100% rename from kubernetes/secrets/labs/mysqlSecret/images/app-info.png rename to applications/liveness and readiness/labs/probing/images/app-info.png diff --git a/applications/liveness and readiness/labs/probing/images/liveness-values.png b/applications/liveness and readiness/labs/probing/images/liveness-values.png new file mode 100644 index 0000000..6067d66 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/liveness-values.png differ diff --git a/applications/liveness and readiness/labs/probing/images/liveness.png b/applications/liveness and readiness/labs/probing/images/liveness.png new file mode 100644 index 0000000..dbad243 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/liveness.png differ diff --git a/applications/liveness and readiness/labs/probing/images/probing.gif b/applications/liveness and readiness/labs/probing/images/probing.gif new file mode 100644 index 0000000..ddb6147 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/probing.gif differ diff --git a/applications/liveness and readiness/labs/probing/images/readiness-values.png b/applications/liveness and readiness/labs/probing/images/readiness-values.png new file mode 100644 index 0000000..bc076ab Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/readiness-values.png differ diff --git a/applications/liveness and readiness/labs/probing/images/readiness.png b/applications/liveness and readiness/labs/probing/images/readiness.png new file mode 100644 index 0000000..a949445 Binary files /dev/null and b/applications/liveness and readiness/labs/probing/images/readiness.png differ diff --git a/applications/liveness and readiness/labs/probing/probing-metadata.json b/applications/liveness and readiness/labs/probing/probing-metadata.json new file mode 100644 index 0000000..03ca515 --- /dev/null +++ b/applications/liveness and readiness/labs/probing/probing-metadata.json @@ -0,0 +1,6 @@ +{ + "title": "Container Service with Probing", + "description": "How to deploy a MySQL Container service with Probing.", + "complexity":"intermediate", + "time":"00:40:00" + } \ No newline at end of file diff --git a/applications/liveness and readiness/labs/probing/probing.md b/applications/liveness and readiness/labs/probing/probing.md new file mode 100644 index 0000000..9fe4f0a --- /dev/null +++ b/applications/liveness and readiness/labs/probing/probing.md @@ -0,0 +1,203 @@ +#### Objective + +In this lab, you will learn how to deploy a MySQL server and configure Probing using Cloudplex. + +#### Prerequisite + +If you want to deploy this lab, you need to deploy at least one infrastructure. We have labs on infrastructure as well, you can follow them to deploy infrastructure + + +#### Add Application Info + +Give name to your application and specify the version, you can add tags to your application as well + +![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/1.png) + +Click on the **next** button on the top right corner. + + +#### Add Secret Service + +CloudPlex platform provides a secret management service that provides the ability to store sensitive data such as passwords, tokens, and certificates in Cloudplex. Any data entered in this service is stored in a secure vault with at-rest encryption. This eventually becomes a [Kubernetes Secret](https:/kubernetes.io/docs/concepts/configuration/secret) in a deployed application. + +To configure the service, Drag-n-drop **Secret service** from pallet to the canvas. + +![secret-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/2.gif) + +Click on the service to open the configuration panel on the right side. + +The platform will populate the default values of service (Service Id, Service Name, Namespace) + +![secret-service-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/3.png) + + +Click on Add secret string and type ***MYSQL_ROOT_PASSWORD*** in key and the Password in the value field. For this lab, type (the password as shown) ***5dzo2MsriVJNYTTtud8gOyDc3A*** in the value field. + +![secret-key-password](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/4.png) + +```yaml +key : MYSQL_ROOT_PASSWORD +value : 5dzo2MsriVJNYTTtud8gOyDc3A +``` + +Click on save button to save service + +![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/5.png) + + +#### Configure the MySQL Container + +Drag-n-drop the ***Docker Hub*** service from pallet to the canvas. + +![docker-hub-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/6.gif) + +Drag the arrow from ***Secret*** service to ***Container*** service. + +![dockerhub-secret-link](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/7.gif) + +Click on the service to open the configuration panel on the right side. + +![docker-hub-service-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/8.png) + +Type MySQL in the search bar and click on the search button. + +![mysql-search](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/9.png) + +Select MySQL service. + +![mysql-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/10.png) + +CloudPlex automatically pulls all the tags and metadata of the image and populates default values of service (Service Id, Service Name, Namespace, Type) + + +##### Add new Environment Variables + +Click on the **Environment variables section** to add a new [environment variable](https:/kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). + +Cloudplex provides two types of variables ([Static](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container), [Dynamic](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container)). We are going to use Dynamic variable in this lab to use the ***Secret*** key in our container + +![dynamic-parameters](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/11.png) + +Select the secret service from the service drop-down and type MYSQL_ROOT_PASSWORD in the key field. + +![dynamic-variables-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/12.png) + +Expand ***Service Attributes*** and Secrets Data and select ***MYSQL_ROOT_PASSWORD***. Cloudplex automatically generates dynamic parameters for you. + +![dynamic-variables-key-select](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/13.png) + +Click on the save button to save the parameters. + +![save-button-2](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/14.png) + +A new environment variable with the key ***MYSQL_ROOT_PASSWORD*** will be added in the list of Environment Variables. + +![saved-environment-variable](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/15.png) + +Click on the back button on top of the configurations. + + +##### Add new Port + +[Ports](https:/kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port + +![Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/16.png) + +Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. + +![Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/17.png) + +Click on the save button to save the service. + +![service-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/18.png) + +#### Configure Probing + +Now that you have created a MySQL container and a CloudPlex secret service, let’s configure probing + +Kubernetes liveness and readiness probes can be used to make a service more robust and more resilient, by reducing operational issues and improving the quality of service. + +Click on the ***Advance Configurations*** and then Click on the ***Probing*** section to expand and Configure Probing for your service + +![Probing](images/probing.gif) + +##### Readiness Probe + +Kubernetes uses readiness probes to decide when the container is available for accepting traffic. A pod is considered ready when all of its containers are ready. + +Lets configure readiness probe first, Select ***Exec*** from handler dropdown and pass the following command. + +```yaml +sh +-c +mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD} +``` + +![readiness-prbing](images/readiness.png) + +Configure the other configurations using the following mentioned values + +```yaml + +Initial Delay Seconds: 5 +Timeout Seconds: 1 +Period Seconds: 10 +Success Threshold: 1 +Failure Threshold: 3 +``` +All field descriptions are available on the platform once you hover on the field. + +![readiness-probing-values](images/readiness-values.png) + +##### Liveness Probe + +Kubernetes uses liveness probes to know when to restart a container. If a container is unresponsive—due to some issue, restarting the container can make the application more available. + +Lets configure the liveness probe next. Select ***Exec*** from handler dropdown and pass the following command. + +```yaml +sh +-c +mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD} +``` + +![liveness-probing](images/liveness.png) + +Configure the other configurations using the following mentioned values + +```yaml + +Initial Delay Seconds: 30 +Timeout Seconds: 5 +Period Seconds: 10 +Success Threshold: 1 +Failure Threshold: 5 +``` + +![liveness-probing-values](images/liveness-values.png) + + +#### Deploy Application + +Click on the **Deploy** button at the top right corner and select the ***Infrastruture*** from the drop down list of your deployed infrastructures, your deployment will start right after saving the application and it will redirect you to the logs tabs or you can save it by clicking on the ***Save*** button to deploy it later. + +In the log window, you can see the logs of your application. + +![app-deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/19.png) + +**!! Deployment will take around 2 minutes!!** + +You can see the status of the application you just deployed by clicking on the ***Status*** tab and click on Table view to see the realtime status of the services. + +![app-status](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/liveness%20and%20readiness/labs/probing/images/20.png) + + +#### Cleanup + +To avoid unnecessary costs, don’t forget to terminate your application when you are done. +Click on the Terminate button to terminate your application and dont forget to Terminate the infrastrusture(s) that you used to deploy this lab. + + +#### Conclusion + +Congratulations! you just completed this lab and learned how to run a ***My-SQL*** server with ***Probing*** on Kubernetes using Cloudplex platform \ No newline at end of file diff --git a/applications/persistent volumes/labs/mysqlPv/images/10.png b/applications/persistent volumes/labs/mysqlPv/images/10.png new file mode 100644 index 0000000..3d0adab Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/10.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/11.png b/applications/persistent volumes/labs/mysqlPv/images/11.png new file mode 100644 index 0000000..c04f812 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/11.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/12.png b/applications/persistent volumes/labs/mysqlPv/images/12.png new file mode 100644 index 0000000..a9dd7f2 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/12.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/13.png b/applications/persistent volumes/labs/mysqlPv/images/13.png new file mode 100644 index 0000000..6262ced Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/13.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/14.png b/applications/persistent volumes/labs/mysqlPv/images/14.png new file mode 100644 index 0000000..1a9cc08 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/14.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/15.png b/applications/persistent volumes/labs/mysqlPv/images/15.png new file mode 100644 index 0000000..42cf97c Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/15.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/16.png b/applications/persistent volumes/labs/mysqlPv/images/16.png new file mode 100644 index 0000000..1da9ba2 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/16.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/17.png b/applications/persistent volumes/labs/mysqlPv/images/17.png new file mode 100644 index 0000000..9668c4f Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/17.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/18.png b/applications/persistent volumes/labs/mysqlPv/images/18.png new file mode 100644 index 0000000..0aa9ebc Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/18.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/19.png b/applications/persistent volumes/labs/mysqlPv/images/19.png new file mode 100644 index 0000000..1800343 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/19.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/2.gif b/applications/persistent volumes/labs/mysqlPv/images/2.gif new file mode 100644 index 0000000..8fc2a16 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/2.gif differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/20.png b/applications/persistent volumes/labs/mysqlPv/images/20.png new file mode 100644 index 0000000..acf7bca Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/20.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/21.png b/applications/persistent volumes/labs/mysqlPv/images/21.png new file mode 100644 index 0000000..2ee4cb6 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/21.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/22.png b/applications/persistent volumes/labs/mysqlPv/images/22.png new file mode 100644 index 0000000..ec895f4 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/22.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/23.png b/applications/persistent volumes/labs/mysqlPv/images/23.png new file mode 100644 index 0000000..b5b6751 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/23.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/24.png b/applications/persistent volumes/labs/mysqlPv/images/24.png new file mode 100644 index 0000000..8e8f5a5 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/24.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/25.png b/applications/persistent volumes/labs/mysqlPv/images/25.png new file mode 100644 index 0000000..0aa9ebc Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/25.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/26.png b/applications/persistent volumes/labs/mysqlPv/images/26.png new file mode 100644 index 0000000..de5dcb8 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/26.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/27.png b/applications/persistent volumes/labs/mysqlPv/images/27.png new file mode 100644 index 0000000..4cbef96 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/27.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/28.png b/applications/persistent volumes/labs/mysqlPv/images/28.png new file mode 100644 index 0000000..c63e3af Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/28.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/29.png b/applications/persistent volumes/labs/mysqlPv/images/29.png new file mode 100644 index 0000000..7fdd62e Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/29.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/3.png b/applications/persistent volumes/labs/mysqlPv/images/3.png new file mode 100644 index 0000000..ce150c3 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/3.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/4.png b/applications/persistent volumes/labs/mysqlPv/images/4.png new file mode 100644 index 0000000..5ec887c Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/4.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/5.png b/applications/persistent volumes/labs/mysqlPv/images/5.png new file mode 100644 index 0000000..45f3619 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/5.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/6.gif b/applications/persistent volumes/labs/mysqlPv/images/6.gif new file mode 100644 index 0000000..c0e6d1c Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/6.gif differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/7.gif b/applications/persistent volumes/labs/mysqlPv/images/7.gif new file mode 100644 index 0000000..8a58323 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/7.gif differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/8.png b/applications/persistent volumes/labs/mysqlPv/images/8.png new file mode 100644 index 0000000..a25f1c1 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/8.png differ diff --git a/applications/persistent volumes/labs/mysqlPv/images/9.png b/applications/persistent volumes/labs/mysqlPv/images/9.png new file mode 100644 index 0000000..868bf35 Binary files /dev/null and b/applications/persistent volumes/labs/mysqlPv/images/9.png differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/app-info.png b/applications/persistent volumes/labs/mysqlPv/images/app-info.png similarity index 100% rename from kubernetes/persistent volumes/labs/mysqlPv/images/app-info.png rename to applications/persistent volumes/labs/mysqlPv/images/app-info.png diff --git a/kubernetes/persistent volumes/labs/mysqlPv/mysqlPv-metadata.json b/applications/persistent volumes/labs/mysqlPv/mysqlPv-metadata.json similarity index 100% rename from kubernetes/persistent volumes/labs/mysqlPv/mysqlPv-metadata.json rename to applications/persistent volumes/labs/mysqlPv/mysqlPv-metadata.json diff --git a/kubernetes/persistent volumes/labs/mysqlPv/mysqlPv.md b/applications/persistent volumes/labs/mysqlPv/mysqlPv.md similarity index 51% rename from kubernetes/persistent volumes/labs/mysqlPv/mysqlPv.md rename to applications/persistent volumes/labs/mysqlPv/mysqlPv.md index 0a2995a..4cf25d0 100644 --- a/kubernetes/persistent volumes/labs/mysqlPv/mysqlPv.md +++ b/applications/persistent volumes/labs/mysqlPv/mysqlPv.md @@ -2,48 +2,37 @@ In this lab, you will learn how to deploy a MySQL server using Cloudplex integrated Docker-Hub which will be used to pull pre-build MySQL image and use Persistent Volume to store data. -#### Cloud Provider +#### Prerequisite -CloudPlex platform gives you the freedom of choosing you any cloud provider among these four (AWS, AZURE, GCP and DO). Please select any of them to proceed. +If you want to deploy this lab, you need to deploy at least one infrastructure. We have labs on infrastructure as well, you can follow them to deploy infrastructure -#### Cloud Profile Credentials - -You have to provide your selected cloud credentials in order to further continue this lab. There are fields under each cloud provider tab, fill them out. - -Click on the **next** button on the top right corner. #### Add Application Info Give name to your application and specify the version, you can also give tags to your application of your choice. -![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/app-info.png) +![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/app-info.png) Click on the **next** button on the top right corner. #### Add Secret Service -CloudPlex platform provides a secret management service that provides the ability to store sensitive data such as passwords, tokens, and certificates in Cloudplex. Any data entered in this service is stored in a secure vault with at-rest encryption. This eventually becomes a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret) in a deployed application. +CloudPlex platform provides a secret management service that provides the ability to store sensitive data such as passwords, tokens, and certificates in Cloudplex. Any data entered in this service is stored in a secure vault with at-rest encryption. This eventually becomes a [Kubernetes Secret](https:/kubernetes.io/docs/concepts/configuration/secret) in a deployed application. To configure the service, Drag-n-drop **Secret service** from pallet to the canvas. -![secret-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/secret-service-drag.gif) +![secret-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/2.gif) Click on the service to open the configuration panel on the right side. The platform will populate the default values of service (Service Id, Service Name, Namespace) -Update Service Id and Service Name to ***mysql-secret*** - -![secret-service-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/mysqlsecret.png) - -By default, the type of secret is Opaque, you can choose different types according to your use case. - -![secret-service-type-opaque](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/secret-type.png) +![secret-service-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/3.png) Click on Add secret string and type ***MYSQL_ROOT_PASSWORD*** in key and the Password in the value field. For this lab, type (the password as shown) ***5dzo2MsriVJNYTTtud8gOyDc3A*** in the value field. -![secret-key-password](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/secret-password.png) +![secret-key-password](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/4.png) ```yaml key : MYSQL_ROOT_PASSWORD @@ -52,115 +41,113 @@ value : 5dzo2MsriVJNYTTtud8gOyDc3A Click on save button to save service -![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/save-button.png) +![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/5.png) #### Configure the MySQL Container Drag-n-drop the ***Docker Hub*** service from pallet to the canvas. -![docker-hub-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/docker-hub-service.gif) +![docker-hub-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/6.gif) Drag the arrow from ***Secret*** service to ***Container*** service. -![dockerhub-secret-link](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/link-docker-secret.gif) +![dockerhub-secret-link](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/7.gif) Click on the service to open the configuration panel on the right side. -![docker-hub-service-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/service-configuration.png) +![docker-hub-service-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/8.png) Type MySQL in the search bar and click on the search button. -![mysql-search](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/mysql-search.png) +![mysql-search](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/9.png) Select MySQL service. -![mysql-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/mysql-service.png) +![mysql-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/10.png) CloudPlex automatically pulls all the tags and metadata of the image and populates default values of service (Service Id, Service Name, Namespace, Type) ##### Add Environment Variables -Click on the **Environment variables section** to add a new [environment variable](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). +Click on the **Environment variables section** to add a new [environment variable](https:/kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). Cloudplex provides two types of variables ([Static](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container), [Dynamic](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container)). We are going to use Dynamic variable in this lab to use the ***Secret*** key in our container -![dynamic-parameters](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/dynamic-parameters.gif) +![dynamic-parameters](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/11.png) -Select mysql-secret from the service drop-down and type MYSQL_ROOT_PASSWORD in the key field. +Select the secret service from the service drop-down and type MYSQL_ROOT_PASSWORD in the key field. -![dynamic-variables-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/dynamic-variables.png) +![dynamic-variables-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/12.png) Expand ***Service Attributes*** and Secrets Data and select ***MYSQL_ROOT_PASSWORD***. Cloudplex automatically generates dynamic parameters for you. -![dynamic-variables-key-select](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/dynamic-variables-key-select.png) +![dynamic-variables-key-select](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/13.png) Click on the save button to save the parameters. -![save-button-2](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/save-button-2.png) +![save-button-2](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/14.png) A new environment variable with the key ***MYSQL_ROOT_PASSWORD*** will be added in the list of Environment Variables. -![saved-environment-variable](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/saved-environment-variable.png) +![saved-environment-variable](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/15.png) Click on the back button on top of the configurations. -![back-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/back-button.png) - ##### Add new Port -[Ports](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port +[Ports](https:/kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port -![Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/add-ports-01.png) +![Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/16.png) Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. -![Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/add-ports-02.png) +![Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/17.png) Click on the save button to save the service. -![service-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/save-button-3.png) +![service-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/18.png) #### Add Volume Service -A [PersistentVolume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) is a piece of storage in the cluster that has been dynamically provisioned by Kubernetes using a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes). +A [PersistentVolume](https:/kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) is a piece of storage in the cluster that has been dynamically provisioned by Kubernetes using a [StorageClass](https:/kubernetes.io/docs/concepts/storage/storage-classes). MySQL service used this block of storage to store its data. To add a persistent storage to your ***MySQL Service***, Click on the MySQL service to open the service configurations on the right side and click on ***Advanced Configurations*** -![container-service-advanced-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/advanced-configurations.png) +![container-service-advanced-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/19.png) Select container volumes. CloudPlex has integrated with all the volumes and provides an easy to use interface for all of them. -![container-volumes](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/container-volumes.png) +![container-volumes](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/20.png) For this lab, let's select persistent volume. Select Volume from service dropdown. If you don't have any volume available on canvas, you can create a new volume config by providing simple configurations. Click on new from the service dropdown and CloudPlex will take you to the volume configurations panel. -![new-volume-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/new-volume-service.png) +![new-volume-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/21.png) CloudPlex automatically populates default values of service (Service Id, Service Name, Namespace) -Enter desired capacity ***10Gi*** and Reclaim policy ***delete*** from dropdown. The reclaim policy for a PersistentVolume tells the cluster what to do with the volume after it has been released of its claim +Enter desired capacity 10Gi and Reclaim policy Delete from dropdown. The reclaim policy for a PersistentVolume tells the cluster what to do with the volume after it has been released of its claim -![policy-and-capacity](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/policy-capacity.png) +![policy-and-capacity](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/22.png) Click on the save button to save the configuration -![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/save-button-3.png) +![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/23.png) -Now you are back to your container service where you left it, Provide volume mount path. +Now you are back to your container service where you left it, Click on the label of the attached volume and provide mount path. -![mount-path](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/mount-path.png) +![mount-path](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/24.png) Click on the save button to save the service. -![save-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/lab-03-save.png) +![save-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/25.png) All the Kubernetes manifest required to create a persistent volume (persistent volume claim, storageclass) is automatically created by the platform. @@ -169,23 +156,27 @@ A [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent #### Deploy Application -Click on the **Deploy** button at the top right corner, your deployment will start right after saving the application and it will redirect you to the logs tabs. +Click on the **Deploy** button at the top right corner and select the ***Infrastruture*** from the drop down list of your deployed infrastructures, your deployment will start right after saving the application and it will redirect you to the logs tabs or you can save it by clicking on the ***Save*** button to deploy it later. -In the log window, you can see the logs of your infrastructure, Kubernetes Cluster and Application which you have deployed. +In the log window, you can see the logs of your application. -![app-deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/app-deployment-logs.png) +![app-deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/26.png) -**!! Deployment will take around 15 minutes!!** +**!! Deployment will take around 2 minutes!!** You can see the status of the application you just deployed by clicking on the app tab and click on Table view to see the realtime status of the services. -![app-status](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/app-status.png) +![app-status](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/persistent%20volumes/labs/mysqlPv/images/28.png) #### Cleanup To avoid unnecessary costs, don’t forget to terminate your application when you are done. -Click on the terminate button to delete all your resources from Cloud. +Click on the Terminate button to terminate your application and dont forget to Terminate the infrastrusture(s) that you used to deploy this lab. + + +#### Conclusion + +Congratulations! you just completed this lab and learned how to run a ***My-SQL*** server with ***Persistent Volume*** on Kubernetes using Cloudplex platform. -![app-cleanup-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/persistent%20volumes/labs/mysqlPv/images/termination.png) diff --git a/kubernetes/pods and containers/labs/helloworld/helloworld-metadata.json b/applications/pods and containers/labs/helloworld/helloworld-metadata.json similarity index 100% rename from kubernetes/pods and containers/labs/helloworld/helloworld-metadata.json rename to applications/pods and containers/labs/helloworld/helloworld-metadata.json diff --git a/applications/pods and containers/labs/helloworld/helloworld.md b/applications/pods and containers/labs/helloworld/helloworld.md new file mode 100644 index 0000000..bd0f433 --- /dev/null +++ b/applications/pods and containers/labs/helloworld/helloworld.md @@ -0,0 +1,136 @@ +### Objective + +This Lab will help you understand the concept of Pods and Containers by running a simple HelloWorld Application from CloudPlex. + +### Code Repository + +​https://github.com/cloudplex-io/hello-world + + +#### Prerequisite + +If you want to deploy this lab, you need to deploy at least one infrastructure. We have labs on infrastructure as well, you can follow them to deploy infrastructure + + +### Add Application Info + +Give name to your application and specify the version, you can also give tags to your application of your choice. + +![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/app-info.png) + +Click on the **next** button on the top right corner. + +### Add Service + +CloudPlex has integrated with [Docker Hub](https://hub.docker.com/) registry which allows users to access prebuilt images. You can fetch images metadata (Environment variables, Ports). + +Drag **Docker Hub** service from palette and drop it on canvas. + +![ezgif.com-video-to-gif](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/2.gif) + + + +### Search Hello World Service + +Click on the service to show search panel of the service from Docker Hub. + +- Type **[cloudplexng/helloworld](https://hub.docker.com/r/cloudplexng/helloworld)** +- Select Community from the filter +- Now, click on the search button and select **helloworld** service. + + + +![helloworld-service-dockerhub](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/3.png) + + + +CloudPlex will select the latest version of the image. + +![Lab01-Add-Tag](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/4.png) + + + +### Add Environment Variables + +They are required to expose information to containers running in the Pod. Click on the **Environment variables section** to add a new [environment variable](https:/kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). + +![Lab01-Add-EnvironmentVariable-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/5.png) + + + +CloudPlex provides two types of variables (**Static, Dynamic**). Let's add a static environment variable. + +![Lab01-Add-EnvironmentVariable-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/6.png) + +```bash +Key = PORT +Value = 3000 +``` + +![Lab01-Add-EnvironmentVariable-03](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/7.png) + +Click on the back button on top of the configurations. + +### Add new Port + +[Ports](https:/kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port + +![Lab01-Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/8.png) + +Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. + +![Lab01-Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/9.png) + +Click on the back button on top of the configurations. + +### Enable Ingress Traffic + +​[Ingress gateway](https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/) will allow you to access service from the internet. Click on the Ingress section to enable ingress traffic. + +![Lab01-Ingress-traffic-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/10.png) + +Click on the back button on top of the configurations. + +Click on the **Save** button at the bottom right corner to save your service + +![Lab01-save-service-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/11.png) + + +### Deploy Application + +Click on the **Deploy** button at the top right corner and select the ***infrastruture*** from the drop down list of your deployed infrastructures, your deployment will start right after saving the application and it will redirect you to the logs tabs or you can save it by clicking on the ***Save*** button to deploy it later. + +![deploy-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/13.png) + +### Your Application Logs + +In the log window, you can see the logs of your application. + +**!! Deployment will take around 2 minutes!!** + +![Lab01-Deployment-Logs-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/14.png) + + + +### Accessing Your Application + +Click on the Status tab to get Ingress gateway Endpoint +Copy Ingress Endpoint and Paste in browser new Tab. + + +### Expected Result + +You will get this screen by copying that ingress Endpoint in your browser + +![Lab01-browser-output](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/pods%20and%20containers/labs/helloworld/images/17.png) + + + +### Cleanup + +Click on the Terminate button to terminate your application and dont forget to Terminate the infrastrusture(s) that you used to deploy this lab. + +### Conclusion + +Congratulations! you just completed this lab and learned how to deploy a Hello-World app on Kubernetes using Cloudplex platform. + diff --git a/applications/pods and containers/labs/helloworld/images/10.png b/applications/pods and containers/labs/helloworld/images/10.png new file mode 100644 index 0000000..e4538af Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/10.png differ diff --git a/applications/pods and containers/labs/helloworld/images/11.png b/applications/pods and containers/labs/helloworld/images/11.png new file mode 100644 index 0000000..14cadb7 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/11.png differ diff --git a/applications/pods and containers/labs/helloworld/images/12.png b/applications/pods and containers/labs/helloworld/images/12.png new file mode 100644 index 0000000..fa27b54 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/12.png differ diff --git a/applications/pods and containers/labs/helloworld/images/13.png b/applications/pods and containers/labs/helloworld/images/13.png new file mode 100644 index 0000000..5077094 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/13.png differ diff --git a/applications/pods and containers/labs/helloworld/images/14.png b/applications/pods and containers/labs/helloworld/images/14.png new file mode 100644 index 0000000..de5dcb8 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/14.png differ diff --git a/applications/pods and containers/labs/helloworld/images/15.png b/applications/pods and containers/labs/helloworld/images/15.png new file mode 100644 index 0000000..419715d Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/15.png differ diff --git a/applications/pods and containers/labs/helloworld/images/16.png b/applications/pods and containers/labs/helloworld/images/16.png new file mode 100644 index 0000000..bb8c729 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/16.png differ diff --git a/applications/pods and containers/labs/helloworld/images/17.png b/applications/pods and containers/labs/helloworld/images/17.png new file mode 100644 index 0000000..083e42d Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/17.png differ diff --git a/applications/pods and containers/labs/helloworld/images/2.gif b/applications/pods and containers/labs/helloworld/images/2.gif new file mode 100644 index 0000000..fed2046 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/2.gif differ diff --git a/applications/pods and containers/labs/helloworld/images/3.png b/applications/pods and containers/labs/helloworld/images/3.png new file mode 100644 index 0000000..f0a49ef Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/3.png differ diff --git a/applications/pods and containers/labs/helloworld/images/4.png b/applications/pods and containers/labs/helloworld/images/4.png new file mode 100644 index 0000000..90ce071 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/4.png differ diff --git a/applications/pods and containers/labs/helloworld/images/5.png b/applications/pods and containers/labs/helloworld/images/5.png new file mode 100644 index 0000000..1b9db56 Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/5.png differ diff --git a/applications/pods and containers/labs/helloworld/images/6.png b/applications/pods and containers/labs/helloworld/images/6.png new file mode 100644 index 0000000..6ac76ff Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/6.png differ diff --git a/applications/pods and containers/labs/helloworld/images/7.png b/applications/pods and containers/labs/helloworld/images/7.png new file mode 100644 index 0000000..d44832f Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/7.png differ diff --git a/applications/pods and containers/labs/helloworld/images/8.png b/applications/pods and containers/labs/helloworld/images/8.png new file mode 100644 index 0000000..1afb8ea Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/8.png differ diff --git a/applications/pods and containers/labs/helloworld/images/9.png b/applications/pods and containers/labs/helloworld/images/9.png new file mode 100644 index 0000000..cd7055f Binary files /dev/null and b/applications/pods and containers/labs/helloworld/images/9.png differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/app-info.png b/applications/pods and containers/labs/helloworld/images/app-info.png similarity index 100% rename from kubernetes/pods and containers/labs/helloworld/images/app-info.png rename to applications/pods and containers/labs/helloworld/images/app-info.png diff --git a/applications/rbac/labs/rbac/images/1.png b/applications/rbac/labs/rbac/images/1.png new file mode 100644 index 0000000..a8a1e0c Binary files /dev/null and b/applications/rbac/labs/rbac/images/1.png differ diff --git a/applications/rbac/labs/rbac/images/10.png b/applications/rbac/labs/rbac/images/10.png new file mode 100644 index 0000000..0674afe Binary files /dev/null and b/applications/rbac/labs/rbac/images/10.png differ diff --git a/applications/rbac/labs/rbac/images/11.png b/applications/rbac/labs/rbac/images/11.png new file mode 100644 index 0000000..cb39df9 Binary files /dev/null and b/applications/rbac/labs/rbac/images/11.png differ diff --git a/applications/rbac/labs/rbac/images/12.png b/applications/rbac/labs/rbac/images/12.png new file mode 100644 index 0000000..40375e3 Binary files /dev/null and b/applications/rbac/labs/rbac/images/12.png differ diff --git a/applications/rbac/labs/rbac/images/13.png b/applications/rbac/labs/rbac/images/13.png new file mode 100644 index 0000000..5077094 Binary files /dev/null and b/applications/rbac/labs/rbac/images/13.png differ diff --git a/applications/rbac/labs/rbac/images/14.png b/applications/rbac/labs/rbac/images/14.png new file mode 100644 index 0000000..de5dcb8 Binary files /dev/null and b/applications/rbac/labs/rbac/images/14.png differ diff --git a/applications/rbac/labs/rbac/images/15.png b/applications/rbac/labs/rbac/images/15.png new file mode 100644 index 0000000..86b3bef Binary files /dev/null and b/applications/rbac/labs/rbac/images/15.png differ diff --git a/applications/rbac/labs/rbac/images/16.png b/applications/rbac/labs/rbac/images/16.png new file mode 100644 index 0000000..43d8e72 Binary files /dev/null and b/applications/rbac/labs/rbac/images/16.png differ diff --git a/applications/rbac/labs/rbac/images/17.png b/applications/rbac/labs/rbac/images/17.png new file mode 100644 index 0000000..78a0eef Binary files /dev/null and b/applications/rbac/labs/rbac/images/17.png differ diff --git a/applications/rbac/labs/rbac/images/18.png b/applications/rbac/labs/rbac/images/18.png new file mode 100644 index 0000000..7abba69 Binary files /dev/null and b/applications/rbac/labs/rbac/images/18.png differ diff --git a/applications/rbac/labs/rbac/images/19.png b/applications/rbac/labs/rbac/images/19.png new file mode 100644 index 0000000..c75d97c Binary files /dev/null and b/applications/rbac/labs/rbac/images/19.png differ diff --git a/applications/rbac/labs/rbac/images/2.gif b/applications/rbac/labs/rbac/images/2.gif new file mode 100644 index 0000000..fed2046 Binary files /dev/null and b/applications/rbac/labs/rbac/images/2.gif differ diff --git a/applications/rbac/labs/rbac/images/2.png b/applications/rbac/labs/rbac/images/2.png new file mode 100644 index 0000000..0410603 Binary files /dev/null and b/applications/rbac/labs/rbac/images/2.png differ diff --git a/applications/rbac/labs/rbac/images/20.png b/applications/rbac/labs/rbac/images/20.png new file mode 100644 index 0000000..56b61b3 Binary files /dev/null and b/applications/rbac/labs/rbac/images/20.png differ diff --git a/applications/rbac/labs/rbac/images/21.png b/applications/rbac/labs/rbac/images/21.png new file mode 100644 index 0000000..30a4937 Binary files /dev/null and b/applications/rbac/labs/rbac/images/21.png differ diff --git a/applications/rbac/labs/rbac/images/3.png b/applications/rbac/labs/rbac/images/3.png new file mode 100644 index 0000000..692696b Binary files /dev/null and b/applications/rbac/labs/rbac/images/3.png differ diff --git a/applications/rbac/labs/rbac/images/4.png b/applications/rbac/labs/rbac/images/4.png new file mode 100644 index 0000000..f60716c Binary files /dev/null and b/applications/rbac/labs/rbac/images/4.png differ diff --git a/applications/rbac/labs/rbac/images/5.png b/applications/rbac/labs/rbac/images/5.png new file mode 100644 index 0000000..630a3ec Binary files /dev/null and b/applications/rbac/labs/rbac/images/5.png differ diff --git a/applications/rbac/labs/rbac/images/6.png b/applications/rbac/labs/rbac/images/6.png new file mode 100644 index 0000000..a28764f Binary files /dev/null and b/applications/rbac/labs/rbac/images/6.png differ diff --git a/applications/rbac/labs/rbac/images/7.png b/applications/rbac/labs/rbac/images/7.png new file mode 100644 index 0000000..4f0e033 Binary files /dev/null and b/applications/rbac/labs/rbac/images/7.png differ diff --git a/applications/rbac/labs/rbac/images/8.png b/applications/rbac/labs/rbac/images/8.png new file mode 100644 index 0000000..ba39641 Binary files /dev/null and b/applications/rbac/labs/rbac/images/8.png differ diff --git a/applications/rbac/labs/rbac/images/9.png b/applications/rbac/labs/rbac/images/9.png new file mode 100644 index 0000000..965ae96 Binary files /dev/null and b/applications/rbac/labs/rbac/images/9.png differ diff --git a/applications/rbac/labs/rbac/images/ingress.png b/applications/rbac/labs/rbac/images/ingress.png new file mode 100644 index 0000000..ba37a7d Binary files /dev/null and b/applications/rbac/labs/rbac/images/ingress.png differ diff --git a/applications/rbac/labs/rbac/rbac-metadata.json b/applications/rbac/labs/rbac/rbac-metadata.json new file mode 100644 index 0000000..a4dfd40 --- /dev/null +++ b/applications/rbac/labs/rbac/rbac-metadata.json @@ -0,0 +1,6 @@ +{ + "title": "RBAC Lab", + "description": "This Lab will help you understand how to define RBAC policies for your Kubernetes Application.", + "complexity": "easy", + "time": "00:20:00" +} \ No newline at end of file diff --git a/applications/rbac/labs/rbac/rbac.md b/applications/rbac/labs/rbac/rbac.md new file mode 100644 index 0000000..1fcb4d2 --- /dev/null +++ b/applications/rbac/labs/rbac/rbac.md @@ -0,0 +1,151 @@ +### Objective + +This Lab will help you understand how to define RBAC policies for your Kubernetes Application. + + +### Prerequisite + +If you want to deploy this lab, you need to deploy at least one infrastrture. We have labs on infrastrture as well, you can follow them to deploy infrastructure + + +### Add Application Info + +Give name to your application and specify the version, you can also give tags to your application of your choice. + +![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/1.png) + +Click on the **next** button on the top right corner. + + +CloudPlex has integrated with [Docker Hub](https://hub.docker.com/) registry which allows users to access prebuilt images. You can fetch images metadata (Environment variables, Ports). + +Drag **Docker Hub** service from palette and drop it on canvas. + +![ezgif.com-video-to-gif](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/2.gif) + + +### Search RBAC Service + +Click on the service to show search panel of the service from Docker Hub. + +- Type **[cloudplexng/k8s-rbac](https://hub.docker.com/r/cloudplexng/k8s-rbac)** +- Select Community from the filter +- Now, click on the search button and select **Cloudplexng/K8s-Rbac** service. + +![rbac-service-dockerhub](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/3.png) + +Cloudplex will fetch all the details and the latest tag of the image itself. + + +### Add new Port + +[Ports](https:/kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port + +![Lab04-Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/4.png) + +Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. + +![Lab04-Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/5.png) + +Click on the back button on top of the configurations. + +### Enable Ingress Traffic + +​[Ingress gateway](https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/) will allow you to access service from the internet. Click on the Ingress section to enable ingress traffic. + +![Lab04-Ingress-traffic-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/6.png) + +Click on the back button on top of the configurations. + + +### Enable RBAC Configurations + +Click on the ***Advance Configurations*** to enable RBAC and add Policies + +![advance-configurations](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/8.png) + +Toggle the Enable RBAC button under the RBAC section. + +![Enable-Rbac](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/10.png) + +CloudPlex supports ***Role***, ***Role Binding***, ***Cluster Role***, and ***Cluster Role Binding***, see [Kubernetes RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) to learn more about these. + +For this lab, we are going to configure a ***Role*** and the rest of the configurations will be added automitically by Cloudplex. + +Select an existing ***role*** available on the canvas from the dropdown, if you don’t have click on New. + +![new-role](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/11.png) + +CloudPlex has populated default values of service (Service Id, Service Name, Namespace) + +![pre-settings](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/12.png) + +Let’s add resources and actions. Click on the ***Add Resource Based Rules*** button + +![add-resource-btn](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/13.png) + + +Select ***Secrets*** from resource and ***GET*** and ***LIST*** from actions. + +![rbac-conf](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/18.png) + +Click on ***Add API Groups*** button and add *. + +![api-group](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/19.png) + +Cloudplex will create [Service Account](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#service-account-permissions) which will get attached to the running Kubernetes Pod to access the cluster resources. + +Now Click on the ***Save*** button to save the role service. + +![save-btn](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/20.png) + +Click again ***Save*** to save the main Dockerhub service that we dropped before. + + +### Deploy Application + +Click on the **Deploy** button at the top right corner and select the ***infrastruture*** from the drop down list of your deployed infrastructures, your deployment will start right after saving the application and it will redirect you to the logs tabs or you can save it by clicking on the ***Save*** button to deploy it later. + +![deploy-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/13.png) + + +### Your Application Logs + +In the log window, you can see the logs of your application. + +**!! Deployment will take around 2 minutes!!** + +![Lab04-Deployment-Logs-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/14.png) + + +### Accessing Your Application + +Click on the Status tab to get Ingress gateway Endpoint +Copy Ingress Endpoint and Paste in browser new Tab. + +Go to the following route. +```yaml +Ingress Endpoint/permissions + +``` + +![app-access-endpoint](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/ingress.png) + + +### Expected Result + +You will get this screen by copying that ingress Endpoint in your browser + +![Lab04-browser-output](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/rbac/labs/rbac/images/21.png) + + +### Cleanup + +Click on the Terminate button to terminate your application and dont forget to Terminate the infrastrusture(s) that you used to deploy this lab. + + +### Conclusion + +Congratulations! you just completed this lab and learned how to define RBAC poliy for your Kubernetes app using Cloudplex platform. + + diff --git a/applications/secrets/labs/mysqlSecret/images/1.png b/applications/secrets/labs/mysqlSecret/images/1.png new file mode 100644 index 0000000..0c7d5d3 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/1.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/10.png b/applications/secrets/labs/mysqlSecret/images/10.png new file mode 100644 index 0000000..3d0adab Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/10.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/11.png b/applications/secrets/labs/mysqlSecret/images/11.png new file mode 100644 index 0000000..c04f812 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/11.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/12.png b/applications/secrets/labs/mysqlSecret/images/12.png new file mode 100644 index 0000000..a9dd7f2 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/12.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/13.png b/applications/secrets/labs/mysqlSecret/images/13.png new file mode 100644 index 0000000..6262ced Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/13.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/14.png b/applications/secrets/labs/mysqlSecret/images/14.png new file mode 100644 index 0000000..1a9cc08 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/14.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/15.png b/applications/secrets/labs/mysqlSecret/images/15.png new file mode 100644 index 0000000..42cf97c Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/15.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/16.png b/applications/secrets/labs/mysqlSecret/images/16.png new file mode 100644 index 0000000..1da9ba2 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/16.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/17.png b/applications/secrets/labs/mysqlSecret/images/17.png new file mode 100644 index 0000000..9668c4f Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/17.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/18.png b/applications/secrets/labs/mysqlSecret/images/18.png new file mode 100644 index 0000000..0aa9ebc Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/18.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/19.png b/applications/secrets/labs/mysqlSecret/images/19.png new file mode 100644 index 0000000..de5dcb8 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/19.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/2.gif b/applications/secrets/labs/mysqlSecret/images/2.gif new file mode 100644 index 0000000..8fc2a16 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/2.gif differ diff --git a/applications/secrets/labs/mysqlSecret/images/20.png b/applications/secrets/labs/mysqlSecret/images/20.png new file mode 100644 index 0000000..82de2b9 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/20.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/21.png b/applications/secrets/labs/mysqlSecret/images/21.png new file mode 100644 index 0000000..08fe13b Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/21.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/3.png b/applications/secrets/labs/mysqlSecret/images/3.png new file mode 100644 index 0000000..ce150c3 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/3.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/4.png b/applications/secrets/labs/mysqlSecret/images/4.png new file mode 100644 index 0000000..5ec887c Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/4.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/5.png b/applications/secrets/labs/mysqlSecret/images/5.png new file mode 100644 index 0000000..45f3619 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/5.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/6.gif b/applications/secrets/labs/mysqlSecret/images/6.gif new file mode 100644 index 0000000..c0e6d1c Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/6.gif differ diff --git a/applications/secrets/labs/mysqlSecret/images/7.gif b/applications/secrets/labs/mysqlSecret/images/7.gif new file mode 100644 index 0000000..8a58323 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/7.gif differ diff --git a/applications/secrets/labs/mysqlSecret/images/8.png b/applications/secrets/labs/mysqlSecret/images/8.png new file mode 100644 index 0000000..a25f1c1 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/8.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/9.png b/applications/secrets/labs/mysqlSecret/images/9.png new file mode 100644 index 0000000..868bf35 Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/9.png differ diff --git a/applications/secrets/labs/mysqlSecret/images/app-info.png b/applications/secrets/labs/mysqlSecret/images/app-info.png new file mode 100644 index 0000000..20d43af Binary files /dev/null and b/applications/secrets/labs/mysqlSecret/images/app-info.png differ diff --git a/kubernetes/secrets/labs/mysqlSecret/mysqlSecret-metadata.json b/applications/secrets/labs/mysqlSecret/mysqlSecret-metadata.json similarity index 100% rename from kubernetes/secrets/labs/mysqlSecret/mysqlSecret-metadata.json rename to applications/secrets/labs/mysqlSecret/mysqlSecret-metadata.json diff --git a/applications/secrets/labs/mysqlSecret/mysqlSecret.md b/applications/secrets/labs/mysqlSecret/mysqlSecret.md new file mode 100644 index 0000000..9e243ae --- /dev/null +++ b/applications/secrets/labs/mysqlSecret/mysqlSecret.md @@ -0,0 +1,140 @@ +#### Objective + +In this lab, you will learn how to deploy a MySQL server using Cloudplex integrated Docker-Hub which will be used to pull pre-build MySQL image and use Cloudplex secret service to store Kubernetes Secret. + + +#### Prerequisite + +If you want to deploy this lab, you need to deploy at least one infrastructure. We have labs on infrastructure as well, you can follow them to deploy infrastructure + + +#### Add Application Info + +Give name to your application and specify the version, you can add tags to your application as well + +![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/1.png) + +Click on the **next** button on the top right corner. + + +#### Add Secret Service + +CloudPlex platform provides a secret management service that provides the ability to store sensitive data such as passwords, tokens, and certificates in Cloudplex. Any data entered in this service is stored in a secure vault with at-rest encryption. This eventually becomes a [Kubernetes Secret](https:/kubernetes.io/docs/concepts/configuration/secret) in a deployed application. + +To configure the service, Drag-n-drop **Secret service** from pallet to the canvas. + +![secret-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/2.gif) + +Click on the service to open the configuration panel on the right side. + +The platform will populate the default values of service (Service Id, Service Name, Namespace) + +![secret-service-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/3.png) + + +Click on Add secret string and type ***MYSQL_ROOT_PASSWORD*** in key and the Password in the value field. For this lab, type (the password as shown) ***5dzo2MsriVJNYTTtud8gOyDc3A*** in the value field. + +![secret-key-password](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/4.png) + +```yaml +key : MYSQL_ROOT_PASSWORD +value : 5dzo2MsriVJNYTTtud8gOyDc3A +``` + +Click on save button to save service + +![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/5.png) + + +#### Configure the MySQL Container + +Drag-n-drop the ***Docker Hub*** service from pallet to the canvas. + +![docker-hub-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/6.gif) + +Drag the arrow from ***Secret*** service to ***Container*** service. + +![dockerhub-secret-link](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/7.gif) + +Click on the service to open the configuration panel on the right side. + +![docker-hub-service-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/8.png) + +Type MySQL in the search bar and click on the search button. + +![mysql-search](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/9.png) + +Select MySQL service. + +![mysql-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/10.png) + +CloudPlex automatically pulls all the tags and metadata of the image and populates default values of service (Service Id, Service Name, Namespace, Type) + + +##### Add new Environment Variables + +Click on the **Environment variables section** to add a new [environment variable](https:/kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). + +Cloudplex provides two types of variables ([Static](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container), [Dynamic](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container)). We are going to use Dynamic variable in this lab to use the ***Secret*** key in our container + +![dynamic-parameters](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/11.png) + +Select the secret service from the service drop-down and type MYSQL_ROOT_PASSWORD in the key field. + +![dynamic-variables-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/12.png) + +Expand ***Service Attributes*** and Secrets Data and select ***MYSQL_ROOT_PASSWORD***. Cloudplex automatically generates dynamic parameters for you. + +![dynamic-variables-key-select](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/13.png) + +Click on the save button to save the parameters. + +![save-button-2](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/14.png) + +A new environment variable with the key ***MYSQL_ROOT_PASSWORD*** will be added in the list of Environment Variables. + +![saved-environment-variable](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/15.png) + +Click on the back button on top of the configurations. + + +##### Add new Port + +[Ports](https:/kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port + +![Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/16.png) + +Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. + +![Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/17.png) + +Click on the save button to save the service. + +![service-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/18.png) + + +#### Deploy Application + +Click on the **Deploy** button at the top right corner and select the ***Infrastruture*** from the drop down list of your deployed infrastructures, your deployment will start right after saving the application and it will redirect you to the logs tabs or you can save it by clicking on the ***Save*** button to deploy it later. + +In the log window, you can see the logs of your application. + +![app-deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/19.png) + +**!! Deployment will take around 2 minutes!!** + +You can see the status of the application you just deployed by clicking on the ***Status*** tab and click on Table view to see the realtime status of the services. + +![app-status](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/applications/secrets/labs/mysqlSecret/images/20.png) + + +#### Cleanup + +To avoid unnecessary costs, don’t forget to terminate your application when you are done. +Click on the Terminate button to terminate your application and dont forget to Terminate the infrastrusture(s) that you used to deploy this lab. + + +#### Conclusion + +Congratulations! you just completed this lab and learned how to run a ***My-SQL*** server with ***Secrets*** on Kubernetes using Cloudplex platform. + diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged-metadata.json b/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged-metadata.json new file mode 100644 index 0000000..8bb6bb6 --- /dev/null +++ b/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged-metadata.json @@ -0,0 +1,6 @@ +{ + "title": "AKS Provider Managed Infrastructure with KubePlex", + "description": "How to create and use your AKS cluster.", + "complexity":"intermediate", + "time":"00:40:00" +} diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged.md b/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged.md new file mode 100644 index 0000000..45d34ac --- /dev/null +++ b/infrastructures/provider managed/labs/AKSProviderManaged/AKSProviderManaged.md @@ -0,0 +1,71 @@ +#### Objective + +In this lab, you will learn how to create provider managed kubernetes cluster on azure. + +#### Set up Basic Information + +Provide cloud provider credentials and save them as profile for future use.(you must have an account on Azure in order to use it). + +![user-profile](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/3.png) + +Cloudplex platform provide an easy way to save all your [Secret Credentials](https://docs.cloudplex.io/#/pages/user-guide/components/credentials-profile/credentials-profile?id=credentials-profile) in a secure vault. + +Select the region & zone where you want to create your cluster. + +You can select either an existing resource group, if you have one; or create a new resource group. + +Click on the ***Next*** button. + + +#### Configure Network + +CloudPlex automatically configures a complete network for you. But You can further customize your network based on your requirements. + +![configured-network](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/4.png) + +Clicking on the ***next*** button will take you to the Configuration tab. + +#### Configure AKS Cluster Configuration + +Cloudplex gives you three levels of configuration options, “simple”, “advanced”, and “expert”. + +In simple mode, CloudPlex requires machine type and number of nodes from the user and the rest of the configuration will be populated by the platform. + +In advanced mode, you are able to customize your Kubernetes cluster including addition of multiple node pools, selection of Kubernetes version, and other features. Details vary from cloud to cloud. + +In expert mode, you are also able to customize networking and other complex features. Details vary from cloud to cloud. + +CloudPlex selects simple mode as the default option. We are using the default option for this Lab, + +![default-kuberntes-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/5.png) + + +##### provision your configured Infrastructure + +Click on the Start button to start deploying the infrastructure you have created on Azure. + +![start-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/6.png) + +You will see the logs as the infrastructure deployment progresses. + +![deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/7.png) + +Click on the cluster tab to see the live status of your cluster. + + +***Cluster live status*** is a complete dashboard that gives you the ***live status*** about the health and consumption of the nodes in your cluster + +![live-status-health](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/8.png) + +To avoid unnecessary costs, dont forget to terminate your infrastructure when you are done. + +Click on the ***terminate*** button to delete all your resources from Azure. + +![terminate-btn](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/provider%20managed/labs/AKSProviderManaged/images/9.png) + + +#### Conclusion + +You just created a provider-managed Kubernetes cluster using CloudPlex, the Kubernetes Application Platform for Developers. + + diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/1.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/1.png new file mode 100644 index 0000000..972d4f8 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/1.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/2.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/2.png new file mode 100644 index 0000000..b6bd487 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/2.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/3.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/3.png new file mode 100644 index 0000000..f601036 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/3.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/4.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/4.png new file mode 100644 index 0000000..05ef180 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/4.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/5.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/5.png new file mode 100644 index 0000000..9bc7833 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/5.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/6.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/6.png new file mode 100644 index 0000000..e97c2d1 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/6.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/7.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/7.png new file mode 100644 index 0000000..b0fa1fc Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/7.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/8.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/8.png new file mode 100644 index 0000000..4bd20d1 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/8.png differ diff --git a/infrastructures/provider managed/labs/AKSProviderManaged/images/9.png b/infrastructures/provider managed/labs/AKSProviderManaged/images/9.png new file mode 100644 index 0000000..873efe0 Binary files /dev/null and b/infrastructures/provider managed/labs/AKSProviderManaged/images/9.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/awsUserManaged-metadata.json b/infrastructures/user managed/labs/awsUserManaged/awsUserManaged-metadata.json new file mode 100644 index 0000000..7443b42 --- /dev/null +++ b/infrastructures/user managed/labs/awsUserManaged/awsUserManaged-metadata.json @@ -0,0 +1,6 @@ +{ + "title": "AWS User Managed Infrastructure with KubePlex", + "description": "How to create and use your own kubernetes cluster on AWS cloud.", + "complexity":"intermediate", + "time":"00:40:00" +} \ No newline at end of file diff --git a/infrastructures/user managed/labs/awsUserManaged/awsUserManaged.md b/infrastructures/user managed/labs/awsUserManaged/awsUserManaged.md new file mode 100644 index 0000000..f2b46a0 --- /dev/null +++ b/infrastructures/user managed/labs/awsUserManaged/awsUserManaged.md @@ -0,0 +1,99 @@ +#### Objective + +In this lab, you will learn how to create and use your own kubernetes cluster on AWS cloud. + +#### Set up Basic Information + +Cloudplex platform will populate the basic info (Infrastructure name, Infrastructure Id) itself. + +For this lab, we will use [AWS](https://aws.amazon.com/) as our cloud provider (you must have an account on AWS in order to use it). Provide cloud provider credentials and save them as profile for future use. + +![user-profile](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/2.png) + +Cloudplex platform provide an easy way to save all your [Secret Credentials](https://docs.cloudplex.io/#/pages/user-guide/components/credentials-profile/credentials-profile?id=credentials-profile) in a secure vault. + +Select the region & zone where you want to create your cluster. + +Click on the ***Next*** button. + +![next-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/21.png) + + +#### Configure AWS Network + +CloudPlex automatically configures a complete network for you. + +One [VPC](https://aws.amazon.com/vpc/), Two [subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html), One [Security Group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html), One Route Table, and One Internet Gateway are added and configured by the platform. + +See [AWS](https://docs.aws.amazon.com/vpc/) documentation to further learn about these terms + +![configured-network-subnets](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/3.png) + +![configred-security-group](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/4.png) + + +#### Configure AWS cluster + +Clicking on the ***next*** button will take you to the cluster tab. + +![cluster-tab](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/7.png) + +CloudPlex will automatically create One [Node Pool](https://docs.cloudplex.io/#/pages/user-guide/components/cluster/um-new-cluster/aws-cluster/aws-cluster?id=aws) with default configurations. You may overwrite this with your own configuration. + +![node-pool-configurations](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/8.png) + +Next you will select the Key type, if you have an existing ***SSH*** key, select it. If you want to generate a new key, provide the key name. + +![generate-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/9.png) + +Click on the ***generate*** button and it will save your generated key [credentials](https://docs.cloudplex.io/#/pages/user-guide/components/credentials-profile/credentials-profile?id=credentials-profile) in our secure vault. + +![download-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/15.png) + +CloudPlex gives you an option to bring your own custom image or use market place Images + +![container-image](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/10.png) + +Adding another node pool is easy, and you may do so by clicking on the Clone or Create button. + +![add-another-pool](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/11.png) + +Now you have configured your cluster. Click on the ***Next*** button. + +![next-kubernetes-conf](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/12.png) + +This is the Kubernetes configuration tab, where you can select your Kubernetes version and other options. For this lab, we will use the default configuration provided by the platform. + +![default-kuberntes-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/13.png) + +Click on the ***save*** button to save all your configurations. + +![save-conf](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/14.png) + + +##### provision your configured Infrastructure + +Click on the Start button to start deploying your own Kubernetes cluster in the AWS cloud. + +![start-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/16.png) + +You will see the logs as the infrastructure deployment progresses. + +![deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/17.png) + +Click on the cluster tab to see the live status of your cluster. + +![live-status-health](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/18.png) + +***Cluster live status*** is a complete dashboard that gives you the ***live status*** about the health and consumption of the nodes in your cluster + +To avoid unnecessary costs, dont forget to terminate your infrastructure when you are done. + +Click on the ***terminate*** button to delete all your resources from AWS. + +![terminate-btn](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/infrastructures/user%20managed/labs/awsUserManaged/images/19.png) + + +#### Conclusion + +You have just deployed a user-managed Kubernetes cluster on AWS using CloudPlex, the Kubernetes application platform for developers diff --git a/infrastructures/user managed/labs/awsUserManaged/images/1.png b/infrastructures/user managed/labs/awsUserManaged/images/1.png new file mode 100644 index 0000000..f2f6f9c Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/1.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/10.png b/infrastructures/user managed/labs/awsUserManaged/images/10.png new file mode 100644 index 0000000..ebde774 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/10.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/11.png b/infrastructures/user managed/labs/awsUserManaged/images/11.png new file mode 100644 index 0000000..62869d0 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/11.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/12.png b/infrastructures/user managed/labs/awsUserManaged/images/12.png new file mode 100644 index 0000000..a7b6d53 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/12.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/13.png b/infrastructures/user managed/labs/awsUserManaged/images/13.png new file mode 100644 index 0000000..a7064e8 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/13.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/14.png b/infrastructures/user managed/labs/awsUserManaged/images/14.png new file mode 100644 index 0000000..599d602 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/14.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/15.png b/infrastructures/user managed/labs/awsUserManaged/images/15.png new file mode 100644 index 0000000..4800a66 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/15.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/16.png b/infrastructures/user managed/labs/awsUserManaged/images/16.png new file mode 100644 index 0000000..3644f6a Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/16.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/17.png b/infrastructures/user managed/labs/awsUserManaged/images/17.png new file mode 100644 index 0000000..eb4b7f2 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/17.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/18.png b/infrastructures/user managed/labs/awsUserManaged/images/18.png new file mode 100644 index 0000000..dd822d4 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/18.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/19.png b/infrastructures/user managed/labs/awsUserManaged/images/19.png new file mode 100644 index 0000000..6682bde Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/19.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/2.png b/infrastructures/user managed/labs/awsUserManaged/images/2.png new file mode 100644 index 0000000..5dd0600 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/2.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/20.png b/infrastructures/user managed/labs/awsUserManaged/images/20.png new file mode 100644 index 0000000..e7737b4 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/20.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/21.png b/infrastructures/user managed/labs/awsUserManaged/images/21.png new file mode 100644 index 0000000..048180f Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/21.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/3.png b/infrastructures/user managed/labs/awsUserManaged/images/3.png new file mode 100644 index 0000000..4edb117 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/3.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/4.png b/infrastructures/user managed/labs/awsUserManaged/images/4.png new file mode 100644 index 0000000..6eb02dc Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/4.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/5.png b/infrastructures/user managed/labs/awsUserManaged/images/5.png new file mode 100644 index 0000000..057e5ad Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/5.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/6.png b/infrastructures/user managed/labs/awsUserManaged/images/6.png new file mode 100644 index 0000000..70a1299 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/6.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/7.png b/infrastructures/user managed/labs/awsUserManaged/images/7.png new file mode 100644 index 0000000..7f9ea5f Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/7.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/8.png b/infrastructures/user managed/labs/awsUserManaged/images/8.png new file mode 100644 index 0000000..83dfc98 Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/8.png differ diff --git a/infrastructures/user managed/labs/awsUserManaged/images/9.png b/infrastructures/user managed/labs/awsUserManaged/images/9.png new file mode 100644 index 0000000..281892c Binary files /dev/null and b/infrastructures/user managed/labs/awsUserManaged/images/9.png differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/Lab-01-cleanup-01.png b/kubernetes/persistent volumes/labs/mysqlPv/images/Lab-01-cleanup-01.png deleted file mode 100644 index 9b35916..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/Lab-01-cleanup-01.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-01.png b/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-01.png deleted file mode 100644 index 96cc55b..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-01.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-02.png b/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-02.png deleted file mode 100644 index 59109d5..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/add-ports-02.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/advanced-configurations.png b/kubernetes/persistent volumes/labs/mysqlPv/images/advanced-configurations.png deleted file mode 100644 index 2c6119b..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/advanced-configurations.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/app-deployment-logs.png b/kubernetes/persistent volumes/labs/mysqlPv/images/app-deployment-logs.png deleted file mode 100644 index bb9fcbc..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/app-deployment-logs.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/app-start.png b/kubernetes/persistent volumes/labs/mysqlPv/images/app-start.png deleted file mode 100644 index cd9e9fd..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/app-start.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/app-status.png b/kubernetes/persistent volumes/labs/mysqlPv/images/app-status.png deleted file mode 100644 index 79ed7d0..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/app-status.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/back-button.png b/kubernetes/persistent volumes/labs/mysqlPv/images/back-button.png deleted file mode 100644 index 4acab55..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/back-button.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/container-volumes.png b/kubernetes/persistent volumes/labs/mysqlPv/images/container-volumes.png deleted file mode 100644 index ebb7714..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/container-volumes.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/docker-hub-service.gif b/kubernetes/persistent volumes/labs/mysqlPv/images/docker-hub-service.gif deleted file mode 100644 index 1670ed9..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/docker-hub-service.gif and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-parameters.gif b/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-parameters.gif deleted file mode 100644 index 2f05c5e..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-parameters.gif and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables-key-select.png b/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables-key-select.png deleted file mode 100644 index cb35302..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables-key-select.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables.png b/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables.png deleted file mode 100644 index f61eb55..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/dynamic-variables.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/lab-03-save.png b/kubernetes/persistent volumes/labs/mysqlPv/images/lab-03-save.png deleted file mode 100644 index 2e99ba6..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/lab-03-save.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/link-docker-secret.gif b/kubernetes/persistent volumes/labs/mysqlPv/images/link-docker-secret.gif deleted file mode 100644 index 3c8886e..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/link-docker-secret.gif and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/mount-path.png b/kubernetes/persistent volumes/labs/mysqlPv/images/mount-path.png deleted file mode 100644 index 0efedcf..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/mount-path.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-search.png b/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-search.png deleted file mode 100644 index e1db1da..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-search.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-service.png b/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-service.png deleted file mode 100644 index 52f956d..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/mysql-service.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/mysqlsecret.png b/kubernetes/persistent volumes/labs/mysqlPv/images/mysqlsecret.png deleted file mode 100644 index b80f964..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/mysqlsecret.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/new-volume-service.png b/kubernetes/persistent volumes/labs/mysqlPv/images/new-volume-service.png deleted file mode 100644 index 073a612..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/new-volume-service.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/policy-capacity.png b/kubernetes/persistent volumes/labs/mysqlPv/images/policy-capacity.png deleted file mode 100644 index b2ca205..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/policy-capacity.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/save-app.png b/kubernetes/persistent volumes/labs/mysqlPv/images/save-app.png deleted file mode 100644 index 80c854d..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/save-app.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-2.png b/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-2.png deleted file mode 100644 index 560c53e..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-2.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-3.png b/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-3.png deleted file mode 100644 index 75023b3..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button-3.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button.png b/kubernetes/persistent volumes/labs/mysqlPv/images/save-button.png deleted file mode 100644 index 2b33e4a..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/save-button.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/saved-environment-variable.png b/kubernetes/persistent volumes/labs/mysqlPv/images/saved-environment-variable.png deleted file mode 100644 index 9ba55d3..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/saved-environment-variable.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-password.png b/kubernetes/persistent volumes/labs/mysqlPv/images/secret-password.png deleted file mode 100644 index 412544b..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-password.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-service-drag.gif b/kubernetes/persistent volumes/labs/mysqlPv/images/secret-service-drag.gif deleted file mode 100644 index 2273153..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-service-drag.gif and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-type.png b/kubernetes/persistent volumes/labs/mysqlPv/images/secret-type.png deleted file mode 100644 index 7e4075b..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/secret-type.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/service-configuration.png b/kubernetes/persistent volumes/labs/mysqlPv/images/service-configuration.png deleted file mode 100644 index 3151cce..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/service-configuration.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/service-type.png b/kubernetes/persistent volumes/labs/mysqlPv/images/service-type.png deleted file mode 100644 index 41698cf..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/service-type.png and /dev/null differ diff --git a/kubernetes/persistent volumes/labs/mysqlPv/images/termination.png b/kubernetes/persistent volumes/labs/mysqlPv/images/termination.png deleted file mode 100644 index 9283f28..0000000 Binary files a/kubernetes/persistent volumes/labs/mysqlPv/images/termination.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/helloworld.md b/kubernetes/pods and containers/labs/helloworld/helloworld.md deleted file mode 100644 index b41cde1..0000000 --- a/kubernetes/pods and containers/labs/helloworld/helloworld.md +++ /dev/null @@ -1,140 +0,0 @@ -### Objective - -This Lab will help you understand the concept of Pods and Containers by running a simple HelloWorld Application from CloudPlex. - -### Code Repository - -​ https://github.com/cloudplex-io/hello-world - -### Cloud Provider - -CloudPlex platform gives you the freedom of choosing you any cloud provider among these four (AWS, AZURE, GCP and DO). Please select any of them to proceed. - -### Cloud Profile Credentials - -You have to provide your selected cloud credentials in order to further continue this lab. There are fields under each cloud provider tab, fill them out. - -Click on the **next** button on the top right corner. - -#### Add Application Info - -Give name to your application and specify the version, you can also give tags to your application of your choice. - -![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/app-info.png) - -Click on the **next** button on the top right corner. - -### Add Service - -CloudPlex has integrated with [Docker Hub](https://hub.docker.com/) registry which allows users to access prebuilt images. You can fetch images metadata (Environment variables, Ports). - -Drag **Docker Hub** service from palette and drop it on canvas. - -![ezgif.com-video-to-gif](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/ezgif.com-video-to-gif.gif) - - - -### Search Hello World Service - -Click on the service to show search panel of the service from Docker Hub. - -- Type **[cloudplexng/helloworld](https://hub.docker.com/r/cloudplexng/helloworld)** -- Select Community from the filter -- Now, click on the search button and select **helloworld** service. - - - -![helloworld-service-dockerhub](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/helloworld-service-dockerhub.gif) - - - -CloudPlex will select the latest version of the image. - -![Lab01-Add-Tag](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Add-Tag.png) - - - -### Add Environment Variables - -They are required to expose information to containers running in the Pod. Click on the **Environment variables section** to add a new [environment variable](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). - -![Lab01-Add-EnvironmentVariable-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-01.png) - - - -CloudPlex provides two types of variables (**Static, Dynamic**). Let's add a static environment variable. - -![Lab01-Add-EnvironmentVariable-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-02.png) - -```bash -Key = PORT -Value = 3000 -``` - -![Lab01-Add-EnvironmentVariable-03](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-03.png) - -Click on the back button on top of the configurations. - -### Add new Port - -[Ports](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port - -![Lab01-Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Add-Ports-01.png) - -Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. - -![Lab01-Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/ports.png) - -Click on the back button on top of the configurations. - -### Enable Ingress Traffic - -​ [Ingress gateway](https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/) will allow you to access service from the internet. Click on the Ingress section to enable ingress traffic. - -![Lab01-Ingress-traffic-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Ingress-traffic-01.png) - -Click on the back button on top of the configurations. - -Click on the **Save** button at the bottom right corner to save your service - -![Lab01-save-service-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-save-service-01.png) - - -### Deploy Application - -Click on the **Deploy** button at the top right corner, your deployment will start right after saving the application and it will redirect you to the logs tabs. - - -### Your Application Logs - -In the log window, you can see the logs of your infrastructure, Kubernetes Cluster and Application which you have deployed. - -**!! Deployment will take around 15 minutes!!** - -![Lab01-Deployment-Logs-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Deployment-Logs-01.png) - - - -### Accessing Your Application - -Click on the App to get Ingress gateway Endpoint - -![Lab01-Ingress-Endpoint-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-Ingress-Endpoint-01.png) - - - -Copy Ingress Endpoint and Paste in browser new Tab. - -### Expected Result - -You will get this screen by copying that ingress Endpoint in your browser - -![Lab01-browser-output](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/Lab01-browser-output.png) - - - -### Cleanup - -Click on the Terminate button to remove all the resources from the cloud. - - ![Lab-01-cleanup-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/pods%20and%20containers/labs/helloworld/images/cleanup.png) diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab-01-cleanup-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab-01-cleanup-01.png deleted file mode 100644 index 9b35916..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab-01-cleanup-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-01.png deleted file mode 100644 index 70210e2..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-02.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-02.png deleted file mode 100644 index d43515d..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-02.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-03.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-03.png deleted file mode 100644 index 7180917..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-EnvironmentVariable-03.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-01.png deleted file mode 100644 index d569cce..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-02.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-02.png deleted file mode 100644 index 1db704e..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Ports-02.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Tag.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Tag.png deleted file mode 100644 index a5fc319..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Add-Tag.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Deployment-Logs-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Deployment-Logs-01.png deleted file mode 100644 index 629287e..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Deployment-Logs-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-Endpoint-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-Endpoint-01.png deleted file mode 100644 index c341e94..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-Endpoint-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-traffic-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-traffic-01.png deleted file mode 100644 index d33bc26..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Ingress-traffic-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Liveness-Probe-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Liveness-Probe-01.png deleted file mode 100644 index a3491b4..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Liveness-Probe-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Probing-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Probing-01.png deleted file mode 100644 index ade735c..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Probing-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Readiness-Probe-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-Readiness-Probe-01.png deleted file mode 100644 index d9c7b15..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-Readiness-Probe-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-browser-output.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-browser-output.png deleted file mode 100644 index 5515805..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-browser-output.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-application01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-application01.png deleted file mode 100644 index fabba29..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-application01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service-01.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service-01.png deleted file mode 100644 index 3bd0cec..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service-01.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service.png b/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service.png deleted file mode 100644 index c5f843c..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/Lab01-save-service.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/cleanup.png b/kubernetes/pods and containers/labs/helloworld/images/cleanup.png deleted file mode 100644 index 1865465..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/cleanup.png and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.gif b/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.gif deleted file mode 100644 index 7110af5..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.gif and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.mp4 b/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.mp4 deleted file mode 100644 index e3ad908..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/dockerhub-platet-to-canvas.mp4 and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/ezgif.com-video-to-gif.gif b/kubernetes/pods and containers/labs/helloworld/images/ezgif.com-video-to-gif.gif deleted file mode 100644 index b394546..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/ezgif.com-video-to-gif.gif and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.gif b/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.gif deleted file mode 100644 index 23af8c5..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.gif and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.mp4 b/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.mp4 deleted file mode 100644 index 4299993..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/helloworld-service-dockerhub.mp4 and /dev/null differ diff --git a/kubernetes/pods and containers/labs/helloworld/images/ports.png b/kubernetes/pods and containers/labs/helloworld/images/ports.png deleted file mode 100644 index 54b2334..0000000 Binary files a/kubernetes/pods and containers/labs/helloworld/images/ports.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/Lab-01-cleanup-01.png b/kubernetes/secrets/labs/mysqlSecret/images/Lab-01-cleanup-01.png deleted file mode 100644 index 9b35916..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/Lab-01-cleanup-01.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/add-ports-01.png b/kubernetes/secrets/labs/mysqlSecret/images/add-ports-01.png deleted file mode 100644 index 96cc55b..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/add-ports-01.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/add-ports-02.png b/kubernetes/secrets/labs/mysqlSecret/images/add-ports-02.png deleted file mode 100644 index 59109d5..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/add-ports-02.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/app-deployment-logs.png b/kubernetes/secrets/labs/mysqlSecret/images/app-deployment-logs.png deleted file mode 100644 index bb9fcbc..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/app-deployment-logs.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/app-start.png b/kubernetes/secrets/labs/mysqlSecret/images/app-start.png deleted file mode 100644 index cd9e9fd..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/app-start.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/app-status.png b/kubernetes/secrets/labs/mysqlSecret/images/app-status.png deleted file mode 100644 index dab9f43..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/app-status.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/back-button.png b/kubernetes/secrets/labs/mysqlSecret/images/back-button.png deleted file mode 100644 index 4acab55..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/back-button.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/docker-hub-service.gif b/kubernetes/secrets/labs/mysqlSecret/images/docker-hub-service.gif deleted file mode 100644 index 1670ed9..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/docker-hub-service.gif and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-parameters.gif b/kubernetes/secrets/labs/mysqlSecret/images/dynamic-parameters.gif deleted file mode 100644 index 2f05c5e..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-parameters.gif and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables-key-select.png b/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables-key-select.png deleted file mode 100644 index cb35302..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables-key-select.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables.png b/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables.png deleted file mode 100644 index f61eb55..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/link-docker-secret.gif b/kubernetes/secrets/labs/mysqlSecret/images/link-docker-secret.gif deleted file mode 100644 index 3c8886e..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/link-docker-secret.gif and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/mysql-search.png b/kubernetes/secrets/labs/mysqlSecret/images/mysql-search.png deleted file mode 100644 index e1db1da..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/mysql-search.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/mysql-service.png b/kubernetes/secrets/labs/mysqlSecret/images/mysql-service.png deleted file mode 100644 index 52f956d..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/mysql-service.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/mysqlsecret.png b/kubernetes/secrets/labs/mysqlSecret/images/mysqlsecret.png deleted file mode 100644 index b80f964..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/mysqlsecret.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/save-app.png b/kubernetes/secrets/labs/mysqlSecret/images/save-app.png deleted file mode 100644 index 80c854d..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/save-app.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/save-button-2.png b/kubernetes/secrets/labs/mysqlSecret/images/save-button-2.png deleted file mode 100644 index 560c53e..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/save-button-2.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/save-button-3.png b/kubernetes/secrets/labs/mysqlSecret/images/save-button-3.png deleted file mode 100644 index 75023b3..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/save-button-3.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/save-button.png b/kubernetes/secrets/labs/mysqlSecret/images/save-button.png deleted file mode 100644 index 2b33e4a..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/save-button.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/saved-environment-variable.png b/kubernetes/secrets/labs/mysqlSecret/images/saved-environment-variable.png deleted file mode 100644 index 9ba55d3..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/saved-environment-variable.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/secret-password.png b/kubernetes/secrets/labs/mysqlSecret/images/secret-password.png deleted file mode 100644 index 412544b..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/secret-password.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/secret-service-drag.gif b/kubernetes/secrets/labs/mysqlSecret/images/secret-service-drag.gif deleted file mode 100644 index 2273153..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/secret-service-drag.gif and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/secret-type.png b/kubernetes/secrets/labs/mysqlSecret/images/secret-type.png deleted file mode 100644 index 7e4075b..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/secret-type.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/service-configuration.png b/kubernetes/secrets/labs/mysqlSecret/images/service-configuration.png deleted file mode 100644 index 3151cce..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/service-configuration.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/service-type.png b/kubernetes/secrets/labs/mysqlSecret/images/service-type.png deleted file mode 100644 index 41698cf..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/service-type.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/images/termination.png b/kubernetes/secrets/labs/mysqlSecret/images/termination.png deleted file mode 100644 index e2cdeeb..0000000 Binary files a/kubernetes/secrets/labs/mysqlSecret/images/termination.png and /dev/null differ diff --git a/kubernetes/secrets/labs/mysqlSecret/mysqlSecret.md b/kubernetes/secrets/labs/mysqlSecret/mysqlSecret.md deleted file mode 100644 index c4a12d2..0000000 --- a/kubernetes/secrets/labs/mysqlSecret/mysqlSecret.md +++ /dev/null @@ -1,148 +0,0 @@ -#### Objective - -In this lab, you will learn how to deploy a MySQL server using Cloudplex integrated Docker-Hub which will be used to pull pre-build MySQL image and use Cloudplex secret service to store Kubernetes Secret. - -#### Cloud Provider - -CloudPlex platform gives you the freedom of choosing you any cloud provider among these four (AWS, AZURE, GCP and DO). Please select any of them to proceed. - -#### Cloud Profile Credentials - -You have to provide your selected cloud credentials in order to further continue this lab. There are fields under each cloud provider tab, fill them out. - -Click on the **next** button on the top right corner. - - -#### Add Application Info - -Give name to your application and specify the version, you can add tags to your application as well - -![app-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/app-info.png) - -Click on the **next** button on the top right corner. - - -#### Add Secret Service - -CloudPlex platform provides a secret management service that provides the ability to store sensitive data such as passwords, tokens, and certificates in Cloudplex. Any data entered in this service is stored in a secure vault with at-rest encryption. This eventually becomes a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret) in a deployed application. - -To configure the service, Drag-n-drop **Secret service** from pallet to the canvas. - -![secret-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/secret-service-drag.gif) - -Click on the service to open the configuration panel on the right side. - -The platform will populate the default values of service (Service Id, Service Name, Namespace) - -Update Service Id and Service Name to ***mysql-secret*** - -![secret-service-info](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/mysqlsecret.png) - -By default, the type of secret is Opaque, you can choose different types according to your use case. - -![secret-service-type-opaque](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/secret-type.png) - -Click on Add secret string and type ***MYSQL_ROOT_PASSWORD*** in key and the Password in the value field. For this lab, type (the password as shown) ***5dzo2MsriVJNYTTtud8gOyDc3A*** in the value field. - -![secret-key-password](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/secret-password.png) - -```yaml -key : MYSQL_ROOT_PASSWORD -value : 5dzo2MsriVJNYTTtud8gOyDc3A -``` - -Click on save button to save service - -![button-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/save-button.png) - - -#### Configure the MySQL Container - -Drag-n-drop the ***Docker Hub*** service from pallet to the canvas. - -![docker-hub-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/docker-hub-service.gif) - -Drag the arrow from ***Secret*** service to ***Container*** service. - -![dockerhub-secret-link](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/link-docker-secret.gif) - -Click on the service to open the configuration panel on the right side. - -![docker-hub-service-configuration](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/service-configuration.png) - -Type MySQL in the search bar and click on the search button. - -![mysql-search](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/mysql-search.png) - -Select MySQL service. - -![mysql-service](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/mysql-service.png) - -CloudPlex automatically pulls all the tags and metadata of the image and populates default values of service (Service Id, Service Name, Namespace, Type) - - -##### Add new Environment Variables - -Click on the **Environment variables section** to add a new [environment variable](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container). - -Cloudplex provides two types of variables ([Static](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container), [Dynamic](https://docs.cloudplex.io/#/pages/user-guide/components/k8s-resources/container/container)). We are going to use Dynamic variable in this lab to use the ***Secret*** key in our container - -![dynamic-parameters](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/dynamic-parameters.gif) - -Select mysql-secret from the service drop-down and type MYSQL_ROOT_PASSWORD in the key field. - -![dynamic-variables-key](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables.png) - -Expand ***Service Attributes*** and Secrets Data and select ***MYSQL_ROOT_PASSWORD***. Cloudplex automatically generates dynamic parameters for you. - -![dynamic-variables-key-select](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/dynamic-variables-key-select.png) - -Click on the save button to save the parameters. - -![save-button-2](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/save-button-2.png) - -A new environment variable with the key ***MYSQL_ROOT_PASSWORD*** will be added in the list of Environment Variables. - -![saved-environment-variable](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/saved-environment-variable.png) - -Click on the back button on top of the configurations. - -![back-button](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/back-button.png) - - -##### Add new Port - -[Ports](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#the-kubernetes-model-for-connecting-containers) are required to access your applications. Click on the **Port section** to add a new port - -![Add-Ports-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/add-ports-01.png) - -Cloudplex automatically discovers ports from Docker images and populates them in the ports section of the service. - -![Add-Ports-02](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/add-ports-02.png) - -Click on the save button to save the service. - -![service-save](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/save-button-3.png) - - -#### Deploy Application - -Click on the **Deploy** button at the top right corner, your deployment will start right after saving the application and it will redirect you to the logs tabs. - -In the log window, you can see the logs of your infrastructure, Kubernetes Cluster and Application which you have deployed. - -![app-deployment-logs](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/app-deployment-logs.png) - -**!! Deployment will take around 15 minutes!!** - -You can see the status of the application you just deployed by clicking on the app tab and click on Table view to see the realtime status of the services. - -![app-status](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/app-status.png) - - -#### Cleanup - -To avoid unnecessary costs, don’t forget to terminate your application when you are done. -Click on the terminate button to delete all your resources from Cloud. - -![app-cleanup-01](https://raw.githubusercontent.com/CloudplexPlatform/developer-community/feature/github-data-fetching/kubernetes/secrets/labs/mysqlSecret/images/termination.png) diff --git a/meta.json b/meta.json index 2452de9..b3948fd 100644 --- a/meta.json +++ b/meta.json @@ -1,36 +1,63 @@ { - "kubernetes": { - "pods and containers": { - "labs": { - "helloworld": { - "title": "Pods And Containers Lab", - "description": "This Lab will help you understand the concept of Pods and Containers by running a simple HelloWorld Application from CloudPlex.", - "complexity": "easy", - "time": "00:20:00" - } - } - }, - "secrets": { - "labs": { - "mysqlSecret": { - "title": "Container Service with Secret", - "description": "How to deploy a MySQL Container service with Kubernetes secret.", - "complexity":"intermediate", - "time":"00:30:00" - } - } - }, - "persistent volumes": { - "labs": { - "mysqlPv": { - "title": "Container Service with Persistent Volume", - "description": "How to deploy a MySQL Container service with Persistent Volume", - "complexity":"intermediate", - "time":"00:30:00" - } - } + "infrastructures": { + "user managed": { + "labs": { + "awsUserManaged": { + "title": "AWS User Managed Infrastructure with KubePlex", + "description": "How to create and use your own kubernetes cluster on AWS cloud.", + "complexity": "intermediate", + "time": "00:20:00", + "type": "User Managed", + "category": "Infrastructure" + } } - - + }, + "provider managed": { + "labs": { + "AKSProviderManaged": { + "title": "AKS Provider Managed Infrastructure with KubePlex", + "description": "How to create and use your AKS cluster.", + "complexity": "intermediate", + "time": "00:20:00", + "type": "Provider Managed", + "category": "Infrastructure" + } + } + } + }, + "applications": { + "pods and containers": { + "labs": { + "helloworld": { + "title": "Pods And Containers Lab", + "description": "This Lab will help you understand the concept of Pods and Containers by running a simple HelloWorld Application from CloudPlex.", + "complexity": "easy", + "time": "00:20:00", + "category": "applications" + } + } + }, + "secrets": { + "labs": { + "mysqlSecret": { + "title": "Container Service with Secret", + "description": "How to deploy a MySQL Container service with Kubernetes secret.", + "complexity": "intermediate", + "time": "00:30:00", + "category": "applications" + } + } + }, + "persistent volumes": { + "labs": { + "mysqlPv": { + "title": "Container Service with Persistent Volume", + "description": "How to deploy a MySQL Container service with Persistent Volume", + "complexity": "intermediate", + "time": "00:30:00", + "category": "applications" + } + } + } } } \ No newline at end of file