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.
This commit is contained in:
parent
f3d077e3c4
commit
09f36dff16
26 changed files with 493 additions and 33 deletions
|
|
@ -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
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
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
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
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
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
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
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
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
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
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
|
||||
|
||||
-->
|
||||
Loading…
Add table
Add a link
Reference in a new issue