Skip to content

Commit 6acaff1

Browse files
authored
Merge branch 'master' into mobile-view
2 parents e8d6e15 + dd86543 commit 6acaff1

229 files changed

Lines changed: 17830 additions & 6855 deletions

File tree

Some content is hidden

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

.github/workflows/slack.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,27 @@ jobs:
1515
- name: Get current star count
1616
run: |
1717
echo "STARS=$(curl --silent 'https://api.github.com/repos/${{ github.repository }}' -H 'Accept: application/vnd.github.preview' | jq '.stargazers_count')" >> $GITHUB_ENV
18+
1819
- name: Notify Slack
19-
env:
20-
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
21-
uses: pullreminders/slack-action@master
20+
uses: slackapi/slack-github-action@v2.1.1
2221
with:
23-
args: '{\"channel\":\"CSK7N9TGX\",\"text\":\"${{ github.actor }} just starred ${{ github.repository }}! (https://github.com/${{ github.repository }}/stargazers) Total ⭐️: ${{ env.STARS }}\"}'
22+
method: chat.postMessage
23+
token: ${{ secrets.SLACK_BOT_TOKEN }}
24+
payload: |
25+
channel: CSK7N9TGX
26+
type: "mrkdwn"
27+
text: "<https://github.com/${{ github.actor }}|${{ github.actor }}> just starred <https://github.com/${{ github.repository }}/stargazers|${{ github.repository }}> bringing the total ⭐️ count up to: ${{ env.STARS }}"
2428
2529
good-first-issue-notify:
2630
if: github.event_name == 'issues' && (github.event.label.name == 'good first issue' || github.event.label.name == 'first-timers-only')
2731
name: Notify Slack for new good-first-issue
2832
runs-on: ubuntu-latest
2933
steps:
3034
- name: Notify Slack
31-
env:
32-
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
33-
uses: pullreminders/slack-action@master
35+
uses: slackapi/slack-github-action@v2.1.1
3436
with:
35-
args: '{\"channel\":\"C019426UBNY\",\"type\":\"section\",\"text\":\":new: Good first issue up for grabs: ${{ github.event.issue.title }} - ${{ github.event.issue.html_url }} \"}'
36-
37+
method: chat.postMessage
38+
token: ${{ secrets.SLACK_BOT_TOKEN }}
39+
payload: |
40+
channel: C019426UBNY
41+
text: ":new: Good first issue up for grabs: <${{ github.event.issue.html_url }}|${{ github.event.issue.title }}>"

AGENTS.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# AGENTS.md
2+
3+
This document provides instructions for Large Language Models (LLMs) contributing to the Layer5 website, hosted at https://github.com/layer5io/layer5, built with Gatsby.js. These guidelines ensure consistency, quality, and alignment with the project's goals of promoting cloud native infrastructure management through clear documentation and user-friendly content.
4+
5+
## Project Overview
6+
7+
The Layer5 website (https://layer5.io) is a Gatsby.js-based static site that serves as the primary interface for the Layer5 community. It showcases projects like Meshery, Kanvas, and Cloud Native Patterns, and provides resources for contributors, users, and cloud native enthusiasts. The site emphasizes clean design, fast performance, and accessibility.
8+
9+
## Instructions for LLMs
10+
11+
### 1. Content Generation Guidelines
12+
13+
- **Tone and Style**: Use a professional yet approachable tone. Content should be clear, concise, and welcoming to both technical and non-technical audiences. Align with Layer5's mission of empowering engineers to "expect more from their infrastructure."
14+
- **Markdown Usage**: All content must be written in Markdown, adhering to Gatsby's content structure (e.g., MDX files in `src/pages` or `src/content`).
15+
- **Frontmatter**: Include appropriate frontmatter in MDX files. Example:
16+
17+
```yaml
18+
---
19+
title: "Page Title"
20+
path: "/path/to/page"
21+
date: "2025-09-23"
22+
description: "Short description for SEO."
23+
---
24+
```
25+
- **SEO Optimization**: Ensure all generated content includes meta descriptions, relevant keywords (e.g., "cloud native," "Meshery," "service mesh"), and proper heading structures (H1, H2, etc.).
26+
- **Consistency**: Use American English spelling and grammar. Follow the Layer5 Writing Style Guide for terminology (e.g., "Meshery" not "meshery").
27+
28+
### 2. Code Contributions
29+
30+
- **Gatsby.js Structure**: Familiarize yourself with the repository structure:
31+
- `src/components`: Reusable React components.
32+
- `src/pages`: Page templates and MDX content.
33+
- `gatsby-config.js`: Site metadata and plugins.
34+
- `gatsby-node.js`: Dynamic page generation logic.
35+
- **React Components**: When generating components, use functional components with modern JavaScript (ES6+). Example:
36+
37+
```jsx
38+
import React from 'react';
39+
40+
const MyComponent = ({ title }) => (
41+
<div className="my-component">
42+
<h2>{title}</h2>
43+
</div>
44+
);
45+
46+
export default MyComponent;
47+
```
48+
- **Styling**: Use CSS modules or styled-components as per the project's conventions. Prefer Tailwind CSS classes if integrated. Example:
49+
50+
```jsx
51+
<div className="bg-blue-500 text-white p-4">Content</div>
52+
```
53+
- **Accessibility**: Ensure all components meet WCAG 2.1 standards (e.g., alt text for images, ARIA labels where needed).
54+
55+
### 3. Contribution Workflow
56+
57+
- **Pull Requests**: All changes must be submitted as pull requests (PRs) to the `master` branch. Follow the Layer5 Contributing Guidelines.
58+
- **Commit Messages**: Use clear, descriptive commit messages following the Conventional Commits format:
59+
60+
```
61+
feat: add new Meshery feature page
62+
fix: correct broken link in footer
63+
docs: update AGENTS.md with LLM instructions
64+
```
65+
- **Testing**: Ensure generated code passes `make setup` and `make site` without errors. Test for responsiveness across devices.
66+
- Verifying your fix: The website takes a long time to build. Don't interrupt the build when checking terminal output. Don't hail victory on a fix before you have ACTUALLY verified the solution. Wait for the website to be running, for you to actually \`curl\` a page and verify rendered content.
67+
68+
### 4. Content Restrictions
69+
70+
- **No External Images**: Do not include external image URLs in Markdown or components. Use local assets in `src/images`.
71+
- **No Placeholder Text**: Avoid placeholders like `[Your Name]` or `[Insert Content]`. Provide complete, usable content.
72+
- **No Sensitive Data**: Do not include API keys, credentials, or personal information in generated content.
73+
74+
### 5. Specific Tasks for LLMs
75+
76+
- **Documentation Updates**: Generate or update MDX files in `src/content` for tutorials, blog posts, or project documentation. Ensure alignment with Layer5's Documentation Guidelines.
77+
- **Blog Posts**: Create blog posts about cloud native topics, Meshery features, or community events. Example structure:
78+
79+
```markdown
80+
---
81+
title: "Exploring Meshery's New Features in 2025"
82+
path: "/blog/meshery-new-features-2025"
83+
date: "2025-09-23"
84+
description: "Discover the latest updates to Meshery, the cloud native management platform."
85+
---
86+
# Exploring Meshery's New Features in 2025
87+
## Introduction
88+
Meshery continues to evolve as the leading platform for...
89+
```
90+
- **Component Generation**: Create reusable React components for UI elements like buttons, cards, or modals, ensuring they match the site's design system.
91+
92+
### 6. Validation and Testing
93+
94+
- **Linting**: Run `npm run lint` to ensure code adheres to ESLint and Prettier rules.
95+
- **Build Testing**: Verify that `gatsby build` completes successfully.
96+
- **Preview**: Test changes locally with `gatsby develop` and check for visual/functional issues.
97+
98+
### 7. Community Alignment
99+
100+
- **CNCF Code of Conduct**: All contributions must adhere to the CNCF Code of Conduct.
101+
- **Engage with MeshMates**: For guidance, reference the MeshMates program in the Layer5 Community Handbook.
102+
103+
## Example Contribution
104+
105+
Below is an example of a new MDX page for the Layer5 website:
106+
107+
```markdown
108+
---
109+
title: "Getting Started with Meshery"
110+
path: "/learn/getting-started"
111+
date: "2025-09-23"
112+
description: "A beginner's guide to setting up Meshery for cloud native management."
113+
---
114+
# Getting Started with Meshery
115+
Meshery is an open-source cloud native management platform that simplifies...
116+
117+
## Installation
118+
1. Install Meshery CLI using:
119+
```bash
120+
curl -L https://meshery.io/install | bash -
121+
```
122+
123+
2. Verify installation:
124+
125+
```bash
126+
mesheryctl system check
127+
```
128+
129+
## Next Steps
130+
131+
Explore Meshery Docs for advanced configurations.
132+
133+
```
134+
135+
## Troubleshooting
136+
- **Build Errors**: Check `gatsby-config.js` for plugin misconfigurations.
137+
- **Content Issues**: Validate MDX syntax using `npm run develop`.
138+
- **Community Support**: Reach out via the [Layer5 Slack](https://slack.layer5.io) for assistance.
139+
140+
By following these guidelines, LLMs can contribute high-quality content and code to the Layer5 website, enhancing its role as a hub for the cloud native community.
141+
```

content-learn/mastering-meshery/introduction-to-meshery/meshery/deploying-meshery-designs.mdx

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ There are two modes on the Actions button:
6161
In this chapter, we focus on utilizing the first option to provide a comprehensive view of the deployment process.
6262

6363
<a href={action}>
64-
<img src={action} width="100%" align="center" />
64+
<img src={action} class="chapter-image" style={{ margin: "0 auto" }}/>
6565
</a>
6666

6767
<h2 class="chapter-sub-heading">Design Validation</h2>
@@ -85,15 +85,15 @@ This comprehensive validation ensures that:
8585
1. Click on the **Validate** Icon.
8686

8787
<a href={performingValidation} >
88-
<img src={performingValidation} width="100%" align="center" />
88+
<img src={performingValidation} class="chapter-image" style={{ margin: "0 auto" }}/>
8989
</a>
9090

9191
If the validation is successful, you will see a modal displaying the number of components validated and the number of annotations, similar to the one shown below:
9292

93-
{" "}
93+
9494

9595
<a href={successfulValidation} >
96-
<img src={successfulValidation} width="100%" align="center" />
96+
<img src={successfulValidation} class="chapter-image" style={{ margin: "0 auto" }}/>
9797
</a>
9898

9999
<h3 class="chapter-sub-heading">Handling Validation Errors</h3>
@@ -107,7 +107,7 @@ A common validation error is:
107107
1. **Missing Required Field**: This happens when a required field is not provided. For example, in the image below, the first error indicates that the field ".spec.template.spec.containers.0.env.0" must have a value.
108108

109109
<a href={validationError} >
110-
<img src={validationError} width="100%" align="center" />
110+
<img src={validationError} class="chapter-image" style={{ margin: "0 auto" }}/>
111111
</a>
112112

113113
To troubleshoot and remediate validation issues:
@@ -132,7 +132,7 @@ A dry run in Meshery simulates the deployment of your design in the selected tar
132132
1. Re-run the dry run to ensure all issues have been resolved.
133133

134134
<a href={successfulDryRun} >
135-
<img src={successfulDryRun} width="100%" align="center" />
135+
<img src={successfulDryRun} class="chapter-image" style={{ margin: "0 auto" }}/>
136136
</a>
137137

138138
<h3 class="chapter-sub-heading">Examples of Dry Run Errors</h3>
@@ -142,25 +142,25 @@ Some examples of dry run errors are:
142142
1. **Invalid Field Value**: The error message indicates that a field has an invalid value. For instance, in the image below, the fields "spec > ports[0] > port" and "spec > ports[0] > targetPort" have invalid values of 0. These values must be between 1 and 65535, inclusive.
143143

144144
<a href={drInvalidField1}>
145-
<img src={drInvalidField1} width="100%" align="center" style="margin-bottom:20px;"/>
145+
<img src={drInvalidField1} class="chapter-image" style={{ margin: "0 auto 20px" }} />
146146
</a>
147147

148148
<a href={drInvalidField2}>
149-
<img src={drInvalidField2} width="100%" align="center" />
149+
<img src={drInvalidField2} class="chapter-image" style={{ margin: "0 auto" }}/>
150150
</a>
151151

152152
1. **Missing Required Field**
153153

154154
<a href={missingField}>
155-
<img src={missingField} width="100%" align="center" />
155+
<img src={missingField} class="chapter-image" style={{ margin: "0 auto" }}/>
156156
</a>
157157

158158
1. **Missing Dependencies**: In this case, the error occurs because a Kubernetes [Custom Resource Definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) (CRD) should have been deployed first before attempting to deploy this component.
159159

160160
To resolve this, ensure that all necessary dependencies, such as CRDs, are deployed before deploying the components that rely on them.
161161

162162
<a href={missingResource}>
163-
<img src={missingResource} width="100%" align="center" />
163+
<img src={missingResource} class="chapter-image" style={{ margin: "0 auto" }}/>
164164
</a>
165165

166166
<h2 class="chapter-sub-heading">Environment Selection</h2>
@@ -176,25 +176,25 @@ You can add an environment through the deployment modal by following these steps
176176
1. Click on **Add Environments**
177177

178178
<a href={addEnv}>
179-
<img src={addEnv} width="100%" align="center" />
179+
<img src={addEnv} class="chapter-image" style={{ margin: "0 auto" }}/>
180180
</a>
181181

182182
1. Select **Create** and put in a name for the environment, _e.g.Development_, and **Save**.
183183

184184
<a href={createEnv}>
185-
<img src={createEnv} width="100%" align="center" />
185+
<img src={createEnv} class="chapter-image" style={{ margin: "0 auto" }}/>
186186
</a>
187187

188188
1. After creating the environment you add connections to the environment, here we want to add a Kubernetes cluster. Click on the **arrows** icon to open the Development Resources modal.
189189

190190
<a href={assignConn}>
191-
<img src={assignConn} width="100%" align="center" />
191+
<img src={assignConn} class="chapter-image" style={{ margin: "0 auto" }}/>
192192
</a>
193193

194194
**Available Connections** on the left side shows a list of Kubernetes clusters that are currently managed by Meshery.
195195

196196
<a href={kubeConn}>
197-
<img src={kubeConn} width="100%" align="center" />
197+
<img src={kubeConn} class="chapter-image" style={{ margin: "0 auto" }}/>
198198
</a>
199199

200200

@@ -207,7 +207,7 @@ You can add an environment through the deployment modal by following these steps
207207
During the deployment, if a connection has not yet been added to your environment, it will appear as shown below.
208208

209209
<a href={missingCon}>
210-
<img src={missingCon} width="100%" align="center" />
210+
<img src={missingCon} class="chapter-image" style={{ margin: "0 auto" }}/>
211211
</a>
212212

213213
In this scenario, to add a new environment.
@@ -225,7 +225,7 @@ Another way to add a connection to an Environment is by selecting an environment
225225
1. Identify the desired connection. Under the **Environment** section, click the dropdown menu to add and select the environment you want to associate with your connection.
226226

227227
<a href={envConn}>
228-
<img src={envConn} width="100%" align="center" />
228+
<img src={envConn} class="chapter-image" style={{ margin: "0 auto" }}/>
229229
</a>
230230

231231
<h3 class="chapter-sub-heading">Verifying Kubernetes Connections</h3>
@@ -234,15 +234,15 @@ The Kubernetes connection icon at the top right corner of the screen shows the l
234234
Clicking on the icon will invoke an ad hoc connectivity test between your Meshery Server and the specific Kubernetes cluster. Should this check fail, verify the health of your Meshery Operator deployment within that cluster.
235235

236236
<a href={connList}>
237-
<img src={connList} width="100%" align="center" />
237+
<img src={connList} class="chapter-image" style={{ margin: "0 auto" }}/>
238238
</a>
239239

240240
<h3 class="chapter-sub-heading">Environment Error</h3>
241241

242242
If your environment is not properly set up before deployment, you may encounter the error below.
243243

244244
<a href={envError}>
245-
<img src={envError} width="100%" align="center" />
245+
<img src={envError} class="chapter-image" style={{ margin: "0 auto" }}/>
246246
</a>
247247

248248
To handle this error follow the suitable steps for adding a connection to your environment as previously discussed.
@@ -278,21 +278,21 @@ You have the option of using the live cluster provided by Meshery Playground or
278278
1. Click **Finish**.
279279

280280
<a href={successDeploy}>
281-
<img src={successDeploy} width="100%" align="center" />
281+
<img src={successDeploy} class="chapter-image" style={{ margin: "0 auto" }}/>
282282
</a>
283283

284284
<h3 class="chapter-sub-heading">Deployment Errors</h3>
285285

286286
1. **Missing Namespace**: This error occurs when you attempt to create a Kubernetes resource without specifying a namespace. Kubernetes requires that all resources have an associated namespace.
287287

288288
<a href={missingNs}>
289-
<img src={missingNs} width="100%" align="center" />
289+
<img src={missingNs} class="chapter-image" style={{ margin: "0 auto" }}/>
290290
</a>
291291

292292
1. **Empty Label Selector**: This error indicates an empty label selector.
293293

294294
<a href={emptyLs}>
295-
<img src={emptyLs} width="100%" align="center" />
295+
<img src={emptyLs} class="chapter-image" style={{ margin: "0 auto" }}/>
296296
</a>
297297

298298
<h3 class="chapter-sub-heading">Troubleshooting Errors</h3>
@@ -306,7 +306,7 @@ For the comprehensive list of error codes refer to [Error Code Reference](https:
306306
If you encounter persistent issues, consider consulting the [Meshery Community forum](https://discuss.layer5.io/c/meshery/5).
307307

308308
<a href={errorCode}>
309-
<img src={errorCode} width="100%" align="center" />
309+
<img src={errorCode} class="chapter-image" style={{ margin: "0 auto" }}/>
310310
</a>
311311

312312
<h3 class="chapter-sub-heading">Using the Notification Center for Troubleshooting</h3>
@@ -322,11 +322,11 @@ The Notification Center in Meshery helps manage events during the deployment pro
322322
1. Keeps a log of past notifications, allowing you to track and review previous errors and their resolutions.
323323

324324
<a href={notification}>
325-
<img src={notification} width="100%" align="center" style="margin-bottom:30px;" />
325+
<img src={notification} class="chapter-image" style={{ margin: "0 auto" }}/>
326326
</a>
327327

328328
<a href={notificationCenter}>
329-
<img src={notificationCenter} width="100%" align="center" />
329+
<img src={notificationCenter} class="chapter-image" style={{ margin: "10px auto" }} />
330330
</a>
331331

332332
By actively monitoring the Notification Center, you can promptly address issues as they arise, ensuring a smoother deployment process. Learn more about [Managing Events with the Notification Center](https://docs.meshery.io/guides/events-management).
@@ -339,7 +339,7 @@ To undeploy the resources
339339
1. Click on the **Undeploy** icon.
340340

341341
<a href={undeploy}>
342-
<img src={undeploy} width="100%" align="center" />
342+
<img src={undeploy} class="chapter-image" style={{ margin: "0 auto" }}/>
343343
</a>
344344

345345

0 commit comments

Comments
 (0)