diff --git a/.github/ISSUE_TEMPLATE/community_member_profile.md b/.github/ISSUE_TEMPLATE/community_member_profile.md
index 57b9a8c1740b..a9efdd451cdc 100644
--- a/.github/ISSUE_TEMPLATE/community_member_profile.md
+++ b/.github/ISSUE_TEMPLATE/community_member_profile.md
@@ -16,7 +16,7 @@ Let's recognize <@github-username> as a contributor and community member by crea
- GitHub:
- Twitter:
- LinkedIn:
-- Layer5 Cloud:
+- Layer5 Cloud:
- Link to profile picture:
A detailed explanation on how to set up a community member profile can be found in the [CONTRIBUTING.md](https://github.com/layer5io/layer5/blob/master/CONTRIBUTING.md)
diff --git a/.github/workflows/feature-list.yml b/.github/workflows/feature-list.yml
new file mode 100644
index 000000000000..5432507af762
--- /dev/null
+++ b/.github/workflows/feature-list.yml
@@ -0,0 +1,87 @@
+name: Feature List
+
+on:
+ workflow_dispatch:
+ inputs:
+ spreadsheet_uri:
+ description: 'Link of the spreadsheet containing subscription details.'
+ type: string
+ required: true
+ schedule:
+ - cron: '0 0 * * *'
+
+permissions:
+ contents: write
+ actions: read
+
+jobs:
+ trigger-feature-list:
+ runs-on: ubuntu-latest
+ env:
+ FEATURES_FILE: 'feature_data.json'
+
+ steps:
+ - name: Checkout current repository
+ uses: actions/checkout@v4
+
+ - name: Restore cache
+ id: cache-sha
+ uses: actions/cache@v3
+ with:
+ path: .sha-cache
+ key: feature-data-sha
+ restore-keys: |
+ feature-data-sha
+
+ - name: Check for updates in source repository
+ id: check-updates
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const { data: sourceFile } = await github.rest.repos.getContent({
+ owner: 'layer5labs',
+ repo: 'meshery-extensions-packages',
+ path: 'feature_data.json',
+ ref: 'master'
+ });
+
+ // Store the latest commit SHA
+ const latestSHA = sourceFile.sha;
+
+ const fs = require('fs');
+
+ // Check if we have a previous SHA
+ let hasUpdates = true;
+ const shaCachePath = '.sha-cache/latest-sha';
+ if (fs.existsSync(shaCachePath)) {
+ const lastSHA = fs.readFileSync(shaCachePath, 'utf8');
+ hasUpdates = lastSHA !== latestSHA;
+ }
+
+ if (hasUpdates) {
+ // Save the new SHA
+ fs.mkdirSync('.sha-cache', { recursive: true });
+ fs.writeFileSync(shaCachePath, latestSHA);
+
+ // Decode and save the content
+ const content = Buffer.from(sourceFile.content, 'base64').toString('utf8');
+
+ // Write the new content
+ fs.writeFileSync(process.env.FEATURES_FILE, content);
+
+ core.setOutput('has-updates', 'true');
+ } else {
+ core.setOutput('has-updates', 'false');
+ }
+
+ - name: Commit changes
+ if: steps.check-updates.outputs.has-updates == 'true'
+ uses: stefanzweifel/git-auto-commit-action@v5
+ with:
+ commit_message: "Updated feature data from source repository"
+ file_pattern: ${{ env.FEATURES_FILE }}
+ branch: master
+ commit_options: "--signoff"
+ commit_user_name: l5io
+ commit_user_email: ci@layer5.io
+ commit_author: 'l5io
-
+ Continuing in our Meet the Maintainer series, we have{" "}
+ Aadhitya Amarendiran. Aadhitya
+ is a maintainer of the{" "}
+ Meshery CLI project. In
+ this interview, we get to know Aadhitya a little better and learn about his
+ journey as an open source project maintainer and with Layer5 community.
+
+ Aadhitya, thank you for joining me today. Many people inside and outside of the Layer5 Community have seen the effects of your contributions, but may not know the backstory as to who Aadhitya is and how you arrived at your maintainer role. Indulge us. How did you discover the Layer5 community? What made you stay?
+
+ It was around the year 2020 when I was a sophomore and explored many things in the field of open source. I got to know about Meshery via the LFX program and tried applying for it, though I was a newcomer at that time. Later, I learned more about Layer5, started attending the community call, and met the community. The community members helped me a lot wherever I got stuck as a newcomer, which made me learn new things and involve myself in the project, which later helped me grow. Oh, of course, great learning sessions from Lee during development and community calls.
+
+ You’re a Meshery Maintainer and have been for some long time now. What does
+ being a Meshery maintainer mean to you?
+
+ Three things come into my mind: Learning lots of new things, Challenging yourself to your limits and being a helpful navigator for contributors. During my time as a newcomer, I started out with a simple readme fix PR in the Meshery project, which I thought would cause less impact. But the maintainers accepted my PR though it’s a very small one. That instilled a feeling in me that I should give back to the community by helping newcomers and contributors whenever they are stuck in work.
+ Have you worked with any other open source project? How does Layer5 compare?
+ Not a lot, but I worked on quite a few open source projects. Layer5 is one of the best places to start if you are new to open source. By being involved in the community, you will feel and understand the spirit of open source.
+
+ Layer5 projects have a number of active, open
+ source projects. You’ve been consistently contributing to a few of them.
+ Which one(s) are you currently focusing on?
+
+ I currently work on Meshery, as it piqued my interest during my initial days. I also work on the Meshery-SMP GitHub action project as well.
+ What’s the coolest Meshery demo you have done/seen?
+ I’ve seen a lot of demos but the coolest one for me is the Meshery Docker extension where you can start and use Meshery right from DockerHub!
+
+ What is your favorite Meshery CLI Command?
+ Oof! That’s a tricky one. But my favorite one is definitely What is your hot tip for working with Meshery that others may not know?
+ If you’re starting out with Meshery, make sure to use the Meshery Playground if you want to get hands-on for the first time without the need to deploy Meshery in your system. After you get the basics right, install Meshery and log in to your deployed instance. You’ll see that your designs, performance test results and configurations remain intact in your instance as if they are present exactly the same in the Playground. There’s no need to start from scratch. Just continue where you left off!
+
+ Where do you see opportunities for contributors to get involved within Meshery and Layer5 community?
+ Considering the fact that Meshery is now a part of CNCF (especially the fact that we are aiming for the Incubation status as well!), I feel that Meshery has a wide range of scope for contributors to be involved in. Whether you’re an expert or a newbie, Meshery has lots of subdomains to contribute. Documentation, Frontend, Backend, Adapters… the list goes on.
+ Your most often used emoji? Your preference: movie or book? Morning person
+ or night owl? What have you worked on in the past six months that you’re
+ particularly proud of?
+
+ Most used emoji: 😎. I’m a morning person usually and sleep early, but sometimes I’m a night owl when it comes to intense work. I’d prefer movies compared to books as for some they clearly adapt from books. I’ve worked on refactoring the
+ Do you have any advice for individuals hopeful to become Layer5 contributors
+ or potentially maintainers?
+
+ Make your presence stand out from the crowd even if you are a beginner, and learn as much as you can. Seek MeshMates and maintainers if you get stuck in something. Ask questions during meets or in Slack, and get feedback on your PRs, doesn’t matter if it’s big or small. Incorporate feedback and improvise. Remember, communication is the key, and be active!
+
+ In other words, whether your contribution is big or small, it sounds like aiming for high-quality contributions that add value to the projects is key.
+
+ Yes, you got it right! Even the smallest contribution which creates a good impact in a project becomes a great factor in Open source. All that matters is perseverance, challenging yourself to limits and learning. Do these things right and you’ll find yourself growing in the community.
+
+ The Meshery project moves at an impressive pace thanks to maintainers like
+ Aadhitya. Be like Aadhitya. Join the{" "}
+ Layer5 Slack and say “hi".
+
+Join the Meshery project at KubeCon NA 2024 from November 11th to November 16th, 2024 and get introduced to collaborative cloud native management and Meshery open source maintainers.
+
+Meshery and its extensions empower you to navigate cloud native infrastructure in complex environments. This lighting talk delves into the human-computer interaction (HCI) principles that underpin MeshMap's intuitive visualization of Kubernetes resources and the various forms of inter/relationships with other CNCF projects' resources.
+
+Human-Computer Interaction Principles in Meshery:
+
+Meshery Catalog
+Meshery Catalog
=16.0.0"
}
@@ -2989,6 +2994,7 @@
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
"deprecated": "Use @eslint/config-array instead",
+ "dev": true,
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
@@ -3002,6 +3008,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
"engines": {
"node": ">=12.22"
},
@@ -3014,7 +3021,8 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "deprecated": "Use @eslint/object-schema instead"
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true
},
"node_modules/@img/sharp-darwin-arm64": {
"version": "0.33.5",
@@ -6174,136 +6182,6 @@
"resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz",
"integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
},
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
- "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==",
- "peer": true,
- "dependencies": {
- "@typescript-eslint/experimental-utils": "4.33.0",
- "@typescript-eslint/scope-manager": "4.33.0",
- "debug": "^4.3.1",
- "functional-red-black-tree": "^1.0.1",
- "ignore": "^5.1.8",
- "regexpp": "^3.1.0",
- "semver": "^7.3.5",
- "tsutils": "^3.21.0"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^4.0.0",
- "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/experimental-utils": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
- "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
- "peer": true,
- "dependencies": {
- "@types/json-schema": "^7.0.7",
- "@typescript-eslint/scope-manager": "4.33.0",
- "@typescript-eslint/types": "4.33.0",
- "@typescript-eslint/typescript-estree": "4.33.0",
- "eslint-scope": "^5.1.1",
- "eslint-utils": "^3.0.0"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "*"
- }
- },
- "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "peer": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz",
- "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==",
- "peer": true,
- "dependencies": {
- "@typescript-eslint/scope-manager": "4.33.0",
- "@typescript-eslint/types": "4.33.0",
- "@typescript-eslint/typescript-estree": "4.33.0",
- "debug": "^4.3.1"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
- "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
- "peer": true,
- "dependencies": {
- "@typescript-eslint/types": "4.33.0",
- "@typescript-eslint/visitor-keys": "4.33.0"
- },
- "engines": {
- "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
"node_modules/@typescript-eslint/type-utils": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
@@ -6406,58 +6284,6 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
- "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
- "peer": true,
- "engines": {
- "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
- "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
- "peer": true,
- "dependencies": {
- "@typescript-eslint/types": "4.33.0",
- "@typescript-eslint/visitor-keys": "4.33.0",
- "debug": "^4.3.1",
- "globby": "^11.0.3",
- "is-glob": "^4.0.1",
- "semver": "^7.3.5",
- "tsutils": "^3.21.0"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@typescript-eslint/utils": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
@@ -6575,27 +6401,11 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
- "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
- "peer": true,
- "dependencies": {
- "@typescript-eslint/types": "4.33.0",
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
},
"node_modules/@vercel/webpack-asset-relocator-loader": {
"version": "1.7.3",
@@ -6785,25 +6595,6 @@
"resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz",
"integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ=="
},
- "node_modules/@xstate/react": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@xstate/react/-/react-4.1.3.tgz",
- "integrity": "sha512-zhE+ZfrcCR87bu71Rkh5Z5ruZBivR/7uD/dkelzJqjQdI45IZc9DqTI8lL4Cg5+VN2p5k86KxDsusqW1kW11Tg==",
- "peer": true,
- "dependencies": {
- "use-isomorphic-layout-effect": "^1.1.2",
- "use-sync-external-store": "^1.2.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "xstate": "^5.18.2"
- },
- "peerDependenciesMeta": {
- "xstate": {
- "optional": true
- }
- }
- },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -7451,36 +7242,6 @@
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
"integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg=="
},
- "node_modules/babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "eslint": ">= 4.12.1"
- }
- },
- "node_modules/babel-eslint/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/babel-jsx-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/babel-jsx-utils/-/babel-jsx-utils-1.1.0.tgz",
@@ -11515,6 +11276,7 @@
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -11960,6 +11722,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -11975,6 +11738,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -11989,6 +11753,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -12004,6 +11769,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -12014,12 +11780,14 @@
"node_modules/eslint/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
"integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -12035,6 +11803,7 @@
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -12046,6 +11815,7 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -12057,6 +11827,7 @@
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -12071,6 +11842,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -12078,12 +11850,14 @@
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12109,6 +11883,7 @@
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -12125,6 +11900,7 @@
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -17473,6 +17249,7 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -17878,12 +17655,6 @@
"@sideway/pinpoint": "^2.0.0"
}
},
- "node_modules/jquery": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
- "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
- "peer": true
- },
"node_modules/js-cookie": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
@@ -26114,19 +25885,6 @@
"is-typedarray": "^1.0.0"
}
},
- "node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/ua-parser-js": {
"version": "1.0.39",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
@@ -26716,15 +26474,6 @@
}
}
},
- "node_modules/use-sync-external-store": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz",
- "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
- "peer": true,
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx b/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx
index ffec6abb20f9..5c188d25e8ce 100644
--- a/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx
+++ b/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx
@@ -30,7 +30,7 @@ more excited by the enthusiasm and energy of each community members welcoming me
learned about the project through the demos/updates from fellow contributors. Slowly and gradually, I started contributing too, then delivering updates in the
community calls, and consequently started climbing the contributor ladder.
-When I realised that I would be working on [Layer5 Cloud](https://meshery.layer5.io) and Meshery as an LFX intern at Layer5, then I couldn't control my excitement.
+When I realised that I would be working on [Layer5 Cloud](https://cloud.layer5.io) and Meshery as an LFX intern at Layer5, then I couldn't control my excitement.
That excitement was to ship more impactful features for the Layer5 projects, work and engage more deeply with the engineering team at Layer5 and have an overall
upliftment of my development skills. Throughout my internship I worked on several features. Few on the top of the list are as follows, expanding
[Meshery extension points](https://docs.meshery.io/extensibility), exposing node details of the K8s clusters on which Meshery runs performance tests,
diff --git a/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx b/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx
index 7d44ff951180..03b94ee34678 100644
--- a/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx
+++ b/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx
@@ -32,7 +32,7 @@ With this collaboration, we're introducing powerful features that simplify the m
### Meshery UI and CLI Integration
- **Import WASM Envoy Filters**: Easily import your WebAssembly Envoy filters into Meshery using the intuitive UI or the command-line interface ([CLI](https://docs.meshery.io/reference/mesheryctl#data-plane-intelligence)).
- **Publish and Clone Filters**: Share your filters with the community by publishing them in the [Meshery Catalog](https://meshery.io/catalog) and make it effortless for others to clone them.
-- **Download WASM Binaries**: Access and download WebAssembly binaries directly from [Meshery Cloud](https://meshery.layer5.io/).
+- **Download WASM Binaries**: Access and download WebAssembly binaries directly from [Meshery Cloud](https://cloud.layer5.io/).
- **Efficient Data Plane Design**: Seamlessly design and deploy Istio and Envoy data planes using [MeshMap](https://layer5.io/cloud-native-management/meshmap).
- **Contribute to Open Source**: Get involved with the service mesh community by contributing to any of the 7 open-source [wasm-filters](https://github.com/layer5io/wasm-filters) developed by Layer5.
diff --git a/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png
new file mode 100644
index 000000000000..8fa9efbe6df3
Binary files /dev/null and b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png differ
diff --git a/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx
new file mode 100644
index 000000000000..4c1d851741be
--- /dev/null
+++ b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx
@@ -0,0 +1,197 @@
+---
+title: "Meet the Maintainer: Aadhitya Amarendiran"
+subtitle: "An interview series with open source maintainers"
+date: 2024-09-08 10:30:05 -0530
+author: Vivek Vishal
+thumbnail: ./aadhitya-amarendiran-layer5-maintainer.png
+darkthumbnail: ./aadhitya-amarendiran-layer5-maintainer.png
+description: Meet the Maintainer series with open source maintainer, Aadhitya Amarendiran
+type: Blog
+category: Open Source
+tags:
+ - Open Source
+featured: false
+published: true
+---
+
+import { BlogWrapper } from "../../Blog.style.js";
+import img from "./aadhitya-amarendiran-layer5-maintainer.png";
+import { MeetTheMaintainer } from "../../MeetTheMaintainer.style.js";
+import { Link } from "gatsby";
+import ForkLift from "../../../../assets/images/app/hero/forklift.svg";
+
+mesheryctl perf
mesheryctl pattern
command to mesheryctl design
without losing the core features present. This took me a bit of time as I had to balance my current work as well which caused a bit of inactivity. But I managed to complete it, and I’m proud of doing such great work!
+
+
+
+ Date: November 12, 2024
+ Time: 3:04pm - 3:09pm MST
+
+“It’s the network!” is the cry of every engineer. With the increased prevalence of microservices and distributed systems, it’s true - networking as a discipline has never been more critical in the well-architected design and efficient operation of modern infrastructure. Join this talk for an intro to the TAG, its charter and a deeper discussion of current cloud native networking topics being advanced in this TAG. +
+ +
+ Date: November 14, 2024
+ Time: 11:55am - 12:30pm MST
+
+Join the Meshery maintainers and community in improving the leading cloud native management plane. This is your chance to get hands-on with the tools shaping the future of collaborative cloud native management. Opportunities: Work on core functionality in the Server (Golang) or UI (React) or extend Meshery by building your own plugin. Contribute to the Meshery documentation by incorporating your own examples of cloud native solution architectures using Meshery Designer. +
++Why Contribute to Meshery? - Gain experience with cloud native technologies, including essentially every CNCF project and open source development practices. As is the 10th fastest growing CNCF project, Meshery has a vibrant community. Work alongside passionate maintainers and contributors. No Prior Experience Needed: We welcome contributions from all levels of experience. Join us at Meshery Contribfest and be part of the growing community shaping the future of collaborative cloud native management. +
+ +
+ Date: November 14, 2024
+ Time: 4:30pm - 6:00pm MST
+
+[Salt Lake City, UT] [KubeCon + CloudNativeCon] - November 14th, 2024 – Layer5, the open source company behind the popular Meshery project, announces Kanvas, a new collaboration platform that is like Google Workspace, but designed for engineering teams. +
+ + + +Kanvas is a multi-modal collaboration suite built atop one of the Cloud Native Computing Foundation’s highest velocity open source projects: Meshery. Kanvas’s two modes, Designer and Operator, offer declarative and imperative DevOps workflows, respectively. Both modes provide a visual interface for creating and managing complex cloud native infrastructure, expediting collaborative problem-solving, brainstorming and innovation, engineer onboarding, and auto-documented infrastructure. Importantly, Kanvas helps teams avoid finger-pointing and the blame-game by allowing them to be on the same page - literally.
+ ++As an extensible, self-service engineering platform with hundreds of technology integrations, supporting multi-cloud and Kubernetes native infrastructure, Meshery is the ideal management platform upon which to build Kanvas’ novel collaboration experience. Meshery has thousands of pre-built components supporting Kubernetes and Cloud services and with over 2,000 contributors, Meshery is the 9th fastest growing CNCF (out of 200+ projects). +
+ + + + ++Like Figma for engineers, Kanvas users can access Kanvas from any computer with an internet connection and a web browser. +
+ +#### Feature Highlights: +Birth of Kanvas from Meshery
+Kanvas Designer is available now in beta as a service or self-hosted solution. Kanvas Operator will be available early next year. Try dragging and dropping your Kubernetes manifest into https://kanvas.new today.
+ + + +#### Resources ++Our open source and commercial products empower organizations to embrace the power of cloud native with confidence. Layer5's mission is to simplify the adoption and operation of cloud native infrastructure, enabling organizations to innovate faster and engineers to do so collaboratively. +Layer5’s award-winning open source community has over 10,000 members. For more information, visit https://layer5.io
+ +##### About Kanvas ++Kanvas is a web-based collaboration tool that allows you to create, review, and operate highly-detailed architecture diagrams of your cloud and cloud infrastructure using a drag-and-drop interface. Kanvas is popular with site reliability engineers, platform engineers, architects, operators, and developers as an enabler of productive, collaborative infrastructure management. Try Kanvas at https://kanvas.new.
+ + +Cloud Native patterns help you get the most out of any cloud native. Each pattern can be used as a template and is customizable.
- +
diff --git a/src/components/PlanCard/collapsible-details.js b/src/components/PlanCard/collapsible-details.js index e1cf0d9e15e9..1276a6bd473a 100644 --- a/src/components/PlanCard/collapsible-details.js +++ b/src/components/PlanCard/collapsible-details.js @@ -4,77 +4,96 @@ import { MdExpandMore } from "@react-icons/all-files/md/MdExpandMore"; import { RiArrowRightSLine } from "@react-icons/all-files/ri/RiArrowRightSLine"; const FeatureDetailsWrapper = styled.div` -display: inline; -cursor: pointer; -.open{ + display: inline; + cursor: pointer; + + .open { margin: 0rem; list-style: none; - height:auto !important; - opacity:1 !important; + height: auto !important; + opacity: 1 !important; margin-bottom: 2rem; - transition:all .4s !important; - } - .toggle-icon{ - width: 1.2rem; - height: 1.2rem; - fill: ${props => props.theme.primaryColor}; + transition: all 0.4s !important; + } + + .toggle-icon { + width: 1.2rem; + height: 1.2rem; + fill: ${(props) => props.theme.primaryColor}; transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); } -p{ + + p { font-size: 0.9rem; - color: ${props => props.theme.greyC1C1C1ToGreyB3B3B3}; - transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); -} -.toggle-btn{ - display:inline-block; + color: ${(props) => props.theme.greyC1C1C1ToGreyB3B3B3}; + transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); + } + + .toggle-btn { + display: inline-block; float: left; - vertical-align: middle;; - } - .closed{ - opacity:1; - height:0; - transition:none; - visibility:hidden; - } - .open{ - visibility:visible; - } - h5{ - display: inline-block; - vertical-align: middle; - } + vertical-align: middle; + } + + .closed { + opacity: 1; + height: 0; + transition: none; + visibility: hidden; + } + + .open { + visibility: visible; + } + + h5 { + display: inline-block; + vertical-align: middle; + } + + .beta-tag { + display: inline-block; + background-color: #ffd700; + color: #000000; + font-size: 0.7rem; + padding: 2px 6px; + border-radius: 4px; + margin-left: 8px; + font-weight: bold; + vertical-align: middle; + } `; -const FeatureDetails = (props) => { +const FeatureDetails = ({ category, description, tier }) => { const [expand, setExpand] = React.useState(false); + const BetaTag = () => Coming Soon; + return (- {props.description} + {description}
- For users, badges for activities such as using our projects, talking about the projects, sharing your successes and what you like about them. For contributors, badges include activities such as submitting code, reviewing Pull Requests, assisting with documentation, participating in community events, and more. As you accumulate contributions in various areas, you'll begin to unlock badges that showcase your multifaceted involvement. These badges will be prominently displayed on your Layer5 Cloud profile, visually representing your journey. Not only does this serve as a source of personal pride, but it also helps others in the community recognize your expertise and dedication. + For users, badges for activities such as using our projects, talking about the projects, sharing your successes and what you like about them. For contributors, badges include activities such as submitting code, reviewing Pull Requests, assisting with documentation, participating in community events, and more. As you accumulate contributions in various areas, you'll begin to unlock badges that showcase your multifaceted involvement. These badges will be prominently displayed on your Layer5 Cloud profile, visually representing your journey. Not only does this serve as a source of personal pride, but it also helps others in the community recognize your expertise and dedication.
Welcome to meshery.layer5.io. The meshery.layer5.io website (the “Site”) is comprised of various web pages operated by Layer5.io, Inc (“Layer5”). meshery.layer5.io is offered to you conditioned on your acceptance without modification of the terms, conditions, and notices contained herein (the “Terms”). Your use of meshery.layer5.io constitutes your agreement to all such Terms. Please read these terms carefully, and keep a copy of them for your reference. +
Welcome to cloud.layer5.io. The cloud.layer5.io website (the “Site”) is comprised of various web pages operated by Layer5.io, Inc (“Layer5”). cloud.layer5.io is offered to you conditioned on your acceptance without modification of the terms, conditions, and notices contained herein (the “Terms”). Your use of cloud.layer5.io constitutes your agreement to all such Terms. Please read these terms carefully, and keep a copy of them for your reference.
layer5.io is a Software Product and Services Site.
@@ -29,7 +29,7 @@ const Conduct = () => {- Visiting meshery.layer5.io or sending emails to Layer5 constitutes electronic communications. You consent to receive electronic communications and you agree that all agreements, notices, disclosures and other communications that we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communications be in writing. + Visiting cloud.layer5.io or sending emails to Layer5 constitutes electronic communications. You consent to receive electronic communications and you agree that all agreements, notices, disclosures and other communications that we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communications be in writing.
@@ -39,7 +39,7 @@ const Conduct = () => {Certain services made available via meshery.layer5.io are delivered by third party sites and organizations. By using any product, service or functionality originating from the meshery.layer5.io domain, you hereby acknowledge and consent that Layer5 may share such information and data with any third party with whom Layer5 has a contractual relationship to provide the requested product, service or functionality on behalf of meshery.layer5.io users and customers.
+Certain services made available via cloud.layer5.io are delivered by third party sites and organizations. By using any product, service or functionality originating from the cloud.layer5.io domain, you hereby acknowledge and consent that Layer5 may share such information and data with any third party with whom Layer5 has a contractual relationship to provide the requested product, service or functionality on behalf of cloud.layer5.io users and customers.
You are granted a non-exclusive, non-transferable, revocable license to access and use meshery.layer5.io strictly in accordance with these terms of use. As a condition of your use of the Site, you warrant to Layer5 that you will not use the Site for any purpose that is unlawful or prohibited by these Terms. You may not use the Site in any manner which could damage, disable, overburden, or impair the Site or interfere with any other party's use and enjoyment of the Site.
+You are granted a non-exclusive, non-transferable, revocable license to access and use cloud.layer5.io strictly in accordance with these terms of use. As a condition of your use of the Site, you warrant to Layer5 that you will not use the Site for any purpose that is unlawful or prohibited by these Terms. You may not use the Site in any manner which could damage, disable, overburden, or impair the Site or interfere with any other party's use and enjoyment of the Site.
You may not obtain or attempt to obtain any materials or information through any means not intentionally made available or provided for through the Site.
@@ -74,7 +74,7 @@ meshery.layer5.io may contain links to other websites ("Linked Sites"). The Link- The Service is controlled, operated and administered by Layer5 from our offices within the USA. If you access the Service from a location outside the USA, you are responsible for compliance with all local laws. You agree that you will not use the Layer5 Content accessed through meshery.layer5.io in any country or in any manner prohibited by any applicable laws, restrictions or regulations. + The Service is controlled, operated and administered by Layer5 from our offices within the USA. If you access the Service from a location outside the USA, you are responsible for compliance with all local laws. You agree that you will not use the Layer5 Content accessed through cloud.layer5.io in any country or in any manner prohibited by any applicable laws, restrictions or regulations.
- Layer5 reserves the right, in its sole discretion, to change the Terms under which meshery.layer5.io is offered. The most current version of the Terms will supersede all previous versions. Layer5 encourages you to periodically review the Terms to stay informed of our updates. + Layer5 reserves the right, in its sole discretion, to change the Terms under which cloud.layer5.io is offered. The most current version of the Terms will supersede all previous versions. Layer5 encourages you to periodically review the Terms to stay informed of our updates.
diff --git a/src/sections/Company/News-single/index.js b/src/sections/Company/News-single/index.js index e549695db4f0..2bb787049db8 100644 --- a/src/sections/Company/News-single/index.js +++ b/src/sections/Company/News-single/index.js @@ -8,8 +8,10 @@ import NewsSidebar from "./Sidebar"; import NewsPageWrapper from "./NewsSingle.style.js"; import RelatedPosts from "../../../components/Related-Posts"; +import { useStyledDarkMode } from "../../../theme/app/useStyledDarkMode"; const NewsSingle = ({ data }) => { + const { isDark } = useStyledDarkMode(); const { frontmatter, body, fields } = data.mdx; const newsData = useStaticQuery( graphql`query relatedNewsPosts { @@ -54,7 +56,8 @@ const NewsSingle = ({ data }) => { subtitle={frontmatter.subtitle} category={frontmatter.category} author={{ name: frontmatter.author }} - thumbnail={frontmatter.thumbnail} + thumbnail={ isDark && frontmatter.darkthumbnail && frontmatter.darkthumbnail.publicURL !== frontmatter.thumbnail.publicURL + ? frontmatter.darkthumbnail : frontmatter.thumbnail} date={frontmatter.date} />Utilize a vast and continually expanding collection of GCP icons designed for both diagramming and orchestration scenarios. Craft globally comprehensible diagrams that are not only authentic but also aligned with the latest industry standards.
diff --git a/src/sections/GCP-Diagram/index.js b/src/sections/GCP-Diagram/index.js index fcf310317ea5..d80ee016860b 100644 --- a/src/sections/GCP-Diagram/index.js +++ b/src/sections/GCP-Diagram/index.js @@ -11,7 +11,7 @@ const GcpDiagramPage = () => { const { isDark } = useStyledDarkMode(); let data = { heading: "GCP Orchestration and Diagramming Software", - sub_heading: "Orchestrate and design Google Cloud Platform architecture diagrams easily with predefined templates and symbols designed for professionals.", + sub_heading: "Orchestrate and design Google Cloud Platform architecture diagrams easily with predefined templates designed for professionals.", image: isDark ? GCPDiagramDark : GCPDiagramDark }; return ( diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index ca80dcadc0ce..dc5b61b7e009 100644 --- a/src/sections/General/Navigation/index.js +++ b/src/sections/General/Navigation/index.js @@ -183,7 +183,7 @@ const Navigation = () => { } useEffect(() => { const CLOUD_USER_API = - "https://meshery.layer5.io/api/identity/users/profile"; + "https://cloud.layer5.io/api/identity/users/profile"; const fetchData = async () => { try { const token = getCookieValue("provider_token"); @@ -347,7 +347,7 @@ const Navigation = () => { $secondary className="banner-btn two" title="Get Started" - $url="https://meshery.layer5.io/login" + $url="https://cloud.layer5.io/login" $external={true} /> @@ -396,7 +396,7 @@ const Navigation = () => { rel="noreferrer" target="_blank" className="drop-item" - href={`https://meshery.layer5.io/user/${userData.id}`} + href={`https://cloud.layer5.io/user/${userData.id}`} >+ This is a Box component with custom background and padding. +
++ This Box is responsive, changing style based on screen size. +
++ This Box is responsive, changing style based on screen size. +
+Hover over this Box to see the interactive effect.
+
+ The Box
component is a flexible and foundational
+ container in Sistent, designed to structure and style content. It
+ provides quick access to the theme and CSS utilities, allowing for
+ easy customization and responsive design. Using the sx prop,
+ developers can apply CSS styles directly with theme-aware
+ properties, making Box ideal for layouts, spacing, and other UI
+ adjustments. It can render as any HTML element using the component
+ prop, offering high versatility in both structure and styling.
+
+ A simple Box component can be used to contain and structure other + elements. Here, the Box serves as a basic container without any + styling applied. +
+This is a basic Box component.
+
+ You can add custom styles to a Box component by applying{" "}
+ sx
+ properties. In this example, the Box has a background color,
+ padding, and a defined height.
+
+ This is a Box component with custom background and padding. +
+
+ The Box component also supports responsive styling using the{" "}
+ sx
prop. In this example, the Box adjusts its padding
+ and background color based on screen size.
+
+ This Box is responsive, changing style based on screen size. +
++ Here’s an example where the Box component includes hover effects to + create a more interactive experience. This is useful for buttons, + cards, and other clickable elements. +
++ Hover over this Box to see the interactive effect. +
++ The Box component is a flexible, theme-aware container that adapts + seamlessly across various layouts. It provides a convenient way to + apply styles, positioning, and responsive adjustments to content, + making it ideal for any layout needs. +
++ The Box component is a highly versatile tool that can be used for + layout management, spacing, styling, and more. With full support for + responsive design, Box is an essential part of any well-structured + application, allowing developers to customize and style elements + while keeping the theme consistent. +
+ + +The Box component serves several functions:
+ +
+ The sx
prop makes it easy to apply responsive styles
+ directly within the component, allowing for adaptive design that
+ looks great across all screen sizes.
+
+ This is a responsive Box component. +
++ Box can serve as a container for organizing other elements, whether + it's aligning text, images, or interactive components. The + flexibility of the Box component allows it to adapt to a wide range + of layout needs, from card-style containers to more complex nested + structures. +
+ +
+ The Box component’s customization options allow you to adjust
+ colors, borders, shadows, and more through the sx
prop,
+ ensuring that components blend well with your app's overall theme.
+
+ Customized Box with shadow and color. +
++ Use Box to create nested layouts by embedding one Box within + another, each with distinct styling. This setup enables the creation + of structured and multi-layered designs. +
+Nested Box layout example.
++ Leveraging Box for margin and padding adjustments offers + fine-grained control over spacing between components, making it + useful in complex layouts where alignment and spacing are crucial. +
+ ++ Box can also be used as an interactive element, handling events and + managing state. This makes it ideal for use cases that require + dynamic behavior or user interaction. +
+ +
+ The Box component seamlessly integrates with Sistent’s responsive
+ design principles, providing a cohesive experience across various
+ screen sizes by leveraging breakpoints in the sx
prop.
+
+ The Box
component is a versatile, theme-aware container
+ in Sistent, ideal for styling and layout customization. It supports
+ the sx prop for easy, responsive styling and can render as any HTML
+ element.
+
+ The Box
component is a flexible and foundational
+ container in Sistent, designed to structure and style content. It
+ provides quick access to the theme and CSS utilities, allowing for
+ easy customization and responsive design. Using the sx prop,
+ developers can apply CSS styles directly with theme-aware
+ properties, making Box ideal for layouts, spacing, and other UI
+ adjustments. It can render as any HTML element using the component
+ prop, offering high versatility in both structure and styling.
+
+ The Box component differs from other containers available in Sistent
+ in that its usage is intended to be multipurpose and open-ended,
+ just like a `div`
. Components like Container, Stack and
+ Paper, by contrast, feature usage-specific props that make them
+ ideal for certain use cases: Container for main layout orientation,
+ Stack for one-dimensional layouts, and Paper for elevated surfaces.
+
+ The Box component renders as a `div`
by default, but
+ you can swap in any other valid HTML tag or React component using
+ the component prop. The demo below replaces the `div`
+ with a `section`
element:
+
+ The Box component can be styled flexibly with Sistent
+ sx
prop and custom themes. The sx prop allows quick
+ application of CSS styles that are theme-aware, enabling responsive
+ and consistent design.
+
+ The sx prop supports a wide range of style properties, including + colors, spacing, and responsive adjustments. It directly accesses + theme values, allowing you to apply theme-based styles to a Box with + minimal code. +
+