Skip to content

Commit 148425e

Browse files
committed
blog: wrap at 100 characters
Signed-off-by: Matthew Fisher <[email protected]>
1 parent 0b20273 commit 148425e

File tree

3 files changed

+151
-73
lines changed

3 files changed

+151
-73
lines changed

content/en/about/index.md

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
title: SpinKube
33
---
44

5-
{{< blocks/cover title="Welcome to SpinKube" image_anchor="top" height="full" >}}
6-
<a class="btn btn-lg btn-primary me-3 mb-4" href="{{< relref "/docs" >}}">
7-
SpinKube Documentation <i class="fas fa-arrow-alt-circle-right ms-2"></i>
8-
</a>
5+
{{< blocks/cover title="Welcome to SpinKube" image_anchor="top" height="full" >}} <a class="btn
6+
btn-lg btn-primary me-3 mb-4" href="{{< relref "/docs" >}}"> SpinKube Documentation <i class="fas
7+
fa-arrow-alt-circle-right ms-2"></i> </a>
98
<p class="lead mt-5">A new open source project that streamlines the experience of developing, deploying, and operating Wasm workloads on Kubernetes.</p>
109
{{< blocks/link-down color="info" >}}
1110
{{< /blocks/cover >}}
@@ -15,32 +14,48 @@ title: SpinKube
1514

1615
SpinKube comprises the following open source projects.
1716

18-
<br />
19-
<br />
17+
<br /> <br />
2018

2119
<u>**Containerd Shim Spin**</u>
2220

