A comprehensive hands-on workshop for learning Kubernetes using Azure Kubernetes Service (AKS) as the platform. This workshop uses Eleventy as a static site generator to build and serve the workshop content.
Go to the hosted version: https://kube-workshop.benco.io/
-
Clone the repository
git clone https://github.com/benc-uk/kube-workshop.git cd kube-workshop
-
Install dependencies
npm install
-
Start the development server
npm start
This will start a local development server with hot reloading at
http://localhost:8080
-
Build for production
npm run build
The built site will be generated in the
_site/
directory
├── content/ # Workshop content (Markdown files)
│ ├── _includes/ # Eleventy templates and layouts
│ ├── 00-pre-reqs/ # Section 1: Prerequisites
│ ├── 01-cluster/ # Section 2: Cluster setup
│ └── ... # Additional workshop sections
├── _site/ # Generated static site (ignored in git)
├── eleventy.config.js # Eleventy configuration
├── package.json # Node.js dependencies and scripts
└── README.md # This file!
Command | Description |
---|---|
npm start |
Start development server with hot reloading |
npm run build |
Build static site for production |
npm run clean |
Remove the _site/ directory |
npm run lint |
Format Markdown files with Prettier |
npm run lint:check |
Check Markdown formatting |
- All workshop content is located in the
content/
directory - Use Markdown with
.md
extension for all content files - Follow the existing structure - each section should be in its own directory with an
index.md
file - Include navigation links at the bottom of each section following the existing pattern
- Use relative links for internal navigation and assets
- Create a new directory under
content/
following the naming pattern:##-section-name/
- Add an
index.md
file with the section content - Include any supporting files (YAML manifests, diagrams, etc.) in the same directory, they will be copied to the output
- Update the main
content/index.md
to link to your new section
- Run
npm run lint
to format all Markdown files - Use
npm run lint:check
to verify formatting without making changes - The project uses Prettier with a 120 character line width
- Make your changes in the
content/
directory - Run
npm start
to serve the site locally - Verify your changes at
http://localhost:8080
- Test all navigation links and ensure assets load correctly
- Run
npm run lint
to ensure consistent formatting
The site is automatically built and deployed when changes are pushed to the main branch. The build process:
- Runs
npm run build
to generate the static site - Deploys the contents of
_site/
directory - Makes the workshop available at the production URL
- Port already in use: The default port is 8080. If it's occupied, Eleventy will try the next available port
- Changes not reflecting: Ensure you're editing files in the
content/
directory, not the_site/
directory - Build errors: Check that all Markdown files are properly formatted and internal links are valid
- Broken links: Use relative paths for internal links (e.g.,
../01-cluster/index.md
) - Missing assets: Ensure supporting files are in the same directory as the content that references them
- Formatting problems: Run
npm run lint
to fix common Markdown formatting issues
The workshop covers Kubernetes fundamentals check the content/
directory for details.
For detailed content information, see the workshop itself at the deployed site or run locally with npm start
.
This project is licensed under the MIT License - see the LICENSE file for details.