added gcloud intro
- Created a new script `instalL_asciinema.sh` to automate the installation of asciinema. - The script detects the operating system and architecture to download the appropriate binary. - Supports Linux (both musl and GNU) and macOS (Darwin). - Sets executable permissions for the downloaded binary and verifies the installation by displaying the version.
|
|
@ -2,9 +2,9 @@
|
|||
level: 2
|
||||
---
|
||||
|
||||
# Configuration
|
||||
# `infctl`
|
||||
|
||||
Configuration is based on a simple list of JSON objects.
|
||||
Keep it simple, list of JSON objects.
|
||||
|
||||
````md magic-move {lines: true}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,26 +2,27 @@
|
|||
level: 2
|
||||
---
|
||||
|
||||
# MVK
|
||||
# MVK for pre-production
|
||||
|
||||
The **V** in MVK is for *viable*, so why is MVK viable ?
|
||||
The **V** in MVK is for *viable*, so why is MVK viable for 3 or more nodes ?
|
||||
|
||||
<div class="grid grid-cols-1">
|
||||
|
||||
```mermaid
|
||||
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
|
||||
flowchart LR
|
||||
root((MVK))
|
||||
root((3-node))
|
||||
PS[Persistent Storage]
|
||||
LH[Longhorn]
|
||||
ING[Ingress]
|
||||
TRA[Traefik]
|
||||
MET[Metallb]
|
||||
MET[cert-manager]
|
||||
ETCD[etcd]
|
||||
KA[keepalived]
|
||||
|
||||
root --> PS --> LH
|
||||
root --> ING --> TRA --> MET
|
||||
root --> ING --> TRA
|
||||
ING --> MET
|
||||
root --> ETCD --> KA
|
||||
|
||||
classDef default fill:transparent,color:#fff,stroke:#888
|
||||
|
|
@ -31,9 +32,7 @@ flowchart LR
|
|||
|
||||
<div v-click>
|
||||
|
||||
We have in the build so far etcd and keepalived
|
||||
|
||||
there is still no persistent volume management or ingress
|
||||
close to production - storage and multi node
|
||||
|
||||
</div>
|
||||
|
||||
58
pages/diagram-single-node.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
level: 2
|
||||
---
|
||||
|
||||
# MVK for development
|
||||
|
||||
The **V** in MVK is for *viable*, so why is MVK viable for single 'dev' nodes ?
|
||||
|
||||
<div class="grid grid-cols-1">
|
||||
|
||||
```mermaid
|
||||
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
|
||||
flowchart LR
|
||||
root((1-node))
|
||||
PS[Persistent Storage]
|
||||
LH[Local attached]
|
||||
ING[Ingress]
|
||||
TRA[Traefik]
|
||||
MET[cert-manager]
|
||||
ETCD[etcd]
|
||||
|
||||
root --> PS --> LH
|
||||
root --> ING --> TRA
|
||||
ING --> MET
|
||||
root --> ETCD
|
||||
|
||||
classDef default fill:transparent,color:#fff,stroke:#888
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div v-click>
|
||||
|
||||
Locally attached storage - single node implementation
|
||||
|
||||
Ingress can represent that of prodution environmetns that use cert-manager
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
|
||||
why is MVK 'viable' ?
|
||||
|
||||
Out of the box K8s examples and some deployments are not useable without other externalities
|
||||
|
||||
* Persistent storage - often built in to managed kubernetes cloud platforms
|
||||
* Ingress - is also provided by cloud providers, K8s does not natively have this
|
||||
* ETCD is often offered as the 'management plane', again as part of managed kubernetes by cloud providers
|
||||
|
||||
K3s does not use k8s traditional 3 node ETCD unless you configure it to do so
|
||||
|
||||
MKK's infctl pipelines configure 3 node k3s on all 3 nodes
|
||||
|
||||
it also adds Longhorn for persistent storage
|
||||
|
||||
ingress is impossible without metallb and some kind of load balancer - traefik being my preference but others could be used, of course
|
||||
|
||||
-->
|
||||
85
pages/gcloud-single.md
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
level: 2
|
||||
---
|
||||
|
||||
# GCE
|
||||
|
||||
Google Compute Engine
|
||||
|
||||
````md magic-move {lines: true}
|
||||
|
||||
```bash
|
||||
# 1. PREREQS
|
||||
# 2. CONFIGURE
|
||||
# 3. RUN
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
# PREREQS
|
||||
# run pre flight checks ...
|
||||
#
|
||||
# we need to run this at least once to ensure we have tooling available ...
|
||||
```
|
||||
|
||||
```bash
|
||||
# PREREQS
|
||||
# run pre flight checks ...
|
||||
cd /home/user/projects/infctl-cli # where we checked out infct-cli to
|
||||
./gcloud/tf/scripts/pre-flight-checks.sh
|
||||
```
|
||||
|
||||
```bash
|
||||
# PREREQS
|
||||
# running pre flight checks ...
|
||||
./gcloud/tf/scripts/pre-flight-checks.sh
|
||||
# .....
|
||||
|
||||
✅ tofu is installed,...
|
||||
|
||||
✅ gcloud is installed,...
|
||||
|
||||
✅ kubectl is installed,...
|
||||
|
||||
✅ envsubst is installed,...
|
||||
|
||||
# .....
|
||||
|
||||
✅ Pre-flight checks passed. You are ready to proceed 🙂
|
||||
```
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
# CONFIGURE
|
||||
[ -f .env ] || cp -v .env.gcloud-example .env
|
||||
# edit to include
|
||||
export PROJECT_NAME="the name of your gcp project, often referred to as the project"
|
||||
export EMAIL="your email address to identify yourself with letsencrypt"
|
||||
export APP_DOMAIN_NAME="your domain name for the app, e.g., frgdr.some-domain.com"
|
||||
export INSTALL_FORGEJO="true"
|
||||
```
|
||||
|
||||
```bash
|
||||
# RUN
|
||||
LOG_FORMAT=none infctl -f ./gcloud/tf/scripts/build-gcloud-k3s-pipeline-wait-dns.json
|
||||
```
|
||||
|
||||
|
||||
|
||||
````
|
||||
<div v-click>
|
||||
|
||||
Lets see a Google Compute Engine install [Demo](https://ascii.headshed.dev/a/qslfF9KTMj69zcSwzD6xm1uZ7)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
TBC
|
||||
|
||||
....
|
||||
|
||||
-->
|
||||
|
|
@ -1,18 +1,13 @@
|
|||
# Minimal Viable Kubernetes?
|
||||
# Minimal Viable Kubernetes
|
||||
|
||||
What is MVK ?
|
||||
What is MVK ?
|
||||
|
||||
≥ **CLI first** uses [`infctl`](https://mvk.headshed.dev/infctl/quick-start/)
|
||||
### ≥ CLI friendly, CLI first
|
||||
|
||||
🧑💻 **Startup Ready** functional simply
|
||||
|
||||
🤹 **Automated** infrastructure as code
|
||||
|
||||
🎥 **Repeatable** re-useable and predictable.
|
||||
|
||||
📤 **Portable** kubernetes that can run anywhere
|
||||
|
||||
🛠 **Hackable** simple to modify & extend
|
||||
|
||||
|
||||
<!--
|
||||
26
pages/intro02.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
What is MVK ?
|
||||
|
||||
### ≥ CLI friendly, CLI first
|
||||
|
||||
### 🤹 Promotes Infrastructure as code
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
26
pages/intro03.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
What is MVK ?
|
||||
|
||||
### ≥ CLI friendly, CLI first
|
||||
|
||||
### 🤹 Promotes Infrastructure as code
|
||||
|
||||
### 📤 **Portable** on-prem, cloud
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
27
pages/intro04.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
What is MVK ?
|
||||
|
||||
### ≥ CLI friendly, CLI first
|
||||
|
||||
### 🤹 Promotes Infrastructure as code
|
||||
|
||||
### 📤 **Portable** on-prem, cloud
|
||||
|
||||
### 🧐 Fosters inquisitiveness
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
29
pages/intro05.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
What is MVK ?
|
||||
|
||||
### ≥ CLI friendly, CLI first
|
||||
|
||||
### 🤹 Promotes Infrastructure as code
|
||||
|
||||
### 📤 **Portable** on-prem, cloud
|
||||
|
||||
### 🧐 Fosters inquisitiveness
|
||||
|
||||
### 🔒 Favours independence over lock-in
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
28
pages/uses01.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
Use Cases ?
|
||||
|
||||
### 🏠 Local development
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
29
pages/uses02.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
Use Cases ?
|
||||
|
||||
### 🏠 Local development
|
||||
|
||||
### 🛠️ Integration and smoke testing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
28
pages/uses03.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
Use Cases ?
|
||||
|
||||
### 🏠 Local development
|
||||
|
||||
### 🛠️ Integration and smoke testing
|
||||
|
||||
### 🎬 Pre-prod & production
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
28
pages/uses04.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Minimal Viable Kubernetes
|
||||
|
||||
Use Cases ?
|
||||
|
||||
### 🏠 Local development
|
||||
|
||||
### 🛠️ Integration and smoke testing
|
||||
|
||||
### 🎬 Pre-prod & production
|
||||
|
||||
### 💣 Disaster recovery rehearsal
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
We live in the command line, so MVK is CLI centric. It uses a very simple command line tool, `infctl` to marshal scripts and commands in a stop by step manner, similar to the way we right pipelines in the cloud.
|
||||
|
||||
It is simple to get started, so that startups and the impatient can become productive with Kubernetes quickly, without having to rely on managed offerings and in order to self host easily.
|
||||
|
||||
Each pipeline use steps of code that are repeatable, idempotent and using infrastructure as code.
|
||||
|
||||
Kubernetes *can run anywhere* so MVK takes that principle and applies this to the self hosted approach making it possible to have the same setup on-prem and in the cloud
|
||||
|
||||
It is important to keep things simple so as to be understandable, maintainable and easy to change and extend to our own use cases
|
||||
|
||||
-->
|
||||
BIN
public/boat-under-water.jpg
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
public/cont13_c.jpg
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
public/cont3_c.jpg
Normal file
|
After Width: | Height: | Size: 244 KiB |
BIN
public/cont8_c.jpg
Normal file
|
After Width: | Height: | Size: 267 KiB |
BIN
public/cont_ship3_c.jpg
Normal file
|
After Width: | Height: | Size: 205 KiB |
BIN
public/cont_ship4_c.jpg
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
public/cont_ship5_c.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
public/container_pipeline.jpg
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
public/containers2.jpg
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
public/error.png
Normal file
|
After Width: | Height: | Size: 831 KiB |
BIN
public/hi-and-dry.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
46
scripts/instalL_asciinema.sh
Executable file
|
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
## available versions as of Tue 7 Oct 18:34:05 BST 2025
|
||||
|
||||
# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-aarch64-apple-darwin
|
||||
# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-aarch64-unknown-linux-gnu
|
||||
# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-apple-darwin
|
||||
# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-unknown-linux-gnu
|
||||
# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-unknown-linux-musl
|
||||
|
||||
VERSION="3.0.0"
|
||||
LINK="https://github.com/asciinema/asciinema/releases/download/v${VERSION}/asciinema-"
|
||||
|
||||
unameOut="$(uname -s)"
|
||||
archOut="$(uname -m)"
|
||||
|
||||
case "${unameOut}" in
|
||||
Linux)
|
||||
if ldd --version 2>&1 | grep -q musl; then
|
||||
platform="x86_64-unknown-linux-musl"
|
||||
else
|
||||
platform="x86_64-unknown-linux-gnu"
|
||||
fi
|
||||
if [[ "${archOut}" == "aarch64" ]]; then
|
||||
platform="aarch64-unknown-linux-gnu"
|
||||
fi
|
||||
;;
|
||||
Darwin)
|
||||
if [[ "${archOut}" == "arm64" ]]; then
|
||||
platform="aarch64-apple-darwin"
|
||||
else
|
||||
platform="x86_64-apple-darwin"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported platform: ${unameOut} ${archOut}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Detected platform: $platform"
|
||||
echo "installing asciinema version ${VERSION} for ${platform}"
|
||||
sudo curl -sL "${LINK}${platform}" -o /usr/local/bin/asciinema
|
||||
sudo chmod +x /usr/local/bin/asciinema
|
||||
asciinema --version
|
||||
86
slides.md
|
|
@ -7,7 +7,7 @@ theme: seriph
|
|||
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/mYBMP8pW4uQ.webp
|
||||
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/zRkBOOpKRhs.webp
|
||||
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/3XXSKa4jKaM.webp
|
||||
background: containers.webp
|
||||
background: container_pipeline.jpg
|
||||
# some information about your slides (markdown enabled)
|
||||
title: Minimal Viable Kubernetes
|
||||
info: |
|
||||
|
|
@ -37,7 +37,7 @@ seoMeta:
|
|||
Kubernetes for the impatient and pragmatic
|
||||
|
||||
Jon Brookes 2025
|
||||
|
||||
cont13_c.jpg
|
||||
[https://headshed.dev/n25](https://headshed.dev/n25)
|
||||
|
||||
<div @click="$slidev.nav.next" class="mt-12 py-1" hover:bg="white op-10">
|
||||
|
|
@ -60,13 +60,74 @@ Jon Brookes 2025
|
|||
This is an introduction to Minimal Viable Kubernetes (MVK). What it is, why it is brought into being and the tooling around it.
|
||||
-->
|
||||
|
||||
---
|
||||
layout: image-right
|
||||
image: cont3_c.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/intro01.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-right
|
||||
image: cont8_c.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/intro02.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-right
|
||||
image: containers3.png
|
||||
transition: fade-out
|
||||
src: ./pages/intro-slide.md
|
||||
src: ./pages/intro03.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-right
|
||||
image: containers2.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/intro04.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-right
|
||||
image: boat-under-water.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/intro05.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-left
|
||||
image: cont_ship3_c.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/uses01.md
|
||||
---
|
||||
|
||||
---
|
||||
layout: image-left
|
||||
image: cont_ship4_c.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/uses02.md
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
layout: image-left
|
||||
image: cont_ship5_c.jpg
|
||||
transition: fade-out
|
||||
src: ./pages/uses03.md
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
layout: image-left
|
||||
image: hi-and-dry.png
|
||||
transition: fade-out
|
||||
src: ./pages/uses04.md
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
You can have `style` tag in markdown to override the style for the current page.
|
||||
Learn more: https://sli.dev/features/slide-scope-style
|
||||
|
|
@ -99,31 +160,27 @@ src: ./pages/usage-slide.md
|
|||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/run-slide.md
|
||||
src: ./pages/diagram-single-node.md
|
||||
---
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/diagram.md
|
||||
src: ./pages/diagram-3node.md
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/storage.md
|
||||
src: ./pages/gcloud-single.md
|
||||
---
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/ingress.md
|
||||
---
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/ingress-test.md
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
|
@ -147,4 +204,3 @@ class: text-center
|
|||
|
||||
[https://headshed.dev/n25/](https://headshed.dev/n25/)
|
||||
|
||||
<PoweredBySlidev mt-10 />
|
||||
|
|
|
|||