23-
The [Containerd Shim Spin repository](https://github.com/spinkube/containerd-shim-spin) provides shim implementations for running WebAssembly ([Wasm](https://webassembly.org/)) / Wasm System Interface ([WASI](https://github.com/WebAssembly/WASI)) workloads using [runwasi](https://github.com/deislabs/runwasi) as a library, whereby workloads built using the [Spin framework](https://github.com/fermyon/spin) can function similarly to container workloads in a Kubernetes environment.
21+
The [Containerd Shim Spin repository](https://github.com/spinkube/containerd-shim-spin) provides
22+
shim implementations for running WebAssembly ([Wasm](https://webassembly.org/)) / Wasm System
23+
Interface ([WASI](https://github.com/WebAssembly/WASI)) workloads using
24+
[runwasi](https://github.com/deislabs/runwasi) as a library, whereby workloads built using the [Spin
25+
framework](https://github.com/fermyon/spin) can function similarly to container workloads in a
26+
Kubernetes environment.
2427

25-
<br />
26-
<br />
28+
<br /> <br />
2729

2830
<u>**Runtime Class Manager**</u>
2931

30-
The [Runtime Class Manager, also known as the Containerd Shim Lifecycle Operator](https://github.com/spinkube/runtime-class-manager), is designed to automate and manage the lifecycle of containerd shims in a Kubernetes environment. This includes tasks like installation, update, removal, and configuration of shims, reducing manual errors and improving reliability in managing WebAssembly (Wasm) workloads and other containerd extensions.
32+
The [Runtime Class Manager, also known as the Containerd Shim Lifecycle
33+
Operator](https://github.com/spinkube/runtime-class-manager), is designed to automate and manage the
34+
lifecycle of containerd shims in a Kubernetes environment. This includes tasks like installation,
35+
update, removal, and configuration of shims, reducing manual errors and improving reliability in
36+
managing WebAssembly (Wasm) workloads and other containerd extensions.
3137

32-
<br />
33-
<br />
38+
<br /> <br />
3439

3540
<u>**Spin Plugin for Kubernetes**</u>
3641

37-
The [Spin plugin for Kubernetes](https://github.com/spinkube/spin-plugin-kube), known as `spin kube`, faciliates the translation of existing [Spin applications](https://developer.fermyon.com/spin) into the Kubernetes custom resource that will be deployed and managed on your cluster. This plugin works by taking your spin application manifest and scaffolding it into a Kubernetes yaml, which can be deployed and managed with `kubectl`. This allows Kubernetes to manage and run Wasm workloads in a way similar to traditional container workloads.
42+
The [Spin plugin for Kubernetes](https://github.com/spinkube/spin-plugin-kube), known as `spin
43+
kube`, faciliates the translation of existing [Spin
44+
applications](https://developer.fermyon.com/spin) into the Kubernetes custom resource that will be
45+
deployed and managed on your cluster. This plugin works by taking your spin application manifest and
46+
scaffolding it into a Kubernetes yaml, which can be deployed and managed with `kubectl`. This allows
47+
Kubernetes to manage and run Wasm workloads in a way similar to traditional container workloads.
3848

39-
<br />
40-
<br />
49+
<br /> <br />
4150

4251
<u>**Spin Operator**</u>
4352

44-
The [Spin Operator](https://github.com/spinkube/spin-operator/) enables deploying Spin applications to Kubernetes. The foundation of this project is built using the [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) framework. Spin Operator defines Spin App Custom Resource Definitions (CRDs). Spin Operator watches SpinApp Custom Resources e.g. Spin app image, replicas, schedulers and other user-defined values and realizes the desired state in the Kubernetes cluster. Spin Operator introduces a host of functionality such as resource-based scaling, event-driven scaling, and much more.
53+
The [Spin Operator](https://github.com/spinkube/spin-operator/) enables deploying Spin applications
54+
to Kubernetes. The foundation of this project is built using the
55+
[kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) framework. Spin Operator defines Spin
56+
App Custom Resource Definitions (CRDs). Spin Operator watches SpinApp Custom Resources e.g. Spin app
57+
image, replicas, schedulers and other user-defined values and realizes the desired state in the
58+
Kubernetes cluster. Spin Operator introduces a host of functionality such as resource-based scaling,
59+
event-driven scaling, and much more.
4560

4661
{{% /blocks/lead %}}

content/en/blog/community/spinkube-kind-rd/index.md

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ resources:
1010
title: "Image #:counter"
1111
---
1212

13-
The goal of this guide is show a way to bring [SpinKube](https://www.spinkube.dev/) to [KinD](https://kind.sigs.k8s.io/) without the need of a custom image, like the [SpinKube on k3d](https://www.spinkube.dev/docs/spin-operator/quickstart/) example.
13+
The goal of this guide is show a way to bring [SpinKube](https://www.spinkube.dev/) to
14+
[KinD](https://kind.sigs.k8s.io/) without the need of a custom image, like the [SpinKube on
15+
k3d](https://www.spinkube.dev/docs/spin-operator/quickstart/) example.
1416

1517
Instead, the Rancher Desktop (RD) Spin plugin will be used alongside KinD cluster configuration.
1618

@@ -34,26 +36,31 @@ In order to follow this guide, the following applications need to be installed:
3436
- Kubernetes is disabled
3537
- KinD v0.23
3638
- This is the first version with the `nerdctl` provider
37-
- If not yet available, you might need to build it (see [Bonus 1: build KinD](#bonus-1-build-kind))
39+
- If not yet available, you might need to build it (see [Bonus 1: build
40+
KinD](#bonus-1-build-kind))
3841

3942
Concerning the Kubernetes tooling, Rancher Desktop already covers it.
4043

4144
### Connecting the Dots
4245

43-
The reason KinD v0.23 is needed with the `nerdctl` provider is because the Spin plugin only works on Rancher Desktop when `containerd` runtime is selected, instead of `docker`.
46+
The reason KinD v0.23 is needed with the `nerdctl` provider is because the Spin plugin only works on
47+
Rancher Desktop when `containerd` runtime is selected, instead of `docker`.
4448

45-
If it's still "obscure", keep reading and hopefully it will make sense (yes, not yet spoiling how the Spin plugin will be leveraged).
49+
If it's still "obscure", keep reading and hopefully it will make sense (yes, not yet spoiling how
50+
the Spin plugin will be leveraged).
4651

4752
## KinD Configurations
4853

4954
This section should clarify how the Spin plugin will be leveraged.
5055

5156
### Containerd Configuration File
5257

53-
The first configuration is related to `containerd`, and more precisely, the one running inside the KinD container(s):
58+
The first configuration is related to `containerd`, and more precisely, the one running inside the
59+
KinD container(s):
5460

5561
- Create a file in your `$HOME` directory called `config.toml`
56-
- You can create it inside a directory, however it still should be located in your `$HOME` directory
62+
- You can create it inside a directory, however it still should be located in your `$HOME`
63+
directory
5764
- The location will be important when creating the KinD cluster
5865
- Paste the following content inside the `config.toml` file:
5966

@@ -100,20 +107,22 @@ version = 2
100107
tolerate_missing_hugepages_controller = true
101108
# restrict_oom_score_adj needs to be true when running inside UserNS (rootless)
102109
restrict_oom_score_adj = false
103-
110+
104111
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.spin]
105112
runtime_type = "/usr/local/bin/containerd-shim-spin-v2"
106113

107114
```
108115

109-
> NOTE: this file is a copy of the original one that can be found inside the KinD container. The only addition to the file is the declaration of the `spin` plugin (the last 2 lines)
116+
> NOTE: this file is a copy of the original one that can be found inside the KinD container. The
117+
> only addition to the file is the declaration of the `spin` plugin (the last 2 lines)
110118
111119
### KinD Configuration File
112120

113121
The second configuration file is related to KinD and will be used when creating a new cluster:
114122

115123
- Create a file in your `$HOME` directory called `kind-spin.yaml` (for example)
116-
- You can create it inside a directory, however it still should be located in your `$HOME` directory
124+
- You can create it inside a directory, however it still should be located in your `$HOME`
125+
directory
117126
- The location will be important when creating the KinD cluster
118127

119128
**Windows Users ONLY**
@@ -152,15 +161,22 @@ EOF
152161
153162
Rancher Desktop leverages two different technologies depending on the OS its installed.
154163
155-
On Windows, [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) will be used and for Linux and MacOS, [Lima](https://lima-vm.io/docs/) is the preferred choice.
164+
On Windows, [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) will be used and for Linux
165+
and MacOS, [Lima](https://lima-vm.io/docs/) is the preferred choice.
156166
157-
While both technologies run Linux in a microVM, the behaviors differ in some parts. And the mountpoints with the host system are one of these differences.
167+
While both technologies run Linux in a microVM, the behaviors differ in some parts. And the
168+
mountpoints with the host system are one of these differences.
158169
159-
In the case of RD on WSL, the file generated is created **inside** the microVM, as nerdctl will need to have acceess to the file's path. Technically speaking, the mountpoint `/mnt/c` could also be used, however sometimes it's not available due to WSL main configuration. This way should be a bit more generic.
170+
In the case of RD on WSL, the file generated is created **inside** the microVM, as nerdctl will need
171+
to have acceess to the file's path. Technically speaking, the mountpoint `/mnt/c` could also be
172+
used, however sometimes it's not available due to WSL main configuration. This way should be a bit
173+
more generic.
160174
161-
Concerning RD on Lima, `$HOME` is mounted inside the microVM, therefore nerdctl will already see the files, and there's not need on copying the files over like it's done for WSL.
175+
Concerning RD on Lima, `$HOME` is mounted inside the microVM, therefore nerdctl will already see the
176+
files, and there's not need on copying the files over like it's done for WSL.
162177
163-
Finally, on both cases, the binary `containerd-shim-spin-v2` is already accessible inside the microVMs.
178+
Finally, on both cases, the binary `containerd-shim-spin-v2` is already accessible inside the
179+
microVMs.
164180
165181
## Create KinD Cluster
166182
@@ -190,15 +206,20 @@ kind create cluster --config=$HOME/kind-spin.yaml
190206

191207
![KinD create cluster on *nix](lima-kind-create-cluster.png)
192208

193-
Now that you have a KinD cluster running with the spin plugin enabled for `containerd`. However, it is not yet used by Kubernetes (`runtimeClass`). This will be done on the next section.
209+
Now that you have a KinD cluster running with the spin plugin enabled for `containerd`. However, it
210+
is not yet used by Kubernetes (`runtimeClass`). This will be done on the next section.
194211

195212
## Deploy SpinKube
196213

197-
From here, you can reference the [excellent quickstart to deploy SpinKube](https://www.spinkube.dev/docs/spin-operator/quickstart/) for a detailed explanation of each step.
214+
From here, you can reference the [excellent quickstart to deploy
215+
SpinKube](https://www.spinkube.dev/docs/spin-operator/quickstart/) for a detailed explanation of
216+
each step.
198217

199-
To avoid repetition, and to encourage you to go read the quickstart (and the overall SpinKube docs), the steps below will only include short descriptions:
218+
To avoid repetition, and to encourage you to go read the quickstart (and the overall SpinKube docs),
219+
the steps below will only include short descriptions:
200220

201-
> **IMPORTANT:** the following commands are "universal", working on both powershell and bash/zsh. The "multiline characters" have been removed on purpose (\` for powershell and \\ for bash).
221+
> **IMPORTANT:** the following commands are "universal", working on both powershell and bash/zsh.
222+
> The "multiline characters" have been removed on purpose (\` for powershell and \\ for bash).
202223
203224
```shell
204225
# Install cert-manager
@@ -243,13 +264,19 @@ Congratulations! You have a cluster with SpinKube running.
243264

244265
## Conclusion
245266

246-
First of all, THANK YOU to all the projects maintainers and contributors! Without you, there wouldn't be blogs like this one.
267+
First of all, THANK YOU to all the projects maintainers and contributors! Without you, there
268+
wouldn't be blogs like this one.
247269

248-
Secondly, as you may know or not, this is **highly experimental**, and the main purpose was more a proof-of-concept rather than a real solution.
270+
Secondly, as you may know or not, this is **highly experimental**, and the main purpose was more a
271+
proof-of-concept rather than a real solution.
249272

250-
Lastly, SpinKube on Rancher Desktop has been tested, both by Fermyon and SUSE, and it's suggested that you [follow this howto](https://www.spinkube.dev/docs/spin-operator/tutorials/integrating-with-rancher-desktop/) for a long-term environment.
273+
Lastly, SpinKube on Rancher Desktop has been tested, both by Fermyon and SUSE, and it's suggested
274+
that you [follow this
275+
howto](https://www.spinkube.dev/docs/spin-operator/tutorials/integrating-with-rancher-desktop/) for
276+
a long-term environment.
251277

252-
Special thanks to Fermyon for hosting this (first) blog on SpinKube and thanks to anyone reaching this last line, you mean the world to me.
278+
Special thanks to Fermyon for hosting this (first) blog on SpinKube and thanks to anyone reaching
279+
this last line, you mean the world to me.
253280

254281
> \>>> The Corsair <<<
255282

0 commit comments

Comments
 (0)