Skip to content

Commit 05efb80

Browse files
authored
Merge branch 'master' into certification
2 parents d94a47d + 4934b99 commit 05efb80

247 files changed

Lines changed: 7562 additions & 138 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.

CONTRIBUTING.md

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# <a name="contributing">Contributing Overview</a>
22
Please do! Thanks for your help improving the project! :balloon:
33

4-
All contributors are welcome. Please see the [newcomers welcome guide](https://layer5.io/community/newcomers) for how, where and why to contribute. This project is community-built and welcomes collaboration. Contributors are expected to adhere to our [Code of Conduct](.CODE_OF_CONDUCT.md).
4+
All contributors are welcome. Please see the [newcomers welcome guide](https://layer5.io/community/newcomers) for how, where and why to contribute. This project is community-built and welcomes collaboration. Contributors are expected to adhere to our [Code of Conduct](CODE_OF_CONDUCT.md).
55

6-
Not sure where to start? First, see the [newcomers welcome guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit). Grab an open issue with the [help-wanted label](../../labels/help%20wanted) and jump in. Join the [Slack account](http://slack.layer5.io) and engage in conversation. Create a [new issue](/../../issues/new/choose) if needed. All [pull requests](/../../pulls) should reference an open [issue](/../../issues). Include keywords in your pull request descriptions, as well as commit messages, to [automatically close issues in GitHub](https://help.github.com/en/github/managing-your-work-on-github/closing-issues-using-keywords).
6+
Not sure where to start? First, see the [newcomers welcome guide](https://layer5.io/community/newcomers). Grab an open issue with the [help-wanted label](../../labels/help%20wanted) and jump in. Join the [Slack account](http://slack.layer5.io) and engage in conversation. Create a [new issue](/../../issues/new/choose) if needed. All [pull requests](/../../pulls) should reference an open [issue](/../../issues). Include keywords in your pull request descriptions, as well as commit messages, to [automatically close issues in GitHub](https://help.github.com/en/github/managing-your-work-on-github/closing-issues-using-keywords).
77

88
**Sections**
99
- <a name="contributing">General Contribution Flow</a>
@@ -13,20 +13,17 @@ Relevant coding style guidelines are the Go Code Review Comments and the Formatt
1313

1414
## Important Information
1515

16-
This repository serves as a content-only starter template for creating courses on the Layer5 Academy. Its primary purpose is to provide a clear example of how to structure learning paths.
16+
This repository serves as the **official content repository** for Layer5's Academy learning platform, hosting all official learning paths, challenges, and certifications.
1717

18-
### Important Distinction: Content vs. Theme
19-
- This Repository (academy-example): This is for content only.
20-
- Theme Repository ([layer5io/academy-theme](https://github.com/layer5io/academy-theme/)): All visual elements, layouts, CSS, and Hugo logic are managed in the central layer5io/academy-theme repository.
2118

2219
### Detailed Guide
2320
For a complete, step-by-step guide on how to create, structure, and publish a new learning path, please refer to our official documentation:
2421

25-
➡️ [Creating Your First Learning Path](https://docs.layer5.io/cloud/academy/creating-your-learning-path/)
22+
➡️ [Academy](https://docs.layer5.io/cloud/academy/)
2623

2724
# <a name="contributing">General Contribution Flow</a>
2825

29-
In order to contribute to Meshery, please follow the fork-and-pull request workflow described [here](./CONTRIBUTING-gitflow.md).
26+
In order to contribute to Layer5 Academy, please follow the fork-and-pull request workflow described [here](./CONTRIBUTING-gitflow.md).
3027

3128
## <a name="commit-signing">Signing-off on Commits (Developer Certificate of Origin)</a>
3229

@@ -47,7 +44,7 @@ In most cases, you can add this signoff to your commit automatically with the
4744
`-s` or `--signoff` flag to `git commit`. You must use your real name and a reachable email
4845
address (sorry, no pseudonyms or anonymous contributions). An example of signing off on a commit:
4946
```
50-
$ commit -s -m my commit message w/signoff
47+
$ commit -s -m "my commit message w/signoff"
5148
```
5249

5350
To ensure all your commits are signed, you may choose to add this alias to your global ```.gitconfig```:
@@ -63,16 +60,16 @@ Or you may configure your IDE, for example, Visual Studio Code to automatically
6360

6461
<a href="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" ><img src="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" width="50%"><a>
6562

66-
## <a name="contributing-docs">Documentation Contribution Flow</a>
67-
Please contribute! Layer5 documentation uses Jekyll and GitHub Pages to host docs sites. Learn more about [Layer5's documentation framework](https://docs.google.com/document/d/17guuaxb0xsfutBCzyj2CT6OZiFnMu9w4PzoILXhRXSo/edit?usp=sharing). The process of contributing follows this flow:
63+
## <a name="contributing-docs">Academy Content Contribution Flow</a>
64+
Please contribute! Layer5 Academy uses Hugo and GitHub Pages to host the learning platform. Learn more about [Layer5's Academy platform development](https://docs.layer5.io/cloud/academy/platform-development/). The process of contributing follows this flow:
6865

6966
1. Create a fork, if you have not already, by following the steps described [here](./CONTRIBUTING-gitflow.md)
70-
1. In the local copy of your fork, navigate to the docs folder.
71-
`cd docs`
67+
1. In the local copy of your fork, navigate to the content folder.
68+
`cd content`
7269
1. Create and checkout a new branch to make changes within
7370
`git checkout -b <my-changes>`
74-
1. Edit/add documentation.
75-
`vi <specific page>.md`
71+
1. Edit/add learning content.
72+
`vi <specific content>.md`
7673
1. Run site locally to preview changes.
7774
`make site`
7875
1. Commit, [sign-off](#commit-signing), and push changes to your remote branch.
@@ -81,22 +78,26 @@ Please contribute! Layer5 documentation uses Jekyll and GitHub Pages to host doc
8178

8279

8380
#### Tests
84-
Users can now test their code on their local machine against the CI checks implemented using `make run-tests`.
81+
Users can now test their local development setup using the provided Makefile commands.
8582

86-
To test code changes on your local machine, run the following command:
83+
To test your local Academy setup, run the following commands:
8784
```
88-
make run-tests
85+
# Install dependencies
86+
make setup
87+
88+
# Start local development server
89+
make site
8990
```
9091

91-
#### Building Docker image
92-
To build a Docker image of the project, please ensure you have `Docker` installed to be able to build the image. Now, run the following command to build the Docker image:
92+
#### Building the Site
93+
To build the Academy site for production, ensure you have `Hugo` and `Go` installed. Now, run the following command to build the site:
9394
```sh
94-
make docker
95+
make build
9596
```
9697

97-
### UI Lint Rules
98+
### Content Guidelines
9899

99-
Layer5 uses ES-Lint to maintain code quality & consistency in our UI Code.
100+
Layer5 Academy follows specific content and formatting guidelines for consistency across all learning materials.
100101

101102
# <a name="maintaining"> Reviews</a>
102103
All contributors are invited to review pull requests. See this short video on [how to review a pull request](https://www.youtube.com/watch?v=isLfo7jfE6g&feature=youtu.be).
@@ -114,4 +115,4 @@ This repository and site are available as open source under the terms of the [Ap
114115
<p>The <a href="https://layer5.io/community">Layer5 community</a> represents the largest collection of service mesh projects and their maintainers in the world.</p>
115116

116117
**Open Source First**
117-
<p>At Layer5, we champion developer-defined infrastructure, giving engineers the power to reshape application delivery. We empower operators in reimagining how they manage modern infrastructure: collaboratively.</p>
118+
<p>At Layer5, we champion developer-defined infrastructure, giving engineers the power to reshape application delivery. We empower operators in reimagining how they manage modern infrastructure: collaboratively.</p>

README.md

Lines changed: 73 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,132 +1,105 @@
1+
# Layer5 Academy
12

2-
# Layer5 Academy - Content Starter Template
3+
**Layer5 Academy** is the **official content repository** for Layer5's learning platform, hosting all official learning paths, challenges, and certifications.
4+
It is built with [Hugo](https://gohugo.io/) and integrated into a multi-repository architecture for rapid local preview and automated cloud deployment.
35

4-
This repository is a starter template for creating custom learning paths and courses on the [Layer5 Academy](https://cloud.layer5.io/academy/overview). It provides the necessary file structure and a working example to help you get started quickly.
6+
---
57

6-
This guide will walk you through setting up your own content repository, creating courses, and previewing them locally.
8+
## 📚 Overview
79

8-
> For more in-depth documentation, see the official [Layer5 Academy docs](https://docs.layer5.io/cloud/academy/).
10+
- **Role**: Primary source of official Academy content
11+
- **Features**:
12+
- Fully structured, production-ready reference
13+
- Rapid local preview loop for Markdown content changes
14+
- Integrated into the platform's build and deployment pipeline
915

10-
## Prerequisites
16+
---
1117

12-
Before you begin, ensure you have the following installed on your system:
18+
## Table of Contents
1319

14-
* [**Hugo**](https://gohugo.io/getting-started/installing/) (extended version) (version 0.147.9)
15-
* [**Go**](https://go.dev/doc/install) (version 1.12)
20+
- [Related Repositories](#-related-repositories)
21+
- [Quick Start (Local Preview)](#-quick-start-local-preview)
22+
- [Repository Structure](#repository-structure)
23+
- [Contributing](#contributing)
24+
- [Publishing](#publishing)
25+
- [Resources](#resources)
1626

17-
## Getting Started
27+
---
1828

19-
Follow these steps to create your own learning path using this template.
29+
## Related Repositories
2030

21-
### 1. Fork & Clone the Repository
31+
The Academy platform is composed of multiple repositories, each with a specific role:
2232

23-
First, create a copy of this repository under your own GitHub account.
33+
- **[`academy-theme`](https://github.com/layer5io/academy-theme)** – Controls the site’s layout, styles, typography, and shortcodes. Included automatically via Go modules.
34+
- **[`academy-example`](https://github.com/layer5io/academy-example)** – Starter template for organizations to create their own content repositories following Academy standards.
35+
- **[`academy-build`](https://github.com/layer5io/academy-build)** – Central build and deployment pipeline. Aggregates content from multiple repos with the theme to generate and publish the complete Academy site.
2436

25-
- **Fork** this [academy-example](https://github.com/layer5io/academy-example) repository.
26-
- Clone your forked repository:
27-
```bash
28-
# Replace <your-username> with your GitHub username
29-
git clone https://github.com/<your-username>/academy-example.git
30-
cd academy-example
31-
```
37+
- For more detailed information: [Academy / Platform Development](https://docs.layer5.io/cloud/academy/platform-development/)
38+
---
3239

33-
### 2. Update the Go Module Path
40+
## Quick Start (Local Preview)
3441

35-
- Open the `go.mod` file at the root of the project.
36-
- Change the first line from:
37-
```go
38-
module github.com/layer5io/academy-example
39-
```
40-
- To match your repository's path:
41-
```go
42-
module github.com/<your-username>/academy-example
43-
```
44-
- Save the file, then commit and push the change.
42+
> Use this workflow for a fast preview loop when editing Markdown content.
4543
46-
### 3. Configure Your Organization Directories
47-
48-
The Academy platform uses an **Organization ID** to keep content separate and secure. You must get this ID from the Layer5 CLoud before proceeding.
49-
50-
Once you have your UID, rename the placeholder directories:
51-
52-
- Rename `content/learning-paths/your-org-uid` to `content/learning-paths/<your-organization-uid>`
53-
- Rename `static/your-org-uuid` to `static/<your-organization-uid>`
54-
- Rename `layouts/shortcodes/your-org-uuid` to `layouts/shortcodes/<your-organization-uid>`
55-
56-
### 4. Add Your Content
57-
58-
Now you're ready to create your learning path. The structure is: **Learning Path → Course → Chapter → Lesson**.
59-
60-
A high-level view of the structure looks like this:
61-
```text
62-
content/
63-
└── learning-paths/
64-
├── _index.md
65-
└── <your-organization-uid>/
66-
└── <your-learning-path>/
67-
├── _index.md
68-
└── <your-course-1>/
69-
└── <your-course-2>/
70-
├── _index.md
71-
└── content/
72-
└── your-lesson-1.md
73-
└── your-lesson-2.md
74-
```
75-
76-
- **Delete the example content** inside `content/learning-paths/<your-organization-uid>/`.
77-
- **Create your folder structure** following the example's hierarchy.
78-
- **Add your lessons** as Markdown (`.md`) files inside the `content` directory of a course.
79-
- **Use frontmatter** at the top of your `_index.md` and lesson files to define titles, descriptions, and weights.
80-
81-
### 5. Add Assets (Images & Videos)
82-
83-
Enhance your course with images and other visual aids. To ensure compatibility with the multi-tenant Academy platform, **do not use standard Markdown image links**. Instead, use the `usestatic` shortcode, which generates the correct, tenant-aware path for your assets.
84-
85-
**How to Add an Image**
44+
```bash
45+
# Clean up and verify Go module dependencies
46+
go mod tidy
8647

87-
1. Place your image file (e.g., `hugo-logo.png`) in your scoped static directory:
48+
# Install necessary tools and modules
49+
make setup
8850

89-
```text
90-
static/<your-organization-uid>/images/hugo-logo.png
91-
```
92-
2. In your `lesson-1.md` file, embed the image using the `usestatic` shortcode. The `path` is relative to your scoped static folder:
51+
# Start the local Hugo development server
52+
make site
9353

94-
```text
95-
![The Hugo Logo]({{</* usestatic path="images/hugo-logo.png" */>}})
96-
```
54+
```
9755

98-
Then the system will automatically convert this into the correct URL when building the site.
56+
Open your browser at: ```http://localhost:1313/academy```. Note: The local preview uses the ```academy-theme```. In production, content is wrapped by the Layer5 Cloud UI, so minor visual differences may occur. For end-to-end validation, test with the ```academy-build``` repository.
9957

100-
**How to Add a Video**
58+
---
10159

102-
```text
103-
{{</* card
104-
title="Video: Example" */>}}
105-
<video width="100%" height="100%" controls>
106-
<source src="https://exmaple.mp4" type="video/mp4">
107-
Your browser does not support the video tag.
108-
</video>
109-
{{</* /card */>}}
60+
## Repository Structure
61+
```bash
62+
layer5-academy/
63+
├── content/ # All learning paths, challenges, and certifications (Markdown)
64+
├── layouts/ # Shortcodes or layout overrides (if any)
65+
├── static/ # Static assets (images, videos, etc.)
66+
├── hugo.yaml # Hugo site configuration
67+
├── go.mod # Go module dependencies (includes academy-theme)
68+
└── Makefile # Commands for local dev & build
11069
```
70+
---
11171

112-
### 6. Local Development
72+
## Contributing
11373

114-
To preview your content locally, run the Hugo server from the project root:
74+
We welcome contributions to improve:
75+
- Content accuracy and clarity
76+
- Additional learning paths, challenges, or certifications
77+
- Shortcodes, layouts, and formatting
11578

79+
Workflow:
80+
1. Fork this repository.
81+
2. Create a feature branch:
11682
```bash
117-
hugo server
83+
git checkout -b feature/your-feature
11884
```
85+
3. Commit changes:
86+
```bash
87+
git commit -m "Describe your change"
88+
```
89+
4. Push and open a Pull Request.
11990

120-
This will start a local server. You can view your content and check for formatting issues before publishing.
121-
122-
> The local preview uses basic styling. Full Academy branding and styles will be applied after your content is integrated into the cloud platform.
91+
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
12392

124-
### 7. Going Live
93+
---
12594

126-
Once your content is complete and tested locally:
95+
## Publishing
96+
- **Official content**: Merged changes are automatically integrated into the central academy-build pipeline and deployed to the Academy platform.
97+
- **Organization-owned content**: Use academy-example as a starting point.
98+
After creating a release, the academy-build pipeline will fetch and publish your content to Layer5 Cloud (requires organization ID and token).
12799

128-
1. Push all your changes to your forked repository on GitHub.
129-
2. **[Connect](https://layer5.io/company/contact) the Layer5 Team** via Slack, email, or by opening a GitHub issue.
130-
3. Provide the URL to your content repository.
100+
---
131101

132-
A Layer5 administrator will then integrate your repository into the main Academy platform. After integration, your learning paths will be visible on the official [Layer5 Cloud site](https://cloud.layer5.io/academy/overview).
102+
## Resources
103+
- Academy Documentation: https://docs.layer5.io/cloud/academy
104+
- Content Creation Guide: https://docs.layer5.io/cloud/academy/creating-content
105+
- Community Slack: https://slack.layer5.io
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "CNCF Autoscaling Challenge"
33
description: "Learn event-driven autoscaling in Kubernetes. Work with scaled objects in KEDA, monitoring with Prometheus, Open Telemetry & CloudEvents and advanced KEDA configurations."
4-
banner: "images/keda-icon.svg"
4+
banner: "keda-icon.svg"
55
id: "3ef92e40-b0e4-47bd-8f84-1b369cb41c0e"
66
weight: 1
77
---

content/challenges/11111111-1111-1111-1111-111111111111/cncf-auto-scaling-challenge/keda-icon.svg

Lines changed: 1 addition & 0 deletions
Loading

content/challenges/11111111-1111-1111-1111-111111111111/cncf-observability-challenge-with/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "CNCF Observability Challenge with Jaeger"
33
description: "Join this CNCF Challenge and showcase your skills in designing a distributed tracing architecture using Jaeger."
4-
banner: "images/jaeger-icon-black.svg"
4+
banner: "jaeger-icon-black.svg"
55
courses: 1
66
weight: 2
77
id: "79ef4658-bc1d-4768-9e8e-dea864d5590d"

0 commit comments

Comments
 (0)