This repository contains demonstration scenarios for Tetrate Platform implementations, documented using MkDocs Material.
- Repository Structure
- Prerequisites
- Getting Started
- Adding New Demos
- Local Development
- Deployment
- Troubleshooting
tetrate-platform-ntt/
βββ demos/ # Demo scenarios directory
β βββ access-artifacts/
β β βββ artifacts/
β β βββ Readme.md # Demo documentation (REQUIRED)
β β βββ *.yaml # Kubernetes manifests
β β βββ *.png # Images/diagrams
β β βββ Taskfile.yaml # Task automation (optional)
β βββ app-resilience/
β β βββ argocd/ # ArgoCD configurations (optional)
β β βββ artifacts/
β β βββ Readme.md # Demo documentation (REQUIRED)
β βββ [demo-name]/ # Each demo follows this structure
β βββ artifacts/
β βββ Readme.md # REQUIRED: Main documentation file
βββ docs/ # Generated MkDocs documentation (auto-generated)
β βββ demos/ # Symlinks to demo READMEs
β βββ images/ # Copied images from demos
β βββ assets/ # Logos and static assets
β βββ stylesheets/
β β βββ extra.css # Custom CSS for cosmic theme
β βββ index.md # Home page (auto-generated)
βββ mkdocs.yml # MkDocs configuration
βββ netlify.toml # Netlify deployment config
βββ requirements.txt # Python dependencies
βββ setup-mkdocs.sh # Setup script (creates symlinks & copies images)
βββ generate-index.sh # Generates home page
βββ README.md # This file
- Demo Location: All demos must be under
demos/[demo-name]/ - Required File: Each demo MUST have
demos/[demo-name]/artifacts/Readme.md - Images: Place images in the same
artifacts/folder asReadme.md - Naming: Use lowercase with hyphens (e.g.,
app-resilience,inter-cluster)
- Python 3.9+
- pip (Python package manager)
- Git
git clone https://github.com/tetratecx/tetrate-platform-ntt.git
cd tetrate-platform-nttpip install -r requirements.txtchmod +x setup-mkdocs.sh generate-index.sh
./setup-mkdocs.shThis script will:
- Create necessary directory structure
- Create symbolic links from
docs/demos/todemos/*/artifacts/Readme.md - Copy all images to
docs/images/ - Auto-generate
docs/index.md
mkdocs serveVisit http://127.0.0.1:8000 to view the documentation.
# Create new demo directory
mkdir -p demos/my-new-demo/artifacts
# Create the documentation file
touch demos/my-new-demo/artifacts/Readme.mdEdit demos/my-new-demo/artifacts/Readme.md:
# My New Demo
Description of your demo...
## Architecture
<figure markdown>

<figcaption>Architecture diagram description</figcaption>
</figure>
## Prerequisites
- Requirement 1
- Requirement 2
## Installation
Steps to install...Place any images in the same directory:
cp my-diagram.png demos/my-new-demo/artifacts/Reference images in your Readme.md using:
./setup-mkdocs.shThis automatically:
- Creates symlink for the new demo
- Copies images to
docs/images/my-new-demo/ - Regenerates
docs/index.md
Edit mkdocs.yml and add your demo to the nav section:
nav:
- Home: index.md
- Demos:
- Access Artifacts: demos/access-artifacts.md
- App Resilience: demos/app-resilience.md
# ... other demos ...
- My New Demo: demos/my-new-demo.md # Add this linemkdocs serveCheck your new demo appears in the left sidebar and displays correctly.
git add demos/my-new-demo/
git add mkdocs.yml
git commit -m "Add my-new-demo documentation"
git pushmkdocs serve -a 127.0.0.1:8000The server will auto-reload when you make changes to:
- Markdown files
mkdocs.yml- CSS files
After making changes to demo structure or adding images:
./setup-mkdocs.shTo build the static site (outputs to site/ directory):
mkdocs buildThe site is configured for automatic deployment to Netlify.
Once pushed to main, Netlify automatically deploys on every push to the main branch.
- netlify.toml: Netlify build configuration
- requirements.txt: Python dependencies for build
- mkdocs.yml: MkDocs site configuration
Problem: Images display in GitHub but not in MkDocs.
Solution:
- Ensure images are in
demos/[demo-name]/artifacts/ - Run
./setup-mkdocs.shto copy images - Use correct path in markdown:
../images/[demo-name]/image.png
Problem: New demo created but not visible in sidebar.
Solution:
- Verify
demos/[demo-name]/artifacts/Readme.mdexists - Run
./setup-mkdocs.sh - Add entry to
navsection inmkdocs.yml - Restart MkDocs server
Problem: Mermaid code shows as text instead of diagram.
Solution: Ensure mermaid code blocks use proper syntax:
```mermaid
graph TD
A --> B
```Problem: OSError: [Errno 48] Address already in use
Solution:
# Kill existing process
lsof -ti:8000 | xargs kill -9
# Or use different port
mkdocs serve -a 127.0.0.1:8001Problem: Documentation pages show 404 errors.
Solution:
# Remove and recreate symlinks
rm -f docs/demos/*.md
./setup-mkdocs.shWhen contributing new demos:
- Follow the established directory structure
- Place all documentation in
artifacts/Readme.md - Include architecture diagrams where applicable
- Run
./setup-mkdocs.shafter adding content - Update
mkdocs.ymlnavigation - Test locally before pushing
- Create clear, descriptive commit messages