Skip to content

Commit 6fad93e

Browse files
committed
Update gh-pages build setup
1 parent 6f70eda commit 6fad93e

File tree

19 files changed

+4515
-24
lines changed

19 files changed

+4515
-24
lines changed

.github/workflows/ci-docs.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ jobs:
1616

1717
steps:
1818
- name: Checkout code
19-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
19+
uses: actions/checkout@v5
2020
with:
2121
submodules: 'recursive'
2222

2323
- name: Set up Hugo
24-
uses: peaceiris/actions-hugo@6e295a6a0c9087bf374299e9d67f9d2edab9f18f # v3.0.0
24+
uses: peaceiris/actions-hugo@v3
2525
with:
2626
hugo-version: 'latest'
2727
extended: true
2828

2929
- name: Set up Node
30-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
30+
uses: actions/setup-node@v5
3131
with:
3232
node-version: 20
3333

34-
- name: Set up PostCSS
35-
run: npm install --save-dev autoprefixer postcss-cli postcss
34+
- name: Install dependencies
35+
run: npm ci
3636

3737
- name: Build
3838
run: hugo

.github/workflows/publish-docs.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,33 @@ jobs:
1515

1616
steps:
1717
- name: Checkout code
18-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
18+
uses: actions/checkout@v5
1919
with:
2020
submodules: 'recursive'
2121

2222
- name: Set up Pages
2323
id: pages
24-
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
24+
uses: actions/configure-pages@v5
2525

2626
- name: Set up Hugo
27-
uses: peaceiris/actions-hugo@6e295a6a0c9087bf374299e9d67f9d2edab9f18f # v3.0.0
27+
uses: peaceiris/actions-hugo@v3
2828
with:
2929
hugo-version: 'latest'
3030
extended: true
3131

3232
- name: Set up Node
33-
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
33+
uses: actions/setup-node@v5
3434
with:
3535
node-version: 20
3636

37-
- name: Set up PostCSS
38-
run: npm install --save-dev autoprefixer postcss-cli postcss
37+
- name: Install dependencies
38+
run: npm ci
3939

4040
- name: Build
41-
run: hugo --environment production --baseURL ${{ steps.pages.outputs.base_url }}/
41+
run: hugo --environment production --gc --minify --baseURL ${{ steps.pages.outputs.base_url }}/
4242

4343
- name: Upload artifact
44-
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
44+
uses: actions/upload-pages-artifact@v4
4545
with:
4646
path: ./public/
4747

@@ -66,4 +66,4 @@ jobs:
6666
steps:
6767
- name: Deploy to GitHub Pages
6868
id: deployment
69-
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
69+
uses: actions/deploy-pages@v4

config/_default/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
title = "Koperator"
33

4-
#theme = ["docsy"]
4+
# theme = ["docsy"] # Using Hugo modules instead
55

66
baseurl = "https://opensource.adobe.com/koperator/"
77

content/docs/_index.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,35 @@ For detailed KRaft configuration and deployment guides, see the [KRaft Mode Docu
148148

149149
For detailed Istio integration configuration, troubleshooting, and migration guides, see the [Istio Integration Guide]({{< relref "istio-integration.md" >}}).
150150

151+
## Getting Started
152+
153+
### Quick Start
154+
155+
For users who want to get started quickly with Koperator, follow the standard installation and deployment guides:
156+
157+
1. **[Install the Operator]({{< relref "install-kafka-operator.md" >}})** - Install Koperator and its dependencies
158+
2. **[Deploy a Kafka Cluster]({{< relref "install-kafka-operator.md#deploy-a-kafka-cluster" >}})** - Create your first Kafka cluster
159+
3. **[Test Your Deployment]({{< relref "test.md" >}})** - Validate your cluster with producers and consumers
160+
161+
### End-to-End Tutorial - The Hard Way
162+
163+
For users who want to understand every component and learn Kafka on Kubernetes from the ground up, we provide a comprehensive tutorial inspired by Kelsey Hightower's "kubernetes-the-hard-way":
164+
165+
**[Kafka on Kubernetes - The Hard Way]({{< relref "e2e-tutorial/_index.md" >}})**
166+
167+
This tutorial walks you through:
168+
- Setting up a multi-node Kubernetes cluster with kind
169+
- Installing all dependencies manually (cert-manager, ZooKeeper, Prometheus)
170+
- Deploying a production-ready Kafka cluster with monitoring
171+
- Testing performance, disaster recovery, and troubleshooting
172+
173+
**Perfect for:**
174+
- Learning how all components work together
175+
- Understanding Kafka deployment architecture
176+
- Preparing for production deployments
177+
- Troubleshooting and debugging skills
178+
179+
**Time commitment:** 2-3 hours
180+
151181
---
152182
Apache Kafka, Kafka, and the Kafka logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: Kafka on Kubernetes - The Hard Way
3+
shorttitle: E2E Tutorial
4+
weight: 990
5+
---
6+
7+
Inspired by Kelsey Hightower's [kubernetes-the-hard-way](https://github.com/kelseyhightower/kubernetes-the-hard-way), this comprehensive tutorial walks you through setting up a complete Kafka environment on Kubernetes using the Koperator from scratch.
8+
9+
## What You'll Learn
10+
11+
This tutorial will teach you how to:
12+
13+
- Set up a multi-node Kubernetes cluster using kind
14+
- Install and configure all required dependencies manually
15+
- Deploy a production-ready Kafka cluster with monitoring
16+
- Test and validate your Kafka deployment
17+
- Handle disaster recovery scenarios
18+
- Troubleshoot common issues
19+
20+
## Why "The Hard Way"?
21+
22+
This tutorial is called "the hard way" because it walks through each step manually rather than using automated scripts or simplified configurations. This approach helps you understand:
23+
24+
- How each component works and interacts with others
25+
- The dependencies and relationships between services
26+
- How to troubleshoot when things go wrong
27+
- The complete architecture of a Kafka deployment on Kubernetes
28+
29+
## Prerequisites
30+
31+
Before starting this tutorial, you should have:
32+
33+
- Basic knowledge of Kubernetes concepts (pods, services, deployments)
34+
- Familiarity with Apache Kafka fundamentals
35+
- A local development machine with Docker installed
36+
- At least 8GB of RAM and 4 CPU cores available for the kind cluster
37+
38+
## Tutorial Structure
39+
40+
This tutorial is organized into the following sections:
41+
42+
1. **[Prerequisites and Setup]({{< relref "prerequisites.md" >}})** - Install required tools and prepare your environment
43+
2. **[Kubernetes Cluster Setup]({{< relref "cluster-setup.md" >}})** - Create a multi-node kind cluster with proper labeling
44+
3. **[Dependencies Installation]({{< relref "dependencies.md" >}})** - Install cert-manager, ZooKeeper operator, and Prometheus operator
45+
4. **[Koperator Installation]({{< relref "koperator-install.md" >}})** - Install the Kafka operator and its CRDs
46+
5. **[Kafka Cluster Deployment]({{< relref "kafka-deployment.md" >}})** - Deploy and configure a Kafka cluster with monitoring
47+
6. **[Testing and Validation]({{< relref "testing.md" >}})** - Create topics, run producers/consumers, and performance tests
48+
7. **[Disaster Recovery Scenarios]({{< relref "disaster-recovery.md" >}})** - Test failure scenarios and recovery procedures
49+
8. **[Troubleshooting]({{< relref "troubleshooting.md" >}})** - Common issues and debugging techniques
50+
51+
## Architecture Overview
52+
53+
By the end of this tutorial, you'll have deployed the following architecture:
54+
55+
```
56+
┌─────────────────────────────────────────────────────────────────┐
57+
│ Kubernetes Cluster (kind) │
58+
├─────────────────────────────────────────────────────────────────┤
59+
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
60+
│ │ Control Plane │ │ Worker AZ1 │ │ Worker AZ2 │ │
61+
│ │ │ │ │ │ │ │
62+
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
63+
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
64+
│ │ Worker AZ3 │ │ Worker AZ1 │ │ Worker AZ2 │ │
65+
│ │ │ │ │ │ │ │
66+
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
67+
├─────────────────────────────────────────────────────────────────┤
68+
│ Applications │
69+
├─────────────────────────────────────────────────────────────────┤
70+
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
71+
│ │ Kafka Cluster │ │ ZooKeeper │ │ Monitoring │ │
72+
│ │ (3 brokers) │ │ (3 nodes) │ │ Stack │ │
73+
│ │ │ │ │ │ │ │
74+
│ │ ┌─────────────┐│ │ ┌─────────────┐│ │ ┌─────────────┐│ │
75+
│ │ │ Broker 101 ││ │ │ ZK-0 ││ │ │ Prometheus ││ │
76+
│ │ │ Broker 102 ││ │ │ ZK-1 ││ │ │ Grafana ││ │
77+
│ │ │ Broker 201 ││ │ │ ZK-2 ││ │ │ AlertMgr ││ │
78+
│ │ │ Broker 202 ││ │ └─────────────┘│ │ └─────────────┘│ │
79+
│ │ │ Broker 301 ││ └─────────────────┘ └─────────────────┘ │
80+
│ │ │ Broker 302 ││ │
81+
│ │ └─────────────┘│ │
82+
│ └─────────────────┘ │
83+
├─────────────────────────────────────────────────────────────────┤
84+
│ Infrastructure │
85+
├─────────────────────────────────────────────────────────────────┤
86+
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
87+
│ │ cert-manager │ │ Koperator │ │ Cruise │ │
88+
│ │ │ │ │ │ Control │ │
89+
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
90+
└─────────────────────────────────────────────────────────────────┘
91+
```
92+
93+
## Key Features Demonstrated
94+
95+
This tutorial demonstrates:
96+
97+
- **Multi-AZ deployment** with rack awareness
98+
- **SSL/TLS encryption** for secure communication
99+
- **Monitoring and alerting** with Prometheus and Grafana
100+
- **Automatic scaling** with Cruise Control
101+
- **Persistent storage** with proper volume management
102+
- **External access** configuration
103+
- **Disaster recovery** and failure handling
104+
105+
## Time Commitment
106+
107+
Plan to spend approximately 2-3 hours completing this tutorial, depending on your familiarity with the tools and concepts involved.
108+
109+
## Getting Started
110+
111+
Ready to begin? Start with the [Prerequisites and Setup]({{< relref "prerequisites.md" >}}) section.
112+
113+
---
114+
115+
> **Note**: This tutorial is designed for learning and development purposes. For production deployments, consider using automated deployment tools and following your organization's security and operational guidelines.

0 commit comments

Comments
 (0)