first commit
This commit is contained in:
parent
c884330ca9
commit
dcc2f600ae
16 changed files with 9152 additions and 0 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
node_modules
|
||||
.DS_Store
|
||||
dist
|
||||
*.local
|
||||
.vite-inspect
|
||||
.remote-assets
|
||||
components.d.ts
|
||||
3
.npmrc
Normal file
3
.npmrc
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# for pnpm
|
||||
shamefully-hoist=true
|
||||
auto-install-peers=true
|
||||
37
components/Counter.vue
Normal file
37
components/Counter.vue
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = defineProps({
|
||||
count: {
|
||||
default: 0,
|
||||
},
|
||||
})
|
||||
|
||||
const counter = ref(props.count)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div flex="~" w="min" border="~ main rounded-md">
|
||||
<button
|
||||
border="r main"
|
||||
p="2"
|
||||
font="mono"
|
||||
outline="!none"
|
||||
hover:bg="gray-400 opacity-20"
|
||||
@click="counter -= 1"
|
||||
>
|
||||
-
|
||||
</button>
|
||||
<span m="auto" p="2">{{ counter }}</span>
|
||||
<button
|
||||
border="l main"
|
||||
p="2"
|
||||
font="mono"
|
||||
outline="!none"
|
||||
hover:bg="gray-400 opacity-20"
|
||||
@click="counter += 1"
|
||||
>
|
||||
+
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
BIN
infctl.png
Normal file
BIN
infctl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 129 KiB |
16
netlify.toml
Normal file
16
netlify.toml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[build]
|
||||
publish = "dist"
|
||||
command = "npm run build"
|
||||
|
||||
[build.environment]
|
||||
NODE_VERSION = "20"
|
||||
|
||||
[[redirects]]
|
||||
from = "/.well-known/*"
|
||||
to = "/.well-known/:splat"
|
||||
status = 200
|
||||
|
||||
[[redirects]]
|
||||
from = "/*"
|
||||
to = "/index.html"
|
||||
status = 200
|
||||
BIN
og-image.png
Normal file
BIN
og-image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 737 KiB |
8763
package-lock.json
generated
Normal file
8763
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
19
package.json
Normal file
19
package.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "nov-2025-mvk",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "slidev build",
|
||||
"dev": "slidev --open",
|
||||
"export": "slidev export"
|
||||
},
|
||||
"dependencies": {
|
||||
"@slidev/cli": "^52.1.0",
|
||||
"@slidev/theme-default": "latest",
|
||||
"@slidev/theme-seriph": "latest",
|
||||
"vue": "^3.5.18"
|
||||
},
|
||||
"devDependencies": {
|
||||
"playwright-chromium": "^1.54.2"
|
||||
}
|
||||
}
|
||||
64
pages/config-slide.md
Normal file
64
pages/config-slide.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
level: 2
|
||||
---
|
||||
|
||||
# Configuration
|
||||
|
||||
Configuration is based on a list of simple JSON objects.
|
||||
|
||||
````md magic-move {lines: true}
|
||||
```js {1,12|2-10}
|
||||
[
|
||||
{
|
||||
"name": "...",
|
||||
"function": "...",
|
||||
"params": [
|
||||
"..."
|
||||
],
|
||||
"retryCount": int,
|
||||
"shouldAbort": true|false
|
||||
},
|
||||
{}
|
||||
]
|
||||
```
|
||||
|
||||
```js {2-10}
|
||||
[
|
||||
{
|
||||
"name": "ensure infctl namespace exists",
|
||||
"function": "k8sNamespaceExists",
|
||||
"params": [
|
||||
"infctl"
|
||||
],
|
||||
"retryCount": 0,
|
||||
"shouldAbort": true
|
||||
},
|
||||
{}
|
||||
]
|
||||
|
||||
```
|
||||
|
||||
```js
|
||||
[
|
||||
{
|
||||
"name": "ensure infctl namespace exists",
|
||||
"function": "k8sNamespaceExists",
|
||||
"params": [
|
||||
"infctl"
|
||||
],
|
||||
"retryCount": 0,
|
||||
"shouldAbort": true
|
||||
},
|
||||
{
|
||||
"name": "check operator"",
|
||||
"function": "RunCommand",
|
||||
"params": [
|
||||
"./scripts/check__operator.sh"
|
||||
],
|
||||
"retryCount": 5,
|
||||
"shouldAbort": true
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
````
|
||||
27
pages/imported-slides.md
Normal file
27
pages/imported-slides.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Imported Slides
|
||||
|
||||
You can split your slides.md into multiple files and organize them as you want using the `src` attribute.
|
||||
|
||||
#### `slides.md`
|
||||
|
||||
```markdown
|
||||
# Page 1
|
||||
|
||||
Page 2 from main entry.
|
||||
|
||||
---
|
||||
|
||||
## src: ./subpage.md
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
#### `subpage.md`
|
||||
|
||||
```markdown
|
||||
# Page 2
|
||||
|
||||
Page 2 from another file.
|
||||
```
|
||||
|
||||
[Learn more](https://sli.dev/guide/syntax.html#importing-slides)
|
||||
39
pages/infctl-summary.md
Normal file
39
pages/infctl-summary.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Alpha release
|
||||
|
||||
<div grid="~ cols-2 gap-4">
|
||||
<div>
|
||||
|
||||
`infctl` is an early release.
|
||||
|
||||
treat is as 'Alpha'.
|
||||
|
||||
Its a sketch of ideas I've been working on for decades.
|
||||
|
||||
I'd like to share it as I code it and use it.
|
||||
|
||||
Open to ideas, comments, contribution and collaboration.
|
||||
|
||||
License: [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
|
||||
|
||||
|
||||
|
||||
Check out [https://codeberg.org/headshed/infctl-cli](https://codeberg.org/headshed/infctl-cli) for more.
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
<img src="/infctl.png">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
Presenter note with **bold**, *italic*, and ~~striked~~ text.
|
||||
|
||||
Also, HTML elements are valid:
|
||||
<div class="flex w-full">
|
||||
<span style="flex-grow: 1;">Left content</span>
|
||||
<span>Right content</span>
|
||||
</div>
|
||||
-->
|
||||
22
pages/intro-slide.md
Normal file
22
pages/intro-slide.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# What is Minimal Viable Kubernetes?
|
||||
|
||||
MVK is kubernetes for the impatient and impeverished, and consists the following features
|
||||
|
||||
- ≥ **CLI** - Living in the terminal, uses [`infctl`](https://mvk.headshed.dev/guides/intro/) command line pipeline
|
||||
- 🧑💻 **Startup Friendly** - Getting a functional stack quickly and simply
|
||||
- 🤹 **Automated** - Focus on an infrastructure as code
|
||||
- 🎥 **Repeatable** - Repeatable, re-useable and predictable.
|
||||
- 📤 **Portable** - Kubernetes that can run anywhere
|
||||
- 🛠 **Hackable** - Simple to modify, extend and prototype
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<div mt-20 v-click>
|
||||
|
||||
See a [Demo that goes terribly wrong](http://ascii.headshed.dev/a/f8S5WqD7OyCzkTcoPZhCSnefX?t=30)
|
||||
|
||||
Then see [one that goes right](http://ascii.headshed.dev/a/jSYcC7p4pbkMdf1B07rQOiIa0?t=01:30)
|
||||
|
||||
</div>
|
||||
|
||||
30
pages/plugins-slide.md
Normal file
30
pages/plugins-slide.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
level: 2
|
||||
---
|
||||
|
||||
# Plugins
|
||||
|
||||
Plugins are any script or executable that print output and exit with a number.
|
||||
|
||||
````md magic-move {lines: true}
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "HI THERE..."
|
||||
|
||||
exit 0
|
||||
```
|
||||
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# do some work...
|
||||
sleep 10
|
||||
|
||||
echo "call the president..."
|
||||
|
||||
exit 1
|
||||
```
|
||||
|
||||
|
||||
````
|
||||
106
slides.md
Normal file
106
slides.md
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
# You can also start simply with 'default'
|
||||
theme: seriph
|
||||
# random image from a curated Unsplash collection by Anthony
|
||||
# like them? see https://unsplash.com/collections/94734566/slidev
|
||||
background: https://cover.sli.dev
|
||||
# some information about your slides (markdown enabled)
|
||||
title: Minimal Viable Kubernetes
|
||||
info: |
|
||||
## MVK
|
||||
Kubernetes for minimalists.
|
||||
|
||||
Learn more at [mvk.headshed.dev](https://mvk.headshed.dev)
|
||||
# apply unocss classes to the current slide
|
||||
class: text-center
|
||||
# https://sli.dev/features/drawing
|
||||
drawings:
|
||||
persist: false
|
||||
# slide transition: https://sli.dev/guide/animations.html#slide-transitions
|
||||
transition: slide-left
|
||||
# enable MDC Syntax: https://sli.dev/features/mdc
|
||||
mdc: true
|
||||
# open graph
|
||||
seoMeta:
|
||||
# By default, Slidev will use ./og-image.png if it exists,
|
||||
# or generate one from the first slide if not found.
|
||||
ogImage: auto
|
||||
# ogImage: https://cover.sli.dev
|
||||
---
|
||||
|
||||
# Minimal Viable Kubernetes
|
||||
|
||||
Kubernetes for the impatient and impoverished
|
||||
|
||||
Jon Brookes 2025
|
||||
|
||||
<div @click="$slidev.nav.next" class="mt-12 py-1" hover:bg="white op-10">
|
||||
Press Space for next page <carbon:arrow-right />
|
||||
</div>
|
||||
|
||||
<div class="abs-br m-6 text-xl">
|
||||
<button @click="$slidev.nav.openInEditor()" title="Open in Editor" class="slidev-icon-btn">
|
||||
<carbon:edit />
|
||||
</button>
|
||||
<a href="https://codeberg.org/marshyon/n25.git" target="_blank" class="slidev-icon-btn">
|
||||
<carbon:logo-github />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
This is an introduction to Minimal Viable Kubernetes (MVK). What it is, why it is and tooling around it.
|
||||
-->
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/intro-slide.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
|
||||
-->
|
||||
|
||||
<style>
|
||||
h1 {
|
||||
background-color: #2B90B6;
|
||||
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
||||
background-size: 100%;
|
||||
-webkit-background-clip: text;
|
||||
-moz-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
-moz-text-fill-color: transparent;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--
|
||||
Here is another comment.
|
||||
-->
|
||||
|
||||
---
|
||||
src: ./pages/config-slide.md
|
||||
---
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/plugins-slide.md
|
||||
---
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
src: ./pages/infctl-summary.md
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
layout: center
|
||||
class: text-center
|
||||
---
|
||||
|
||||
# Learn More
|
||||
|
||||
[Documentation](https://mvk.headshed.dev) · [GitHub](https://codeberg.org/headshed/infctl-cli)
|
||||
|
||||
<PoweredBySlidev mt-10 />
|
||||
12
snippets/external.ts
Normal file
12
snippets/external.ts
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
/* eslint-disable no-console */
|
||||
|
||||
// #region snippet
|
||||
// Inside ./snippets/external.ts
|
||||
export function emptyArray<T>(length: number) {
|
||||
return Array.from<T>({ length })
|
||||
}
|
||||
// #endregion snippet
|
||||
|
||||
export function sayHello() {
|
||||
console.log('Hello from snippets/external.ts')
|
||||
}
|
||||
7
vercel.json
Normal file
7
vercel.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"rewrites": [
|
||||
{ "source": "/(.*)", "destination": "/index.html" }
|
||||
],
|
||||
"buildCommand": "npm run build",
|
||||
"outputDirectory": "dist"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue