Skip to content

Commit e348de9

Browse files
authored
Merge branch 'master' into perf/kanvas-lazy-load
2 parents c0877e6 + 35141e7 commit e348de9

File tree

638 files changed

+15336
-15311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

638 files changed

+15336
-15311
lines changed

CONTRIBUTING.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,10 +398,21 @@ Change image according to isDark value:
398398
/>
399399
```
400400
401-
> Note:
402-
>
403401
> - A condition `frontmatter.darkthumbnail.publicURL !== frontmatter.thumbnail.publicURL` is added so that the image only changes if there is a difference between the thumbnail publicURLs.
404402
403+
### Using SVG as Thumbnail
404+
405+
If you are using an SVG file as a thumbnail, you should use the `thumbnail_svg` and `darkthumbnail_svg` fields in the frontmatter instead of `thumbnail` and `darkthumbnail`. This prevents Gatsby's `childImageSharp` from attempting to process the SVG, which can cause build warnings and errors.
406+
407+
Example frontmatter:
408+
409+
```yaml
410+
thumbnail_svg: ./my-icon.svg
411+
darkthumbnail_svg: ./my-icon-dark.svg
412+
```
413+
414+
The components are set up to automatically check for these fields if the standard `thumbnail` fields are missing or if they need to fallback to the SVG version.
415+
405416
## Adding Images and Icons
406417

407418
1. It is recommended to use `@react-icons/all-files` instead of `react-icons` for importing icons. The Issue with react-icons is that even though we are importing a single icon from the package/folder it still imports the complete icon folder which is creating unwanted junks of JS in the build.

Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ site:
2727

2828
## Run layer5.io on your local machine. Alternate method.
2929
site-fast:
30-
gatsby develop
30+
NODE_OPTIONS=--max-old-space-size=8192 gatsby develop
3131

3232
## Build layer5.io on your local machine.
3333
build:
34-
gatsby build && gatsby serve
34+
npm run build && npm run serve
3535

3636
## Empty build cache and run layer5.io on your local machine.
3737
clean:
@@ -41,6 +41,10 @@ clean:
4141
lint:
4242
npm run lint
4343

44+
## Kill process running the site
45+
kill:
46+
lsof -ti:8000 | xargs kill -9 2>/dev/null || true
47+
4448
## Prepare a list of features for the pricing page.
4549
features:
4650
curl -L https://docs.google.com/spreadsheets/d/e/2PACX-1vQwzrUSKfuSRcpkp7sJTw1cSB63s4HCjYLJeGPWECsvqn222hjaaONQlN4X8auKvlaB0es3BqV5rQyz/pub\?gid\=1153419764\&single\=true\&output\=csv -o .github/build/spreadsheet.csv

content-learn/mastering-kubernetes-for-engineers/ambassador-edge-stack-api-gateway-with-meshery/edge/design-interpretation.mdx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@ videos: 0
77
lectures: 4
88
order: 3
99
---
10-
import * as React from "react";
1110
import MesheryDesignEmbed from "@layer5/meshery-design-embed";
1211
import { ChapterStyle } from "../../../../src/components/Learn-Components/Chapters-Style/chapters.style.js";
1312
import es8 from "../../../../src/assets/images/learning-path/edge-stack/es8.png";
1413
import es9 from "../../../../src/assets/images/learning-path/edge-stack/es9.png";
1514

1615
<ChapterStyle>
1716

18-
<h2 class="chapter-sub-heading">
17+
<h2 className="chapter-sub-heading">
1918
Exploring the Relationships Between Edge Stack Resources with a Kanvas Design
2019
</h2>
2120

22-
<h3 class="chapter-sub-heading">Services and Deployments</h3>
21+
<h3 className="chapter-sub-heading">Services and Deployments</h3>
2322

2423
The design below shows the traffic flow between some major components in the the Ambassador Edge Stack (AES) system.
2524

@@ -45,7 +44,7 @@ Let's take a look at the roles of each component and the ports used for communic
4544

4645
4. **edge-stack Deployment**:The edge-stack Deployment component is a core part of the Ambassador Edge Stack, handling the main processing and routing of traffic. It receives traffic from the edge-stack service on port 80/TCP and communicates with the edge-stack-admin component on port 8877/TCP for administrative tasks.
4746

48-
<h3 class="chapter-sub-heading">Service Account Roles</h3>
47+
<h3 className="chapter-sub-heading">Service Account Roles</h3>
4948

5049
<a href={es9}>
5150
<img src={es9} width="100%" align="center" />

content-learn/mastering-kubernetes-for-engineers/ambassador-edge-stack-api-gateway-with-meshery/edge/edge-stack-configuration.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import es10 from "../../../../src/assets/images/learning-path/edge-stack/es10.pn
2121

2222
In this chapter, you will import and deploy Edge Stack Custom Resource Definitions (CRDs) and YAML files. You'll learn how to configure the necessary Ambassador Cloud license and set up essential components like Listener and Mapping resources. Finally, you'll deploy a sample Quote service application to route traffic through Edge Stack.
2323

24-
<h2 class="chapter-sub-heading">Steps</h2>
24+
<h2 className="chapter-sub-heading">Steps</h2>
2525

26-
<h3 class="chapter-sub-heading">Import Edge Stack CRD YAML and Deploy</h3>
26+
<h3 className="chapter-sub-heading">Import Edge Stack CRD YAML and Deploy</h3>
2727

2828
The Edge Stack CRD YAML file typically contains the definitions for custom resources used by Edge Stack. These definitions include the schemas and validation rules for resources like Mappings, Hosts, TLSContexts, RateLimits, Filters, and more. These custom resources allow you to define and manage the various aspects of your API gateway configuration, such as routing, authentication, rate limiting, and TLS settings, directly within your Kubernetes cluster.
2929

@@ -55,7 +55,7 @@ The Edge Stack CRD YAML file typically contains the definitions for custom resou
5555
<img src={es3} width="100%" align="center" />
5656
</a>
5757

58-
<h3 class="chapter-sub-heading">Import the Edge Stack YAML </h3>
58+
<h3 className="chapter-sub-heading">Import the Edge Stack YAML </h3>
5959

6060
Now that the CRDs have been deployed, go ahead to deploy the main Edge Stack Configuration.
6161

@@ -71,7 +71,7 @@ Now that the CRDs have been deployed, go ahead to deploy the main Edge Stack Con
7171
<img src={es5} width="100%" align="center" />
7272
</a>
7373

74-
<h3 class="chapter-sub-heading">Configure Edge Stack License</h3>
74+
<h3 className="chapter-sub-heading">Configure Edge Stack License</h3>
7575

7676
Ambassador Edge Stack requires a valid license to operate. Generate your [license token](https://app.getambassador.io/cloud/edge-stack/license/new) to establish a secure connection between Edge Stack and Ambassador Cloud.
7777

@@ -83,7 +83,7 @@ Ambassador Edge Stack requires a valid license to operate. Generate your [licens
8383
<img src={es6} width="100%" align="center" />
8484
</a>
8585

86-
<h3 class="chapter-sub-heading">Deploy Edge Stack </h3>
86+
<h3 className="chapter-sub-heading">Deploy Edge Stack </h3>
8787

8888
1. Click **Actions** in the top right corner and click on Deploy (double tick).
8989

@@ -93,7 +93,7 @@ Ambassador Edge Stack requires a valid license to operate. Generate your [licens
9393
<img src={es10} width="100%" align="center" />
9494
</a>
9595

96-
<h3 class="chapter-sub-heading">Listener Custom Resource</h3>
96+
<h3 className="chapter-sub-heading">Listener Custom Resource</h3>
9797

9898
The Listener Custom Resource tells Ambassador Edge Stack what port to listen on.
9999

@@ -132,7 +132,7 @@ EOF
132132

133133
2. Deploy the resource on Kanvas.
134134

135-
<h3 class="chapter-sub-heading">Mapping Resource</h3>
135+
<h3 className="chapter-sub-heading">Mapping Resource</h3>
136136

137137
Create a Mapping configuration that instructs Edge Stack on how and where to route traffic. In the YAML file below, any request coming to the specified _hostname_ with the _prefix_ /backend/ will be directed to the _quote service_.
138138

@@ -152,7 +152,7 @@ spec:
152152

153153
```
154154

