chore: fix repo URL, gitignore IDE dirs, and prerequisite docs
This commit is contained in:
parent
1ccccde18d
commit
5d34d2d2bf
14 changed files with 75 additions and 42 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -6,5 +6,9 @@ roadmap.md
|
||||||
# Vagrant
|
# Vagrant
|
||||||
.vagrant/
|
.vagrant/
|
||||||
|
|
||||||
|
# IDEs
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
# macOS
|
# macOS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
|
||||||
70
README.md
70
README.md
|
|
@ -9,15 +9,25 @@ ArgoCD, MetalLB, Ingress-Nginx, and Tekton — all on a local single-node k3s cl
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- [VirtualBox 7.x](https://www.virtualbox.org/wiki/Downloads)
|
Install all three **before** the workshop (ideally the day before — downloads are large):
|
||||||
- [Vagrant 2.4.x](https://developer.hashicorp.com/vagrant/downloads)
|
|
||||||
- Git
|
| Tool | Install |
|
||||||
- 12 GB RAM free on your laptop, ~15 GB disk
|
|--------------------|------------------------------------------------------------------|
|
||||||
|
| **VirtualBox 7.x** | https://www.virtualbox.org/wiki/Downloads — reboot after install |
|
||||||
|
| **Vagrant 2.4.x** | https://developer.hashicorp.com/vagrant/downloads |
|
||||||
|
| **Git** | https://git-scm.com/downloads |
|
||||||
|
|
||||||
|
12 GB RAM free, ~15 GB disk. On Apple Silicon (M1/M2/M3/M4), download the **Apple Silicon build** of VirtualBox — see [docs/vm-setup.md](docs/vm-setup.md).
|
||||||
|
|
||||||
|
Quick check — all three must print a version:
|
||||||
|
```bash
|
||||||
|
VBoxManage --version && vagrant --version && git --version
|
||||||
|
```
|
||||||
|
|
||||||
### 1. Start the VM
|
### 1. Start the VM
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/innspire/ops-demo.git
|
git clone https://github.com/paulharkink/ops-demo.git
|
||||||
cd ops-demo
|
cd ops-demo
|
||||||
vagrant up # first run: ~10–15 min
|
vagrant up # first run: ~10–15 min
|
||||||
vagrant ssh
|
vagrant ssh
|
||||||
|
|
@ -38,14 +48,14 @@ Then follow the exercises in order.
|
||||||
|
|
||||||
## Exercises
|
## Exercises
|
||||||
|
|
||||||
| # | Exercise | Guide | Type | Est. Time |
|
| # | Exercise | Guide | Type | Est. Time |
|
||||||
|---|----------|-------|------|-----------|
|
|----|---------------------------|------------------------------------------------------------|-------|-----------|
|
||||||
| 01 | Bootstrap ArgoCD | [docs/01-argocd-bootstrap.md](docs/01-argocd-bootstrap.md) | Core | 30 min |
|
| 01 | Bootstrap ArgoCD | [docs/01-argocd-bootstrap.md](docs/01-argocd-bootstrap.md) | Core | 30 min |
|
||||||
| 02 | Deploy podinfo via GitOps | [docs/02-deploy-podinfo.md](docs/02-deploy-podinfo.md) | Core | 30 min |
|
| 02 | Deploy podinfo via GitOps | [docs/02-deploy-podinfo.md](docs/02-deploy-podinfo.md) | Core | 30 min |
|
||||||
| 03 | MetalLB + Ingress-Nginx | [docs/03-metallb-ingress.md](docs/03-metallb-ingress.md) | Core | 45 min |
|
| 03 | MetalLB + Ingress-Nginx | [docs/03-metallb-ingress.md](docs/03-metallb-ingress.md) | Core | 45 min |
|
||||||
| 04 | Tekton pipeline | [docs/04-tekton-pipeline.md](docs/04-tekton-pipeline.md) | Core | 45 min |
|
| 04 | Tekton pipeline | [docs/04-tekton-pipeline.md](docs/04-tekton-pipeline.md) | Core | 45 min |
|
||||||
| 05 | App upgrade + reflection | [docs/05-app-upgrade.md](docs/05-app-upgrade.md) | Core | 15 min |
|
| 05 | App upgrade + reflection | [docs/05-app-upgrade.md](docs/05-app-upgrade.md) | Core | 15 min |
|
||||||
| 06 | Prometheus + Grafana | [docs/06-monitoring.md](docs/06-monitoring.md) | Bonus | 60 min |
|
| 06 | Prometheus + Grafana | [docs/06-monitoring.md](docs/06-monitoring.md) | Bonus | 60 min |
|
||||||
|
|
||||||
**Beginners**: aim for Exercises 01–03 (~1h45m).
|
**Beginners**: aim for Exercises 01–03 (~1h45m).
|
||||||
**Everyone else**: target 01–05 for the full core loop.
|
**Everyone else**: target 01–05 for the full core loop.
|
||||||
|
|
@ -54,15 +64,15 @@ Then follow the exercises in order.
|
||||||
|
|
||||||
## Stack
|
## Stack
|
||||||
|
|
||||||
| Component | Purpose | Version |
|
| Component | Purpose | Version |
|
||||||
|-----------|---------|---------|
|
|-----------------------|-------------------------|------------------------|
|
||||||
| k3s | Kubernetes | v1.31.4 |
|
| k3s | Kubernetes | v1.31.4 |
|
||||||
| ArgoCD | GitOps engine | v2.13.x (chart 7.7.11) |
|
| ArgoCD | GitOps engine | v2.13.x (chart 7.7.11) |
|
||||||
| MetalLB | Bare-metal LoadBalancer | v0.14.9 |
|
| MetalLB | Bare-metal LoadBalancer | v0.14.9 |
|
||||||
| Ingress-Nginx | HTTP routing | chart 4.12.0 |
|
| Ingress-Nginx | HTTP routing | chart 4.12.0 |
|
||||||
| Tekton | CI pipeline | v0.65.1 |
|
| Tekton | CI pipeline | v0.65.1 |
|
||||||
| podinfo | Demo app | 6.6.2 → 6.7.0 |
|
| podinfo | Demo app | 6.6.2 → 6.7.0 |
|
||||||
| kube-prometheus-stack | Observability (bonus) | chart 68.4.4 |
|
| kube-prometheus-stack | Observability (bonus) | chart 68.4.4 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -77,14 +87,14 @@ git fetch origin
|
||||||
git show origin/solution/03-metallb-ingress:manifests/networking/metallb/metallb-config.yaml
|
git show origin/solution/03-metallb-ingress:manifests/networking/metallb/metallb-config.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
| Branch | State |
|
| Branch | State |
|
||||||
|--------|-------|
|
|--------------------------------|----------------------------------|
|
||||||
| `solution/01-argocd-bootstrap` | ArgoCD running |
|
| `solution/01-argocd-bootstrap` | ArgoCD running |
|
||||||
| `solution/02-deploy-podinfo` | podinfo synced via ArgoCD |
|
| `solution/02-deploy-podinfo` | podinfo synced via ArgoCD |
|
||||||
| `solution/03-metallb-ingress` | LAN access via MetalLB + Ingress |
|
| `solution/03-metallb-ingress` | LAN access via MetalLB + Ingress |
|
||||||
| `solution/04-tekton-pipeline` | Full GitOps CI loop |
|
| `solution/04-tekton-pipeline` | Full GitOps CI loop |
|
||||||
| `solution/05-app-upgrade` | podinfo at v6.7.0 |
|
| `solution/05-app-upgrade` | podinfo at v6.7.0 |
|
||||||
| `solution/06-monitoring` | Prometheus + Grafana running |
|
| `solution/06-monitoring` | Prometheus + Grafana running |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: workshop
|
project: workshop
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/innspire/ops-demo.git
|
repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
path: manifests/apps/podinfo
|
path: manifests/apps/podinfo
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ spec:
|
||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
- $values/manifests/argocd/values.yaml
|
- $values/manifests/argocd/values.yaml
|
||||||
- repoURL: https://github.com/innspire/ops-demo.git
|
- repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
ref: values
|
ref: values
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: workshop
|
project: workshop
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/innspire/ops-demo.git
|
repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
path: manifests/ci/pipeline
|
path: manifests/ci/pipeline
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: workshop
|
project: workshop
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/innspire/ops-demo.git
|
repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
path: manifests/ci/tekton
|
path: manifests/ci/tekton
|
||||||
kustomize: {}
|
kustomize: {}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ spec:
|
||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
- $values/manifests/monitoring/values.yaml
|
- $values/manifests/monitoring/values.yaml
|
||||||
- repoURL: https://github.com/innspire/ops-demo.git
|
- repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
ref: values
|
ref: values
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ spec:
|
||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
- $values/manifests/networking/ingress-nginx/values.yaml
|
- $values/manifests/networking/ingress-nginx/values.yaml
|
||||||
- repoURL: https://github.com/innspire/ops-demo.git
|
- repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
ref: values
|
ref: values
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: workshop
|
project: workshop
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/innspire/ops-demo.git
|
repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
path: manifests/networking/metallb
|
path: manifests/networking/metallb
|
||||||
directory:
|
directory:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ spec:
|
||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
- $values/manifests/networking/metallb/values.yaml
|
- $values/manifests/networking/metallb/values.yaml
|
||||||
- repoURL: https://github.com/innspire/ops-demo.git
|
- repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
ref: values
|
ref: values
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: workshop
|
project: workshop
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/innspire/ops-demo.git
|
repoURL: https://github.com/paulharkink/ops-demo.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
path: apps
|
path: apps
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ This page walks you through starting the VM and verifying it is healthy before t
|
||||||
|
|
||||||
## Requirements (install on your laptop before the workshop)
|
## Requirements (install on your laptop before the workshop)
|
||||||
|
|
||||||
|
> **Do this the day before** — downloads can be slow on conference WiFi.
|
||||||
|
|
||||||
| Tool | Version | Download |
|
| Tool | Version | Download |
|
||||||
|------|---------|----------|
|
|------|---------|----------|
|
||||||
| VirtualBox | 7.x | https://www.virtualbox.org/wiki/Downloads |
|
| VirtualBox | 7.x | https://www.virtualbox.org/wiki/Downloads |
|
||||||
|
|
@ -16,12 +18,28 @@ This page walks you through starting the VM and verifying it is healthy before t
|
||||||
**RAM**: The VM uses 8 GB. Your laptop should have at least 12 GB total RAM free.
|
**RAM**: The VM uses 8 GB. Your laptop should have at least 12 GB total RAM free.
|
||||||
**Disk**: ~15 GB free (Vagrant box ~1 GB + k3s images ~5 GB + workspace).
|
**Disk**: ~15 GB free (Vagrant box ~1 GB + k3s images ~5 GB + workspace).
|
||||||
|
|
||||||
|
> **Apple Silicon (M1/M2/M3/M4)**: VirtualBox 7.1+ supports Apple Silicon — make sure
|
||||||
|
> to download the **"macOS / Apple Silicon hosts"** build from the VirtualBox download page,
|
||||||
|
> not the Intel build.
|
||||||
|
|
||||||
|
### Verify your installs before continuing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# All three must return a version number — if any fail, install it first
|
||||||
|
VBoxManage --version # e.g. 7.1.4r165100
|
||||||
|
vagrant --version # e.g. Vagrant 2.4.3
|
||||||
|
git --version # e.g. git version 2.x.x
|
||||||
|
```
|
||||||
|
|
||||||
|
If `VBoxManage` is not found after installing VirtualBox, reboot your laptop —
|
||||||
|
VirtualBox installs a kernel extension that requires a restart.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Step 1 — Clone the repo
|
## Step 1 — Clone the repo
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/innspire/ops-demo.git
|
git clone https://github.com/paulharkink/ops-demo.git
|
||||||
cd ops-demo
|
cd ops-demo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -138,6 +156,7 @@ vagrant destroy # delete the VM entirely (start fresh)
|
||||||
|
|
||||||
| Symptom | Fix |
|
| Symptom | Fix |
|
||||||
|---------|-----|
|
|---------|-----|
|
||||||
|
| `vagrant up`: "No usable default provider" | VirtualBox is not installed — install it and reboot, then retry |
|
||||||
| `vagrant up` fails: VT-x/AMD-V not enabled | Enable virtualisation in BIOS/UEFI settings |
|
| `vagrant up` fails: VT-x/AMD-V not enabled | Enable virtualisation in BIOS/UEFI settings |
|
||||||
| `vagrant up` fails: port conflict | Another VM may be using the host-only range; stop it |
|
| `vagrant up` fails: port conflict | Another VM may be using the host-only range; stop it |
|
||||||
| `kubectl get nodes` shows NotReady | k3s is still starting; wait 30–60 s |
|
| `kubectl get nodes` shows NotReady | k3s is still starting; wait 30–60 s |
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ spec:
|
||||||
- name: repo-url
|
- name: repo-url
|
||||||
type: string
|
type: string
|
||||||
description: URL of the ops-demo git repository
|
description: URL of the ops-demo git repository
|
||||||
default: https://github.com/innspire/ops-demo.git
|
default: https://github.com/paulharkink/ops-demo.git
|
||||||
- name: new-tag
|
- name: new-tag
|
||||||
type: string
|
type: string
|
||||||
description: New podinfo image tag to set (e.g. 6.7.0)
|
description: New podinfo image tag to set (e.g. 6.7.0)
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ spec:
|
||||||
serviceAccountName: pipeline-runner
|
serviceAccountName: pipeline-runner
|
||||||
params:
|
params:
|
||||||
- name: repo-url
|
- name: repo-url
|
||||||
value: https://github.com/innspire/ops-demo.git
|
value: https://github.com/paulharkink/ops-demo.git
|
||||||
- name: new-tag
|
- name: new-tag
|
||||||
value: "6.7.0"
|
value: "6.7.0"
|
||||||
- name: git-user-name
|
- name: git-user-name
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue