initial commit
This commit is contained in:
parent
479c448076
commit
73ff8b5254
8 changed files with 338 additions and 17 deletions
54
src/content/docs/guides/configuration.md
Normal file
54
src/content/docs/guides/configuration.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
title: Configuration
|
||||
description: infctl configuration
|
||||
---
|
||||
|
||||
`infctl` uses `json` files for configuration.
|
||||
|
||||
It is designed around the idea of pipelines where each pipeline performs a series of steps.
|
||||
|
||||
A short, 2 step pipeline configuration can look like :
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "ensure inf namespace exists",
|
||||
"function": "k8sNamespaceExists",
|
||||
"params": ["infctl"],
|
||||
"retryCount": 0,
|
||||
"shouldAbort": true
|
||||
},
|
||||
{
|
||||
"name": "run inf redis secret",
|
||||
"function": "RunScriptCommand",
|
||||
"params": ["./scripts/create_php_configmap_ctl.sh"],
|
||||
"retryCount": 0,
|
||||
"shouldAbort": true
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Each Object is a task.
|
||||
|
||||
Object task records are executed in a `[]` list and in sequence.
|
||||
|
||||
Each task has a `name` to be displayed in logs.
|
||||
|
||||
Each task calls a `Function` that is registered within `infctl` and that accepts `params` string, which are any parameters to be passed to that function, script or executable. The simplest example being `RunScriptCommand` which accepts the path to a script or executable as its `params`. This can be anything but can be as simple as :
|
||||
|
||||
```bash
|
||||
echo "hello world"
|
||||
|
||||
exit 0
|
||||
```
|
||||
|
||||
So `infctl` is unlimited as to what it can use in its pipeline files to achieve any kind of automation.
|
||||
|
||||
If a task fails ( the script or program that is run returns a non zero value ) it may be re-tried up to `retryCount` times.
|
||||
|
||||
If a task fails the pipeline will stop running unless `shouldAbort` is set to false, in which case, the pipeline will continue to run with the next step item in the list.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
14
src/content/docs/guides/intro.md
Normal file
14
src/content/docs/guides/intro.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: Introduction
|
||||
description: introducing infctl and its guiding principles
|
||||
---
|
||||
|
||||
Kubernetes is complicated, so geting started can be a pain.
|
||||
|
||||
There are many tools out there to create a development Kubernetes environment.
|
||||
|
||||
`infctl` is just another such tool, however it is designed with simplicity in mind, yet with a view to it being extended into production and beyond.
|
||||
|
||||
|
||||
|
||||
|
||||
25
src/content/docs/guides/mvk.md
Normal file
25
src/content/docs/guides/mvk.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
title: Minimal Viable Kubernetes
|
||||
description: introducing minimal viable Kubernetes and its guiding principles
|
||||
---
|
||||
|
||||
Kubernetes is complicated but additional to this it is designed with cloud compute in mind.
|
||||
|
||||
Thus, self hosting options can be limiting.
|
||||
|
||||
Out of the box, Kubernetes 'expects' for there to be key ingredient of infrastructure to be present, for example, ingress, storage, load balancers. So if these fundamentals are not present, they need to be supplied in a form that Kubernetes can consume them.
|
||||
|
||||
Adding all these pre-requisites can be a challenge and even learning about Kubernetes, let alone setting up a development or 'lab' environment can quickly become messy. Knowing what to create in 'dev' as opposed to 'prod` may introduce unpredictable configuration, even technical debt.
|
||||
|
||||
Production environments can also become complex, difficult to manage, even over engineered which may add to technical debt.
|
||||
|
||||
Out of these scenarios, Minimal Viable Kubernetes (MVK) is a design pattern attempting to solve these issues.
|
||||
|
||||
MVK is there for a minimal setup to get a viable implementation of Kubernetes up and running initially for test and development but also for production use in an entirely self hosted environment, outside of any managed Kubernetes or cloud platform that is proprietary in its design and provisioning.
|
||||
|
||||
This increases portability, reduces the likelihood of 'vendor lock in'. It can reduce costs, provided that its users are or become more familiar with Kubernetes and its day to day operational and management requirements - spoiler alert, we think everyone should know more about this so as not to become totally reliant on others to do this for them - and above all, can increase control over our own digital sovereignty.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
15
src/content/docs/guides/quick-start.md
Normal file
15
src/content/docs/guides/quick-start.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: Quick Start Guide
|
||||
description: A guide to setting up MVK quickly.
|
||||
---
|
||||
|
||||
Install `infctl` command line tool with a single command
|
||||
|
||||
```bash
|
||||
curl -L https://codeberg.org/headshed/infctl-cli/raw/branch/chore/code-refactor/install.sh | bash
|
||||
```
|
||||
|
||||
Alternatively, go to [Releases](https://codeberg.org/headshed/infctl-cli/releases) to find a current version for your Operating System, download it and place a copy in your `PATH`.
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue