Skip to content

Commit 6a7ae4c

Browse files
authored
Merge branch 'master' into replace-learnservicemeshcta-with-kanvascta
2 parents a2461c4 + 1cddd7a commit 6a7ae4c

23 files changed

Lines changed: 1366 additions & 258 deletions

File tree

onRenderBody.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ const MagicScriptTag = (props) => {
2626
}
2727
const root = document.documentElement;
2828
const iterate = (obj) => {
29-
Object.keys(obj).forEach(key => {
30-
if (typeof obj[key] === 'object') {
31-
iterate(obj[key])
32-
} else {
33-
root.style.setProperty("--" + key, obj[key])
34-
}
35-
})
29+
if (!obj) return;
30+
Object.keys(obj).forEach(key => {
31+
if (typeof obj[key] === 'object') {
32+
iterate(obj[key])
33+
} else {
34+
root.style.setProperty("--" + key, obj[key])
35+
}
36+
})
3637
}
3738
const parsedTheme = JSON.parse('${JSON.stringify(props.theme)}')
3839
const theme = parsedTheme[colorMode]

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@
3535
"@fullcalendar/interaction": "^6.0.1",
3636
"@fullcalendar/react": "^6.1.8",
3737
"@layer5/meshery-design-embed": "^0.4.0",
38-
"@sistent/sistent": "^0.14.201",
3938
"@loadable/component": "^5.16.4",
4039
"@mdx-js/mdx": "1.6.22",
4140
"@mdx-js/react": "1.6.22",
4241
"@mediacurrent/gatsby-plugin-silence-css-order-warning": "^1.0.0",
4342
"@mui/icons-material": "^6.4.6",
4443
"@mui/material": "^5.15.11",
4544
"@react-icons/all-files": "^4.1.0",
45+
"@sistent/sistent": "^0.15.0",
4646
"@svgr/webpack": "^8.0.1",
4747
"@types/mui-datatables": "^4.3.12",
4848
"ajv": "^8.17.1",
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

src/collections/integrations/aws-cloudwatch-controller/index.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ components: [
2626
"colorIcon": "icons/components/metric-alarm/icons/color/metric-alarm-color.svg",
2727
"whiteIcon": "icons/components/metric-alarm/icons/white/metric-alarm-white.svg",
2828
"description": "",
29+
},
30+
{
31+
"name": "metric-stream",
32+
"colorIcon": "icons/components/metric-stream/icons/color/metric-stream-color.svg",
33+
"whiteIcon": "icons/components/metric-stream/icons/white/metric-stream-white.svg",
34+
"description": "",
2935
}]
3036
featureList: [
3137
"Provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, and optimize resource utilization.",

src/collections/programs/lfx-2025/lfx-2025.mdx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,47 @@ Layer5 is all about <Link to="/community">its community</Link> of contributors.
6363

6464
Technical writers and other contributors are what comprise Layer5 - an open organization, built by the community for the community. Our vibrant community has seen many talented student contributors go on to secure exciting job opportunities with renowned technology companies such as Red Hat, Microsoft, and VMware, just to name a few. At Layer5, we have high expectations from our interns, and in return, we provide them with incredible opportunities to showcase their work on prestigious stages like DockerCon and KubeCon. We actively promote and uplift our interns, and many of them have gone on to become project maintainers. There are <a href="https://www.linkedin.com/company/layer5" rel="nofollow">many</a>, <Link to="https://layer5.io/blog/category/community">many examples</Link> of this on the layer5.io websites.
6565

66+
## LFX Mentorship 2025 Fall Projects
67+
<br />
68+
69+
### Meshery
70+
<br />
71+
72+
#### Meshery: Solutions architecture for cloud-native deployments
73+
74+
**Description**: Learning paths with hands-on labs are a crucial resource for DevOps engineers and cloud-native practitioners. The Meshery Playground provides a live cluster environment, making it an ideal platform for learning every kind of cloud and cloud native technology. Meshery Docs is in need of comprehensive tutorials and scenarios covering common infrastructure management use cases. Mission is to create and publish a series of hands-on tutorials using Meshery Playground. Each tutorial will include step-by-step guides, live demonstrations, and interactive labs using the Playground allowing learners to apply their knowledge directly without the hassle of any configuration.These tutorials will be reviewed by various project maintainers and then published in guides/tutorials.
75+
- Expected Outcome:
76+
- 10+ new solution architectures (designs) published in Meshery Catalog
77+
- Each design is ideally adjoined with an interactive tutorial (using Meshery Playground), guiding users through infrastructure.
78+
- Tutorials should vary in complexity, catering to beginners and advanced learners.
79+
- Recommended written English, Markdown, Kubernetes, DevOps, and hands-on experience with cloud-native tools
80+
- Mentor(s): <Link to="/community/members/lee-calcote">Lee Calcote</Link>, <Link to ="">Rian Cteulp</Link>, <Link to ="/community/members/sangram-rath">Sangram Rath</Link>
81+
- Upstream Issue: https://github.com/meshery/meshery/issues/15532
82+
- LFX URL: https://mentorship.lfx.linuxfoundation.org/project/a183c51e-22c6-473b-93f4-6c286993e435
83+
84+
#### Meshery: Relationships for AWS services
85+
86+
**Description**: Meshery Models are declarative representations of infrastructure and applications. Within these models, Relationships define how different Components (e.g., Kubernetes resources, Cloud services) interact and depend on each other. These relationships are crucial for visualizing, understanding, and managing complex cloud native systems.
87+
<br />
88+
This internship focuses on significantly expanding the breadth and depth of Meshery Relationships across a wide array of technologies supported by Meshery. As Meshery continues to integrate with more cloud-native technologies (Kubernetes, public clouds, and all CNCF projects), there's a growing need to accurately model the intricate relationships between their components - vital for providing users with comprehensive insights and control over their deployments.
89+
- Expected Outcome:
90+
- A multitude of new relationships defined both intra and inter AWS services.
91+
- Policy Contribution: For advanced interns, there may be opportunities to contribute to the Rego policies that evaluate and enforce these relationships.
92+
- Recommended Skills:DevOps, systems administration, solutions architecture. Experience with Kubernetes, AWS and its services.
93+
- Mentor(s): <Link to="/community/members/lee-calcote">Lee Calcote</Link>, <Link to ="/community/members/sangram-rath">Sangram Rath</Link>, <Link to ="community/members/mia-grenell">Mia Grenell</Link>
94+
- Upstream Issue: https://github.com/meshery/meshery/issues/15531
95+
- LFX URL: https://mentorship.lfx.linuxfoundation.org/project/ed9d4af5-823a-4127-afdf-643c2b623f22
96+
97+
#### Meshery: Relationships for GCP services
98+
99+
**Description**: Meshery Models are declarative representations of infrastructure and applications. Within these models, Relationships define how different Components (e.g., Kubernetes resources, Cloud services) interact and depend on each other. These relationships are crucial for visualizing, understanding, and managing complex cloud native systems.
100+
- Expected Outcome:
101+
- A multitude of new relationships defined both intra and inter GCP services.
102+
- Policy Contribution: For advanced interns, there may be opportunities to contribute to the Rego policies that evaluate and enforce these relationships.
103+
- Recommended Skills:DevOps, systems administration, solutions architecture. Experience with Kubernetes, GCP and its services.
104+
- Mentor(s): <Link to="/community/members/lee-calcote">Lee Calcote</Link>, <Link to ="">James Horton</Link>
105+
- Upstream Issue: https://github.com/meshery/meshery/issues/15531
106+
- LFX URL: https://mentorship.lfx.linuxfoundation.org/project/ed9d4af5-823a-4127-afdf-643c2b623f22
66107

67108
## LFX Mentorship 2025 Spring Projects
68109
<br />

src/components/SistentNavigation/toc.style.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ const TOCWrapper = styled.div`
4242
margin-bottom: 1rem;
4343
}
4444
45+
.toc-list {
46+
flex-grow: 1;
47+
overflow-y: auto;
48+
padding-right: 0.5rem;
49+
max-height: 530px;
50+
position: sticky;
51+
z-index: 1000;
52+
}
53+
4554
.toc-sub-heading {
4655
color: ${(props) => props.theme.text};
4756
transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);

src/html.js

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import React from "react";
22
import PropTypes from "prop-types";
33

4-
54
export default function HTML(props) {
65
return (
76
<html lang="en" {...props.htmlAttributes}>
@@ -24,20 +23,45 @@ export default function HTML(props) {
2423
{props.headComponents}
2524
</head>
2625
<body {...props.bodyAttributes}>
27-
<script dangerouslySetInnerHTML={{
28-
__html:
29-
`(function() {
30-
try {
31-
var banner = sessionStorage.getItem('banner');
32-
if (banner === null)
33-
document.body.classList.add('banner1');
34-
else
35-
document.body.classList.add('banner' + banner);
36-
} catch (e) {
37-
return;
38-
}
39-
})();`,
40-
}}
26+
{/* Script for theme initialization - needs to run before React renders to prevent flicker */}
27+
<script
28+
dangerouslySetInnerHTML={{
29+
__html: `
30+
(function() {
31+
try {
32+
// Theme initialization
33+
const darkThemeKey = 'theme';
34+
let initialTheme = 'system';
35+
try {
36+
initialTheme = localStorage.getItem(darkThemeKey) || 'system';
37+
} catch (e) {}
38+
39+
// Determine initial dark mode
40+
let isDarkMode = false;
41+
if (initialTheme === 'dark') {
42+
isDarkMode = true;
43+
} else if (initialTheme === 'system') {
44+
isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
45+
}
46+
47+
// Set initial color mode
48+
document.documentElement.style.setProperty(
49+
'--initial-color-mode',
50+
isDarkMode ? 'dark' : 'light'
51+
);
52+
53+
// Banner initialization
54+
var banner = sessionStorage.getItem('banner');
55+
if (banner === null)
56+
document.body.classList.add('banner1');
57+
else
58+
document.body.classList.add('banner' + banner);
59+
} catch (e) {
60+
console.error('Error in theme initialization:', e);
61+
}
62+
})();
63+
`,
64+
}}
4165
/>
4266
{props.preBodyComponents}
4367
<div

0 commit comments

Comments
 (0)