155-
<h3 class="chapter-sub-heading">Deploy Quote Service</h3>
155+
<h3 className="chapter-sub-heading">Deploy Quote Service</h3>
156156

157157
Next, import the [Quote Service YAML](https://app.getambassador.io/yaml/v2-docs/3.9.1/quickstart/qotm.yaml) and deploy it on Kanvas. This step will create the necessary deployment and service resources for the Quote service within your Kubernetes cluster, allowing you to see how Edge Stack manages and routes traffic to this backend service.
158158

content-learn/mastering-kubernetes-for-engineers/ambassador-edge-stack-api-gateway-with-meshery/edge/introduction.mdx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@ videos: 0
77
lectures: 4
88
order: 1
99
---
10-
import * as React from "react";
1110
import MesheryDesignEmbed from "@layer5/meshery-design-embed";
1211
import { ChapterStyle } from "../../../../src/components/Learn-Components/Chapters-Style/chapters.style.js";
1312

1413
<ChapterStyle>
1514

16-
<h2 class="chapter-sub-heading">Overview</h2>
15+
<h2 className="chapter-sub-heading">Overview</h2>
1716

1817
In this tutorial, you will explore Edge Stack using Meshery Playground. You'll get hands-on experience importing YAML files that contain Edge Stack configurations and Custom Resource Definitions (CRDs).
1918

2019
You'll use Kanvas to view, configure, and deploy Kubernetes resources, including Edge Stack with its custom resources and a sample application. Additionally, you'll leverage Meshery's visualization tool to filter the deployed resources in your cluster.
2120

22-
<h2 class="chapter-sub-heading">Objectives</h2>
21+
<h2 className="chapter-sub-heading">Objectives</h2>
2322

2423
This tutorial will guide you through exploring Edge Stack using Meshery Playground. You'll cover:
2524

@@ -29,7 +28,7 @@ This tutorial will guide you through exploring Edge Stack using Meshery Playgrou
2928
4. **Visualization**: Get hands-on with Kanvas to understand the components and their interactions within Edge Stack.
3029
5. **Design Interpretation**: Explore some of the relationships between Edge Stack resources with a Kanvas design, explaining their functionalities and roles within the system.
3130

32-
<h2 class="chapter-sub-heading">Meshery Playground and Kanvas</h2>
31+
<h2 className="chapter-sub-heading">Meshery Playground and Kanvas</h2>
3332

3433
**Meshery Playground** is an interactive and collaborative live cluster environment that simplifies
3534
the deployment process and enhances user experience by providing visual tools for managing
@@ -39,19 +38,19 @@ Kubernetes resources.
3938

4039
If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](https://docs.meshery.io/guides/tutorials/kubernetes-pods) tutorial first.
4140

42-
<h2 class="chapter-sub-heading">Ambassador Edge Stack</h2>
41+
<h2 className="chapter-sub-heading">Ambassador Edge Stack</h2>
4342

4443
Ambassador [Edge Stack](https://www.getambassador.io/products/edge-stack/api-gateway) is a Kubernetes-native API Gateway built on [Envoy Proxy](https://www.envoyproxy.io/). It streamlines Kubernetes workflows for configuration, deployment, and management of APIs, efficiently snd securely managing high traffic volumes and distributing requests across multiple services in your cluster.
4544

4645
The "stack" includes security functionalities such as automatic TLS, authentication, and rate limiting, as well as load balancing, ingress control and observability all integrated to ensure scalability and flexibility in Kubernetes environments.
4746

48-
<h2 class="chapter-sub-heading">Prerequisites</h2>
47+
<h2 className="chapter-sub-heading">Prerequisites</h2>
4948

5049
- Basic understanding of Kubernetes concepts.
5150
- Access to the _Meshery Playground_. If you don't have an account, sign up at [Meshery Playground](https://play.meshery.io/).
5251
- [Ambassador Cloud](https://www.getambassador.io/solutions/ambassador-cloud) account.
5352

54-
<h2 class="chapter-sub-heading">Access Meshery Playground</h2>
53+
<h2 className="chapter-sub-heading">Access Meshery Playground</h2>
5554

5655
1. Log in to the [Meshery Playground](https://meshery.layer5.io/) using your credentials.
5756
2. Click **Explore** in the Cloud Native Playground tile to navigate to _Kanvas_.

content-learn/mastering-kubernetes-for-engineers/deploying-wordpress-and-mysql-with-persistent-volumes-with-meshery/sql/configure-components.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import wp13 from "../../../../src/assets/images/learning-path/sql/wp13.png";
1717

1818
<ChapterStyle>
1919

20-
<h2 class="chapter-sub-heading">Create and Configure Secret for MySQL Database</h2>
20+
<h2 className="chapter-sub-heading">Create and Configure Secret for MySQL Database</h2>
2121

2222
In this step, you create a Kubernetes secret component for the MySQL database. This is necessary because the configuration below is in the environment variables section of the mysql-deployment YAML file.
2323

@@ -56,7 +56,7 @@ _Figure: Configure secret_
5656

5757
3. Click outside the window to close the configuration tab.
5858

59-
<h2 class="chapter-sub-heading">Create Persistent Volumes</h2>
59+
<h2 className="chapter-sub-heading">Create Persistent Volumes</h2>
6060

6161
MySQL and WordPress each require a [Persistent Volume (PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) to store their data.
6262

content-learn/mastering-kubernetes-for-engineers/deploying-wordpress-and-mysql-with-persistent-volumes-with-meshery/sql/deploy.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@ order: 5
99
---
1010
import { ChapterStyle } from "../../../../src/components/Learn-Components/Chapters-Style/chapters.style.js";
1111
import wp15 from "../../../../src/assets/images/learning-path/sql/wp15.png";
12-
import wp16 from "../../../../src/assets/images/learning-path/sql/wp16.png";
1312
import wp17 from "../../../../src/assets/images/learning-path/sql/wp17.png";
1413
import wp18 from "../../../../src/assets/images/learning-path/sql/wp18.png";
1514
import wp22 from "../../../../src/assets/images/learning-path/sql/wp22.png";
1615

1716
<ChapterStyle>
1817

19-
<h2 class="chapter-sub-heading">Deploy the Resources</h2>
18+
<h2 className="chapter-sub-heading">Deploy the Resources</h2>
2019

2120
1. Click `Actions` in the top right corner and click on `Deploy`.
2221

content-learn/mastering-kubernetes-for-engineers/deploying-wordpress-and-mysql-with-persistent-volumes-with-meshery/sql/group-components.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import wp21 from "../../../../src/assets/images/learning-path/sql/wp21.png";
1313

1414
<ChapterStyle>
1515

16-
<h2 class="chapter-sub-heading">Add Labels</h2>
16+
<h2 className="chapter-sub-heading">Add Labels</h2>
1717

1818
To make it easier to filter and manage your resources during visualization, add labels to all of them.
1919

@@ -33,7 +33,7 @@ _Figure: Add label_
3333

3434
5. Now click on `Save As` and save the design.
3535

36-
<h2 class="chapter-sub-heading">Group Components</h2>
36+
<h2 className="chapter-sub-heading">Group Components</h2>
3737

3838
The _**Group Components**_ icon on the dock below allows you to group resources based on shared labels or annotations.
3939

content-learn/mastering-kubernetes-for-engineers/deploying-wordpress-and-mysql-with-persistent-volumes-with-meshery/sql/import-designs.mdx

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,14 @@ import wp7 from "../../../../src/assets/images/learning-path/sql/wp7.png";
2424
- Select `Kubernetes Manifest` from the "Design Type" dropdown menu.
2525

2626
<br />
27-
<a href={wp1}>
28-
<img src={wp1} width="100%" align="center" />
29-
</a>
27+
<a href={wp1}><img src={wp1} width="100%" align="center" /></a>
3028

3129
_Figure: Import modal_
3230

3331
- Choose `File Upload` for the upload method, and select the file you just downloaded.
3432
- Then, click on `Import`.
3533
<br />
36-
<a href={wp2}>
37-
<img src={wp2} width="100%" align="center" />
38-
</a>
34+
<a href={wp2}><img src={wp2} width="100%" align="center" /></a>
3935

4036
_Figure: Import mysql-deployment_
4137

@@ -44,22 +40,18 @@ _Figure: Import modal_
4440
Clicking on the names of the designs on the `Designs` tab displays the visual representations of the various Kubernetes resources and their relationships on the canvas.
4541

4642
<br />
47-
<a href={wp3}>
48-
<img src={wp3} width="100%" align="center" />
49-
</a>
43+
<a href={wp3}><img src={wp3} width="100%" align="center" /></a>
5044

5145
_Figure: Imported designs on canvas_
5246

5347
4. Now, follow the same steps to import the `wordpress-deployment` file.
5448

5549
<br />
56-
<a href={wp4}>
57-
<img src={wp4} width="100%" align="center" />
58-
</a>
50+
<a href={wp4}><img src={wp4} width="100%" align="center" /></a>
5951

6052
_Figure: wordpress-deployment_
6153

62-
<h2 class="chapter-sub-heading">Merging the Designs</h2>
54+
<h2 className="chapter-sub-heading">Merging the Designs</h2>
6355

6456
Next, you will combine the WordPress and MySQL designs into a single design file. By merging these designs, you can manage and deploy both resources together.
6557

@@ -69,27 +61,21 @@ To merge the MySQL deployment design with the WordPress deployment design:
6961

7062
<br />
7163

72-
<a href={wp5}>
73-
<img src={wp5} width="100%" align="center" />
74-
</a>
64+
<a href={wp5}><img src={wp5} width="100%" align="center" /></a>
7565

7666
_Figure: drag and drop design_
7767

7868
2. This action will open a merge modal asking if you want to merge the design, Click on `Merge`.
7969

8070
<br />
81-
<a href={wp6}>
82-
<img src={wp6} width="100%" align="center" />
83-
</a>
71+
<a href={wp6}><img src={wp6} width="100%" align="center" /></a>
8472

8573
_Figure: merge modal_
8674

8775
3. Click on `Save As` and enter `wordpress-mysql-deployment` as the new file name.
8876

8977
<br />
90-
<a href={wp7}>
91-
<img src={wp7} width="100%" align="center" />
92-
</a>
78+
<a href={wp7}><img src={wp7} width="100%" align="center" /></a>
9379

9480
_Figure: save design_
9581

content-learn/mastering-kubernetes-for-engineers/deploying-wordpress-and-mysql-with-persistent-volumes-with-meshery/sql/introduction.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,32 @@ In this tutorial, you will learn how to deploy a **WordPress site and a MySQL da
1515

1616
> **NOTE:** If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](https://docs.meshery.io/guides/tutorials/kubernetes-pods) tutorial first.
1717
18-
<h2 class="chapter-sub-heading">Prerequisites</h2>
18+
<h2 className="chapter-sub-heading">Prerequisites</h2>
1919

2020
- Basic understanding of Kubernetes concepts.
2121
- Access to the _Meshery Playground_. If you don't have an account, sign up at [Meshery Playground](https://play.meshery.io/).
2222

23-
<h2 class="chapter-sub-heading">Lab Scenario</h2>
23+
<h2 className="chapter-sub-heading">Lab Scenario</h2>
2424

2525
- Import the WordPress and MySQL manifest files into Meshery Playground.
2626
- Create persistent volumes and a secret for the resources using the visual tools provided by Meshery.
2727
- Deploy these resources on the playground.
2828

2929
In this lab, you will import the WordPress and MySQL manifest files into Meshery Playground. You will visualize these Kubernetes resources and create persistent volumes for them using the visual tools provided by Meshery. Finally, you will deploy these resources on the Playground.
3030

31-
<h2 class="chapter-sub-heading">Objective</h2>
31+
<h2 className="chapter-sub-heading">Objective</h2>
3232

3333
Learn how to import manifest files, visualize Kubernetes resources, create new resource components, and deploy the application using Meshery Playground.
3434

35-
<h2 class="chapter-sub-heading">Steps</h2>
35+
<h2 className="chapter-sub-heading">Steps</h2>
3636

37-
<h3 class="chapter-sub-heading">Download the Kubernetes Configuration Files</h3>
37+
<h3 className="chapter-sub-heading">Download the Kubernetes Configuration Files</h3>
3838

3939
Go ahead and download these yaml files [mysql-deployment.yaml](https://kubernetes.io/examples/application/wordpress/mysql-deployment.yaml) and [wordpress-deployment.yaml](https://kubernetes.io/examples/application/wordpress/wordpress-deployment.yaml)
4040

4141
These YAML files contain the Service definitions, Persistent Volume Claims, and Deployment configurations for the WordPress site and the MySQL database.
4242

43-
<h3 class="chapter-sub-heading">Access Meshery Playground</h3>
43+
<h3 className="chapter-sub-heading">Access Meshery Playground</h3>
4444

4545
1. Log in to the [Meshery Playground](https://meshery.layer5.io/) using your credentials. On successful login, you should be at the dashboard. Press the **X** on the _Where do you want to start?_ popup to close it (if required).
4646
2. Click **Explore** in the Cloud Native Playground tile to navigate to _Kanvas_

0 commit comments

Comments
 (0)