Remove outdated guides and restructure documentation for infctl and MVK

- Deleted the following guides:
  - Introduction to infctl
  - Local K3d Instance creation
  - Traefik ingress setup
  - Longhorn storage setup
  - Local Vagrant cluster setup
  - Quick Start guide for MVK
  - Minimal Viable Kubernetes overview

- Added new guides:
  - Local Development Environment setup
  - Initial Pipeline Run for infctl
  - Create a Vagrant 3 node cluster
  - Smoke test for Vagrant cluster
  - Add Longhorn Storage guide
  - Add Ingress guide
  - Smoke test for Ingress

- Updated index and navigation links to reflect new structure.
This commit is contained in:
jon brookes 2025-08-25 18:49:33 +01:00
parent c1cea80b12
commit ff6341edf1
16 changed files with 97 additions and 6811 deletions

View file

@ -23,31 +23,35 @@ export default defineConfig({
label: 'MVK',
items: [
// Each item here is one entry in the navigation menu.
{ label: 'Minimal Viable Kubernetes', slug: 'guides/mvk' },
{ label: 'Minimal Viable Kubernetes', slug: 'mvk/intro' },
],
},
{
label: 'infctl',
items: [
// Each item here is one entry in the navigation menu.
{ label: 'Introduction', slug: 'guides/intro' },
{ label: 'Quick Start Guide', slug: 'guides/quick-start' },
{ label: 'Configuration', slug: 'guides/configuration' },
{ label: 'Introduction', slug: 'infctl/intro' },
{ label: 'Quick Start Guide', slug: 'infctl/quick-start' },
{ label: 'Configuration', slug: 'infctl/configuration' },
],
},
{
label: 'Microlearning',
items: [
// Each item here is one entry in the navigation menu.
{ label: 'Local Dev Environment', slug: 'guides/dev-env' },
{ label: 'Create a Local K3d Instance', slug: 'guides/local-k3d' },
{ label: 'Initial Pipeline Run', slug: 'guides/infctl-first-run' },
{ label: 'Create a vagrant 3 node cluster', slug: 'guides/local-vagrant-cluster' },
{ label: 'Add Longhorn Storage', slug: 'guides/local-vagrant-cluster-storage' },
{ label: 'Add Ingress', slug: 'guides/local-vagrant-cluster-ingress' },
autogenerate: { directory: 'guides' },
],
// items: [
// { label: 'Local Dev Environment', slug: 'guides/dev-env' },
// { label: 'Create a Local K3d Instance', slug: 'guides/local-k3d' },
// { label: 'Initial Pipeline Run', slug: 'guides/infctl-first-run' },
// { label: 'Create a vagrant 3 node cluster', slug: 'guides/local-vagrant-cluster' },
// { label: 'Add Longhorn Storage', slug: 'guides/local-vagrant-cluster-storage' },
// { label: 'Add Ingress', slug: 'guides/local-vagrant-cluster-ingress' },
// ],
},
{
label: 'Reference',

6717
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
---
title: Local Development Environment
title: Local Dev Environment
description: A guide to checking a local environment.
---

View file

@ -1,11 +0,0 @@
---
title: Example Guide
description: A guide in my new Starlight docs site.
---
Guides lead a user through a specific task they want to accomplish, often with a sequence of steps.
Writing a good guide requires thinking about what your users are trying to do.
## Further reading
- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework

View file

@ -1,5 +1,5 @@
---
title: Creating Initial Infrastructure
title: Initial Pipeline Run
description: A guide to running infctl for the first time.
---

View file

@ -1,5 +1,5 @@
---
title: Create a Local Vagrant K3s cluster
title: Create a vagrant 3 node cluster
description: A guide to creating a virtualized local k3s instance.
---
@ -50,38 +50,3 @@ This marshals each of the above tasks into a single, repeatable operation.
```bash
LOG_FORMAT=none infctl -f pipelines/dev/vagrant-k3s.json
```
# Smoke test the cluster ...
If all has gone well, a cluster will now be running on your local system comprising of 3 nodes and a workstation.
We can check status by now switching directory to the vagrant dev folder and running a `vagrant status` command :
```bash
cd vagrant/dev/ubuntu/
vagrant status
Current machine states:
vm1 running (virtualbox)
vm2 running (virtualbox)
vm3 running (virtualbox)
workstation running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
```
To work on our cluster we must first connect to the `workstation` and then use `kubectl` commands to interact with `k3s` :
```bash
vagrant ssh workstation
```
From the workstation, use [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) to access our cluster
```bash
kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm1 Ready control-plane,etcd,master 4h11m v1.33.3+k3s1
vm2 Ready control-plane,etcd,master 4h11m v1.33.3+k3s1
vm3 Ready control-plane,etcd,master 4h10m v1.33.3+k3s1
```
If you have got this far, congratulation you have a locally hosted k3s cluster running in 3 virtual machines and a workstation that can be used to manage it using `kubectl` and `ansible`.

View file

@ -0,0 +1,40 @@
---
title: Smoke test the cluster
description: Basic smoke tests
---
# Smoke test the cluster ...
If all has gone well, a cluster will now be running on your local system comprising of 3 nodes and a workstation.
We can check status by now switching directory to the vagrant dev folder and running a `vagrant status` command :
```bash
cd vagrant/dev/ubuntu/
vagrant status
Current machine states:
vm1 running (virtualbox)
vm2 running (virtualbox)
vm3 running (virtualbox)
workstation running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
```
To work on our cluster we must first connect to the `workstation` and then use `kubectl` commands to interact with `k3s` :
```bash
vagrant ssh workstation
```
From the workstation, use [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) to access our cluster
```bash
kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm1 Ready control-plane,etcd,master 4h11m v1.33.3+k3s1
vm2 Ready control-plane,etcd,master 4h11m v1.33.3+k3s1
vm3 Ready control-plane,etcd,master 4h10m v1.33.3+k3s1
```
If you have got this far, congratulation you have a locally hosted k3s cluster running in 3 virtual machines and a workstation that can be used to manage it using `kubectl` and `ansible`.

View file

@ -1,5 +1,5 @@
---
title: Longhorn storage Layer
title: Add Longhorn Storage
description: A guide to adding Longhorn storage.
---

View file

@ -1,5 +1,5 @@
---
title: Traefik ingress
title: Add Ingress
description: A guide to adding ingress.
---
@ -38,18 +38,3 @@ traefik ingress can be installed with
LOG_FORMAT=basic infctl -f pipelines/vagrant-ingress.json
```
## Smoke test ingress
If all has gone well, we should now be able to get the service for `traefik` and see an external IP address and type of `LoadBalancer` :
```bash
kubectl -n traefik get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik LoadBalancer 10.43.5.252 192.168.56.230 80:32066/TCP,443:32410/TCP 16s
```
Here the address of `192.168.56.230` is available to use to ingress route our services, pods and Kubernetes hosted apps on both plain text port 89 and over TLS https on port 443.
We will be able next to assign a certificate to this 2nd port such that `traefik` will be able to serve URL's on that port to our pods and apps.
Initially this will use a self signed certificate but we will be able to crate our own CA and have a secure connection without browser warnings on our local, vagrant mks cluster environment.

View file

@ -0,0 +1,20 @@
---
title: Smoke Test Ingress
description: Simple test for ingress.
---
## Smoke test ingress
If all has gone well, we should now be able to get the service for `traefik` and see an external IP address and type of `LoadBalancer` :
```bash
kubectl -n traefik get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik LoadBalancer 10.43.5.252 192.168.56.230 80:32066/TCP,443:32410/TCP 16s
```
Here the address of `192.168.56.230` is available to use to ingress route our services, pods and Kubernetes hosted apps on both plain text port 89 and over TLS https on port 443.
We will be able next to assign a certificate to this 2nd port such that `traefik` will be able to serve URL's on that port to our pods and apps.
Initially this will use a self signed certificate but we will be able to crate our own CA and have a secure connection without browser warnings on our local, vagrant mks cluster environment.

View file

@ -8,7 +8,7 @@ hero:
file: ../../assets/mvk.png
actions:
- text: MVK Guide
link: /guides/mvk/
link: /mvk/intro/
icon: right-arrow
- text: infctl and mvk source
link: https://codeberg.org/headshed/infctl-cli

View file

@ -1,5 +1,5 @@
---
title: Minimal Viable Kubernetes
title: Minimal Viable Kubernetes Intro
description: introducing minimal viable Kubernetes and its guiding principles
---